Changes between Version 3 and Version 4 of BranchingPolicy
- Timestamp:
- 08/26/10 14:26:49 (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
BranchingPolicy
v3 v4 13 13 '''ultrastable''' branch is for the most stable code - proper releases, always one behind `stable`. 14 14 15 This arrangement can be seen to be like a waterfall of changesets. `default` has the most, `metastable` is a subset of `default`, `stable` a subset of `metastable` etc. This is a reasonably accurate view, even working with these edge cases:15 This arrangement can be seen to be like a waterfall of changesets. `default` has the most, `metastable` is a subset of `default`, `stable` a subset of `metastable` etc. As the releases go down the waterfall, the bug-fixes go in the opposite direction: 16 16 17 17 * A branch may need a bug-fix, and this would need to be merged to all branches UP the waterfall. Even if the bug-fix no longer applies on `default` (because say the file in question has been completely refactored in the meantime), this isn't a bad thing, since you'll be alerted when you get a conflict during the merge. 18 18 * Along with the bug-fix it may be worth adding a version change (e.g. `1.2` to `1.2.1`). This would also be usefully merged with the bug-fix up the waterfall, indicating the bug is fixed in these places too. 19 19 20 Unless there is a big need for a bug fixes on the more stable branches, bug fixes are best done on `metastable` (and then merged just to `default`). This saves the more stable branches from the risk of bug fixes causing other bad effects. 21 20 22 So the rule is: 21 23 * Releases are merged DOWN the waterfall: `default` -> `metastable` -> `stable` -> `ultrastable` 22 * Bug fixes should be merged UP the waterfall: `default` <- `metastable` <- `stable` <- `ultrastable`24 * Bug fixes should be merged UP the waterfall: `default` <- `metastable` ( <- `stable` <- `ultrastable` ) 23 25 24 26 (One future problem with this system might arises when you want a change on a branch which you don't want merged up the waterfall and wouldn't cause a conflict. We've not thought of a use case like this, so we will deal with not being able to merge upwards, it if it arises.)