[Python-Dev] PEP: Collecting information about git

Stephen J. Turnbull stephen at xemacs.org
Thu Sep 17 04:22:29 CEST 2015


Nikolaus Rath writes:

 > >>  * hg named branches have no equivalent in git. 
 > >> 
 > >> Does that help?
 > >
 > > Well, that last bullet kind of complicates the model, doesn't it?  :)
 > 
 > Not if you come from git and want to use hg. You can just ignore
 > bookmarks.

No, you cannot just ignore bookmarks (but who would want to?) or named
branches (and there's the rub because named branches don't branch,
they are a partition of the set of commits).

The problem is that git and hg are communication tools: between a
developer and himself over time, and between developers at the same
time.  If your project uses named branches, you have to use named
branches.  Bookmarks, ditto.

CPython's use of named branches is very disciplined and "discrete"
because they're widely separated in both commit space and mental
space, so is very unlikely to result in anomolies.  But use of named
branches for feature branches requires some care, especially if you
have long-lived features with individual "milestones" that can be
merge *to* trunk at intervals combined with a project workflow that
emphasizes the mainline.

 > But there is an easy explanation if you want one. Think of a named
 > branch as automatically appending "this went to <branchname>" to your
 > commit message.

No, that doesn't help the anomolies that occur at branch points and
merges, which can only be on one of the named branches (including the
implicit name).

 > No, it's just some extra information in the commit. Like author, date,
 > or commit message.

True, but it makes certain operations that filter on named branches
behave strangely (at least to me).

 > In hg it's exactly the same, it's just a head you're working with, and
 > later you can do something with it.. or delete it. If it helps, create a
 > cronjob that deletes all DAG leaves that don't have bookmarks.

Ugh.  What if that cron job runs while you're in the middle of merge?




More information about the Python-Dev mailing list