[Python-Dev] Hg: inter-branch workflow

Raymond Hettinger raymond.hettinger at gmail.com
Thu Mar 17 00:00:25 CET 2011


I think devguide's suggested interbranch workflow introduces too much complexity for too little payoff.

If I need to make a fix to 3.2, I can't just fix it.  I would need to also merge the changeset into 3.3 and then revert it, and then commit both.  There is not much payoff to this style.  It brings back the ghost of svnmerge but it much more restrictive:
* it is pretty much required for every patch on a non-default branch
* you have to decide in advance how far it should be backported because only forward porting is supported
* it means you can't just fix one branch without having also decided how the change should be applied to other branches (if we look at the tracker, you can see that it is very common for the resolution on different branches to be done at different times)

I think we would be better off treating the branches as independent.  If I need to apply a patch to two of them, that's what I would do (in any order, at any time, or with or without modifications).

As far as I can tell the only benefits to the cross-linking are that it reduces the chance that a patch will be applied to an older branch but not forward ported.

I've been enjoying most of my experiences with mercurial, but as soon we start needing rebases, null merges, merges followed by null reverts, then we might as well be using git.  The version control system is supposed to make our lives easier, not introduce more workflow requirements.

I don't think the more complex workflow if worth it.  Mercurial is very user friendly right out of the box will simple commands.  But as soon as you require the branches to be inter-linked, you've made it much more difficult to get simple checkins done.


Raymond





More information about the Python-Dev mailing list