[Python-Dev] Looking for VCS usage scenarios

Brett Cannon brett at python.org
Mon Nov 3 22:56:33 CET 2008

On Mon, Nov 3, 2008 at 10:35, Thomas Wouters <thomas at python.org> wrote:
> On Mon, Nov 3, 2008 at 18:57, Brett Cannon <brett at python.org> wrote:
>> On Sun, Nov 2, 2008 at 17:08, Gustavo Niemeyer <gustavo at niemeyer.net>
>> wrote:
>> > Hi Brett,
>> >
>> >> At this point I am looking for any suggestions for fundamental usage
>> >> scenarios that I am missing from the PEP. If you think the few already
>> >> listed are missing some core part of a VCS, please let me know.
>> >
>> > As an initial disclaimer, I use bzr in my daily routine.  That said,
>> > I'm sending below a few mostly unbiased high-level ideas, just based
>> > on useful ways we explore the DVCS-aspect on our normal daily
>> > workflow.
>> >
>> > == Coordinated development with dependent features ==
>> >
>> > A variation on coordinated development, which is actually one of the
>> > main motivators for DVCS.  Branch A is evolving out of the mainline,
>> > and it depends on a feature that is on branch B which is also not yet
>> > integrated.  Parallel development of both should be nicely supported.
>> > I'm sure all DVCS will do that in a decent form, but figuring how this
>> > works may be instructive and worth mentioning.
>> >
>> Since I have never seen that come up during Python's development I am
>> going to leave it out. But I do see the benefit and how it might help
>> with future work.
> Euhm, wut? It hasn't come up during Python's development because Python is
> being developed in a VCS with very limited branches :) I'm partial to VCS's
> with proper branching (as you know) and I've been using that mode of
> development for many years. I've done development and maintenance of
> multi-developer projects using both the CVS/SVN nonbranching approach and
> the typical DVCS branch-often approach using BitKeeper, Bazaar and Mercurial
> (as well as the sort-of one-off-branch Perforce approach where you can
> easily 'wrap' a single change but can't really do dependant changes) -- and
> whenever possible I use the branch-often approach with dependant branches
> all over the place, especially when working on large, complicated changes.
> Building them up out of separate 'components' requires a little more
> administration (you have to remember which branch to submit to) but it makes
> debugging, piecemeal discussion and batchwise integration a *lot* easier.

I know it isn't used because of what VCSs we have used, which is why I
have no experience with it and feel uncomfortable using it as a
necessary usage scenario to evaluate whether a DVCS is better than
svn, and if so which one.

But then again, having one scenario that shows svn's weakness directly
wouldn't hurt. I could see a scenario where I start to fix something
in branch A, realize that a deeper issue needs to be fixed, leading to
branch B, and then have branch A depend on branch B. Is that possible?
Or is injecting branch dependencies like that not workable? If it
doesn't work, then a branch A/B that a branch C is dependent on would
also work as a scenario (e.g. reworking the testing framework where
you are doing a bunch of different things at once that are culminating
in a single new testing branch that collects everything).

Those sound like what you are getting after?


More information about the Python-Dev mailing list