emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: It's not yet time to anoint git, or anything else


From: Eric S. Raymond
Subject: Re: It's not yet time to anoint git, or anything else
Date: Wed, 2 Jan 2008 10:20:25 -0500
User-agent: Mutt/1.5.15+20070412 (2007-04-11)

Alan Mackenzie <address@hidden>:
> > But I think it's worth noting that pretty much all the good things
> > being said about git apply equally to other DVCSes such as Mercurial, bzr,
> > monotone, darcs, and Codeville.  All of these have very similar basic
> > models based on commit-before-merge and push/pull operations.  
> 
> As an aside, have you any idea why has this happened?  Having several
> products essentially the same can give a good choice, but having many of
> them is a waste of effort, both for those writing them, those evaluating
> them, and those who have to relearn when moving from one of them to
> another.  It will also surely confuse people, and thus disincline
> projects from moving from (previously ;-) good systems like CVS.

I don't completely understand the history yet; that's one of the things
I'm researching and hope to document.  What seems to have happened is 
something like this:

1. Basic DVCS ideas were pioneered by BitKeeper and Arch between 1998
and 2002.  (However, the fundamental ideas have been around somewhat longer;
I myself floated a proposal for an Arch-like DVCS in 1995.  RMS may 
remember this, he was on the distribution list.)

2. A lot of people looked at Arch and BitKeeper, thought "Cool!" and
ran off in different experimental directions starting from those feature
sets.

3. One of those experiments was Monotone.  It introduced
commit-before-merge and the generalized DAG repo with revisions IDed
by cryptographic hash sometime before 2005.  (Graydon Hoare, monotone's
author, told me the Codeville guys arrived at the same ideas
independently.)

4. Monotone failed to take over the world essentially because its
performance sucked on the day the BitKeeper fiasco came to a head in
2005 and Linus rejected it.  (It got better, subsequently, but that
was too late.)

5. Subsequently, after 2005, bzr and git and Mercurial all picked up
on the basic ideas in the monotone design.  This is why they look
so similar to each other.  (darcs is a bit of a weird outlier.)

The reasons we now have three very similar post-monotone systems
rather than one are essentially political rather than technical.
I don't think all three are going to survive long-term.

> > I am working on an in-depth technical survey of this space.  You
> > can pull it at from a Mercurial repo at <http://thyrsus.com/hg/uvc/>.
> 
> Any chance of putting a copy up as a straight file?

Yes, but only when it gets to 0.9 level.
-- 
                <a href="http://www.catb.org/~esr/";>Eric S. Raymond</a>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]