[Python-Dev] Hg: inter-branch workflow

R. David Murray rdmurray at bitdance.com
Thu Mar 17 04:41:14 CET 2011


On Thu, 17 Mar 2011 00:20:26 +0100, Antoine Pitrou <solipsis at pitrou.net> wrote:
> > 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:
> 
> Well, you might not have liked svnmerge, but most other devs preferred
> using it instead of porting patches by hand.
> I think the same argument goes for "hg merge".

+10.  And I've done quite a few commits here at the sprints.  I'd *really*
hate to have had to patch each branch by hand.  If I'd had to do that
I'm sure I wouldn't have bothered with 3.1.  As it is, once I applied
the patch once to 3.1, doing the merges was a piece of cake.  Patching
2.7, on the other hand, is a pain.

Dealing with a null merge when someone else has committed between the
time I started the merge dance (I always pull just before I start that)
and the time I push is not that hard either.  It pretty much amounts to
having to do an additional set of merges.  (In my case I do a strip and
restart my merge dance, but I'm not sure I should recommend that since
altering history is considered dangerous :)

Even this week, with all the commit activity surrounding the sprints,
I have only had to deal with a push race twice out of 16 patches.
I expect to hit it only very rarely in normal development work.

Alternatively, Ezio at least follows the policy of doing a pull
-u/commit/push in the first branch, and then doing pull -u/merge/push
in the next branch.  You are even less likely to hit a push race by
following that technique, since the time between the pull -u and the
push is minimized.

--
R. David Murray                                      www.bitdance.com


More information about the Python-Dev mailing list