[IPython-dev] Bazaar on OS X

Brian Granger ellisonbg.net at gmail.com
Wed Jun 25 11:39:47 EDT 2008


Thanks for the comments on hg.  As Barry said, I don't think we want
to revisit our choice of DVCS at this point.  That said, it actually
seems to be quite difficult to get a fair and accurate evaluation of
the various DVCS systems.  Here is what I have observed (taking the
liberty to make generalizations):

1.  _All_ of the DVCS make design decisions that make certain things
nice and other things less nice.  It is a question of trade offs.

2.  You almost never see the less nice things when you casually try
one of them out.  You really have to "get your hands dirty" before
these things come up.  By then you have already made the decision :)

3.  It is easy to get someone to detail the pros of one choice or the
cons of another, but it is really difficult to get someone to give a
fair and accurate survey of the pros and cons of all the choices.

4.  The few people who can give such an fair and accurate survey of
the choices know so much about DVCS that I can't understand half the
things they are talking about.

Cheers,

Brian

On Wed, Jun 25, 2008 at 6:14 AM, Hans Meine <hans_meine at gmx.net> wrote:
> Am Mittwoch, 25. Juni 2008 00:56:50 schrieb Stéfan van der Walt:
>> When branches diverge, a merge is necessary.  Some revision control
>> systems hide the merges, others (like bzr) don't.  How does mercurial
>> handle the issue?
>
> (Background: I have recently switched to Mercurial with many of my projects
> and am constantly using it a lot, incl. many extensions and following the
> mailing list.  My bzr experience is near zero though.)
>
> Mercurial does not handle any line of development special, i.e. you get to see
> the complete, directed, acyclic graph e.g. in "hg log" (or "hg glog", "hg
> view").  AFAICS, bzr decides that one path from this graphs "root" to the tip
> is somehow special (IIRC called the "mainline") and only displays this by
> default (i.e. you see only one changeset when a branch is merged).
>
> For example, here's an excerpt from an actual "hg log" output of mine, in
> which branching and merging occured:
>
> ...
>
> changeset:   228:765851775ca5
> user:        Hans Meine <hans_meine at gmx.net>
> date:        Fri Apr 04 22:19:40 2008 +0200
> summary:     Added tag release_0_4 for changeset 4180934dce9d
>
> changeset:   227:4180934dce9d
> tag:         release_0_4
> parent:      226:fc47fb9bf558
> parent:      225:29273fb40578
> user:        Hans Meine <hans_meine at gmx.net>
> date:        Fri Apr 04 22:04:00 2008 +0200
> summary:     merged branch/dist.sh changes from Qt3 version
>
> changeset:   226:fc47fb9bf558
> parent:      222:1b6fee2f3be2
> user:        Hans Meine <hans_meine at gmx.net>
> date:        Fri Apr 04 22:03:13 2008 +0200
> summary:     get rid of necessary VigraQt symlink
>
> changeset:   225:29273fb40578
> user:        Hans Meine <hans_meine at gmx.net>
> date:        Fri Apr 04 21:59:46 2008 +0200
> summary:     don't delete vigraqt.testing
>
> changeset:   224:5d6c94f6de48
> user:        Hans Meine <meine at informatik.uni-hamburg.de>
> date:        Thu Apr 03 14:14:00 2008 +0200
> summary:     adapt script to mercurial needs (remove CVS stuff)
>
> changeset:   223:c478238d5ec0
> parent:      179:776243786443
> user:        Hans Meine <meine at informatik.uni-hamburg.de>
> date:        Thu Apr 03 14:13:39 2008 +0200
> summary:     Added tag release_0_4 for changeset 776243786443
>
> changeset:   222:1b6fee2f3be2
> user:        Hans Meine <hans_meine at gmx.net>
> date:        Fri Apr 04 21:54:42 2008 +0200
> summary:     remove old autotools-README
>
> ...
>
> All changesets are displayed in the same format, no matter on which branch
> they occured.  (If I had used named branches, the above would
> include "branch: somebranch" though.)  The parent: lines indicate
> a) branching, e.g. a specified parent that is != the previous revision (in
> which case "hg log" omits the line for brevity) and
> b) merging, e.g. more than one parent.
>
> Of course, graphical tools display this more nicely.  There's also "glog"
> ("graphical log") which uses ASCII art:
>
> ...
> |
> o  changeset:   228:765851775ca5
> |  user:        Hans Meine <hans_meine at gmx.net>
> |  date:        Fri Apr 04 22:19:40 2008 +0200
> |  summary:     Added tag release_0_4 for changeset 4180934dce9d
> |
> o    changeset:   227:4180934dce9d
> |\   tag:         release_0_4
> | |  parent:      226:fc47fb9bf558
> | |  parent:      225:29273fb40578
> | |  user:        Hans Meine <hans_meine at gmx.net>
> | |  date:        Fri Apr 04 22:04:00 2008 +0200
> | |  summary:     merged branch/dist.sh changes from Qt3 version
> | |
> | o  changeset:   226:fc47fb9bf558
> | |  parent:      222:1b6fee2f3be2
> | |  user:        Hans Meine <hans_meine at gmx.net>
> | |  date:        Fri Apr 04 22:03:13 2008 +0200
> | |  summary:     get rid of necessary VigraQt symlink
> | |
> o |  changeset:   225:29273fb40578
> | |  user:        Hans Meine <hans_meine at gmx.net>
> | |  date:        Fri Apr 04 21:59:46 2008 +0200
> | |  summary:     don't delete vigraqt.testing
> | |
> o |  changeset:   224:5d6c94f6de48
> | |  user:        Hans Meine <meine at informatik.uni-hamburg.de>
> | |  date:        Thu Apr 03 14:14:00 2008 +0200
> | |  summary:     adapt script to mercurial needs (remove CVS stuff)
> | |
> o |  changeset:   223:c478238d5ec0
> | |  parent:      179:776243786443
> | |  user:        Hans Meine <meine at informatik.uni-hamburg.de>
> | |  date:        Thu Apr 03 14:13:39 2008 +0200
> | |  summary:     Added tag release_0_4 for changeset 776243786443
> | |
> | |  ...
> | |
> | o  changeset:   181:d90cf77766a5
> | |  user:        Hans Meine <meine at informatik.uni-hamburg.de>
> | |  date:        Thu Apr 03 15:40:18 2008 +0200
> | |  summary:     Qt4 porting:
> | |
> | o  changeset:   180:f1910ad7c12b
> |/   user:        Hans Meine <meine at informatik.uni-hamburg.de>
> |    date:        Thu Apr 03 15:36:49 2008 +0200
> |    summary:     Qt4 porting: QImage format stuff, add v2qc
> |
> o  changeset:   179:776243786443
> |  user:        Hans Meine <meine at informatik.uni-hamburg.de>
> |  date:        Thu Apr 03 14:03:26 2008 +0200
> |  summary:     version bump -> 0.4
> |
> ...
>
> (BTW: This looks much better in a terminal than in a mailer who thinks
> that "|" starts a quote...)
>
> In summary, I am extremely happy with mercurial and find it very easy to
> understand and work with.  I believe bzr is not much different, and launchpad
> looks nice, but I see the discussed history folding as the only serious
> reason why I would currently recommend hg over bzr.  OTOH, the situation
> could be much improved if lp would (allow to) display the complete history
> instead of only the "mainline" one AFAICS.
>
> Hope that helped,
>  Hans
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://lists.ipython.scipy.org/mailman/listinfo/ipython-dev
>



More information about the IPython-dev mailing list