[Python-Dev] Mercurial?

Stephen J. Turnbull stephen at xemacs.org
Tue Apr 7 08:03:05 CEST 2009

Alexandre Vassalotti writes:

 > This makes me remember that we will have to decide how we will
 > reorganize our workflow. For this, we can either be conservative and
 > keep the current CVS-style development workflow--i.e., a few main
 > repositories where all developers can commit to.

That was the original idea of PEP 374, that was a presumption under
which I wrote my part of it, I think we should stick with it.  As
people develop personal workflows, they can suggest them, and/or
changes in the public workflow needed to support them.  But there
should be a working sample implementation before thinking about
changes to the workflow.

Simply allowing more people to work effectively offline is going to
speed things up perceptibly.  Improved branching will add to that
impact.  The current workflow is pretty clean.  Let's not mess it up
or all that will be achieved is to speed up the mess.

 > Or we could drink the kool-aid and go with a kernel-style
 > development workflow--i.e., each developer maintains his own branch
 > and pull changes from each others.

Can you give examples of projects using Mercurial that do that?  All
of the Mercurial projects I've seen "up close" have relatively
centralized workflows, which Mercurial encourages because of the way
it likes to automatically merge.  I wouldn't want to try the kernel
style with Mercurial because its named branch support doesn't work the
way it should.  In my experience, to deal with external branches, you
have to maintain a separate workspace per external branch you want to

You'd also need to provide a users' guide to things like rebasing,
which become very important in a kernel-style workflow, but which the
Mercurial developers opposed on principle, at least at first.

 > However if we go kernel-style, I will need to designate someone
 > (i.e., an integrator) that will maintain the main branches, which
 > will tested by buildbot and used for the public releases. These are
 > issues I would like to address in the PEP.

IMHO, that's new PEP.  This is not part of the PEP 374 decision to go
to a dVCS, nor part of the requirements for implementation, whether
that is considered an extension of 374 or a new PEP in itself.

More information about the Python-Dev mailing list