18.07.2014 23:53, Julian Taylor kirjoitti:
On 18.07.2014 19:47, Pauli Virtanen wrote: [clip]
The other well-known alternative to bugfixes is to first commit it in the earliest maintenance branch where you want to have it, and then merge that branch forward to the newer maintenance branches, and finally into master.
wouldn't that still require basing bugfixes onto the point before the master and maintenance branch diverged? otherwise a merge from maintenance to master would include the commits that are only part of the maintenance branch (release commits, regression fixes etc.)
If I understand correctly, the idea is to manually revert the changes that don't belong in, which needs to be only done once for each, as the merge logic should deal with it in all subsequent merges. I think there are in practice not so many commits that you want to have only in the release branch. Version number bumping is one (and easily addressed by a follow-up commit in master that bumps it again) --- what else? The bugfix-in-release-and-forward-port-to-master seems to be the recommended practice for Mercurial: http://mercurial.selenic.com/wiki/StandardBranching https://docs.python.org/devguide/committing.html I think there are also git guides that recommend using it. The option of basing commits on last merge base is probably not really feasible with Mercurial (I haven't seen git guides that propose it either).
basing bugfixes on maintenance does allow cherry picking into master as you don't care too much about backward mergeability here, but you still lose a good git log and git branch --contains to check which bugfix is in which branch.
I don't disagree with this. Cherry picking is OK, but only as long as the number of commits is not too large and you use a tool (e.g. my git-cherry-tree) that tries to check which patches are in and which not. Pauli