all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Eric S. Raymond" <esr@thyrsus.com>
To: Alan Mackenzie <acm@muc.de>
Cc: "Eric S. Raymond" <esr@snark.thyrsus.com>, emacs-devel@gnu.org
Subject: Re: It's not yet time to anoint git, or anything else
Date: Wed, 2 Jan 2008 10:20:25 -0500	[thread overview]
Message-ID: <20080102152025.GE18853@thyrsus.com> (raw)
In-Reply-To: <20080102140921.GB2267@muc.de>

Alan Mackenzie <acm@muc.de>:
> > 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>

  parent reply	other threads:[~2008-01-02 15:20 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-02 13:24 It's not yet time to anoint git, or anything else Eric S. Raymond
2008-01-02 13:30 ` Miles Bader
2008-01-02 14:07 ` Ted Zlatanov
2008-01-02 14:54   ` Tassilo Horn
2008-01-02 15:02     ` David Kastrup
2008-01-02 16:36     ` Ted Zlatanov
2008-01-02 19:28       ` Tassilo Horn
2008-01-02 19:58         ` Ted Zlatanov
2008-01-04  5:27       ` Richard Stallman
2008-01-02 14:09 ` Alan Mackenzie
2008-01-02 14:10   ` Miles Bader
2008-01-02 15:20   ` Eric S. Raymond [this message]
2008-01-02 14:51 ` Romain Francoise
2008-01-02 15:00   ` David Kastrup
2008-01-02 16:12     ` Andreas Schwab
2008-01-06 17:01     ` Andreas Schwab
2008-01-06 17:06       ` David Kastrup
2008-01-06 17:58         ` Andreas Schwab
2008-01-02 15:27   ` Eric S. Raymond
2008-01-02 17:04     ` Romain Francoise

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080102152025.GE18853@thyrsus.com \
    --to=esr@thyrsus.com \
    --cc=acm@muc.de \
    --cc=emacs-devel@gnu.org \
    --cc=esr@snark.thyrsus.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.