From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Eric S. Raymond" Newsgroups: gmane.emacs.devel Subject: Re: It's not yet time to anoint git, or anything else Date: Wed, 2 Jan 2008 10:20:25 -0500 Organization: Eric Conspiracy Secret Labs Message-ID: <20080102152025.GE18853@thyrsus.com> References: <20080102132458.387D9830B03@snark.thyrsus.com> <20080102140921.GB2267@muc.de> Reply-To: esr@thyrsus.com NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1199287273 7303 80.91.229.12 (2 Jan 2008 15:21:13 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 2 Jan 2008 15:21:13 +0000 (UTC) Cc: "Eric S. Raymond" , emacs-devel@gnu.org To: Alan Mackenzie Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Jan 02 16:21:32 2008 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1JA5PM-00073K-DO for ged-emacs-devel@m.gmane.org; Wed, 02 Jan 2008 16:21:28 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JA5Oz-0005Pc-B8 for ged-emacs-devel@m.gmane.org; Wed, 02 Jan 2008 10:21:05 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JA5O9-0004eA-6M for emacs-devel@gnu.org; Wed, 02 Jan 2008 10:20:13 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JA5O8-0004cZ-5E for emacs-devel@gnu.org; Wed, 02 Jan 2008 10:20:12 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JA5O7-0004cE-Px for emacs-devel@gnu.org; Wed, 02 Jan 2008 10:20:11 -0500 Original-Received: from static-71-162-243-5.phlapa.fios.verizon.net ([71.162.243.5] helo=snark.thyrsus.com) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JA5O7-00008d-K1 for emacs-devel@gnu.org; Wed, 02 Jan 2008 10:20:11 -0500 Original-Received: by snark.thyrsus.com (Postfix, from userid 23) id 1DC28830B03; Wed, 2 Jan 2008 10:20:25 -0500 (EST) Content-Disposition: inline In-Reply-To: <20080102140921.GB2267@muc.de> X-Eric-Conspiracy: There is no conspiracy User-Agent: Mutt/1.5.15+20070412 (2007-04-11) X-detected-kernel: by monty-python.gnu.org: Linux 2.6 (newer, 3) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:85915 Archived-At: Alan Mackenzie : > > 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 . > > Any chance of putting a copy up as a straight file? Yes, but only when it gets to 0.9 level. -- Eric S. Raymond