From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id E7F5FBB81 for ; Wed, 22 Dec 2004 00:47:45 +0100 (CET) Received: from smtp.syd.swiftdsl.com.au (smtp.syd.swiftdsl.com.au [218.214.224.138]) by concorde.inria.fr (8.13.0/8.13.0) with SMTP id iBLNlg8C021646 for ; Wed, 22 Dec 2004 00:47:44 +0100 Received: (qmail 16140 invoked from network); 21 Dec 2004 23:47:45 -0000 Received: from unknown (HELO coltrane.mega-nerd.net) (218.214.64.136) by smtp.syd.swiftdsl.com.au with SMTP; 21 Dec 2004 23:47:45 -0000 Received: from coltrane (localhost [127.0.0.1]) by coltrane.mega-nerd.net (Postfix) with SMTP id 6525C7AD7 for ; Wed, 22 Dec 2004 10:47:40 +1100 (EST) Date: Wed, 22 Dec 2004 10:47:40 +1100 From: Erik de Castro Lopo To: caml-list@yquem.inria.fr Subject: Re: [Caml-list] [OT] Rant about VCS: Conclusions Message-Id: <20041222104740.3f9b1c11.ocaml-erikd@mega-nerd.com> In-Reply-To: <20041221231940.GA20770@old.davidb.org> References: <41C3126A.3060101@barettadeit.com> <20041217213753.GA2295@pegasos> <20041218092716.18ca0ed7.ocaml-erikd@mega-nerd.com> <41C7E7EE.6030709@barettadeit.com> <41C89DB2.4020105@orcaware.com> <20041222093627.5a5376a3.ocaml-erikd@mega-nerd.com> <20041221231940.GA20770@old.davidb.org> Organization: Erik Conspiracy Secret Labs X-Mailer: Sylpheed version 1.0.0beta3 (GTK+ 1.2.10; i386-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Miltered: at concorde with ID 41C8B61E.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; caml-list:01 caml-list:01 wrote:01 merging:01 model:01 api:01 buffer:01 buffer:01 embrace:98 nospam:98 overflows:01 tree:02 implementors:02 tend:02 filesystem:02 X-Spam-Checker-Version: SpamAssassin 3.0.0 (2004-09-13) on yquem.inria.fr X-Spam-Status: No, score=0.1 required=5.0 tests=FORGED_RCVD_HELO autolearn=disabled version=3.0.0 X-Spam-Level: On Tue, 21 Dec 2004 15:19:40 -0800 David Brown wrote: > The implementors Arch and Darcs seem to understand the complexity and > difficulty of cross branch merging, and embrace it head on. Other > solutions tend to brush off the problem as not important, and generally > leave the user with some very tricky merge cases. Yes indeed. The funny thing is that when you get a system that does know how to handle all this, you get new ways of working that simply aren't possible with more archaic systems. For instance, the most common usage of Arch with two geographically remote developers has developer A set up an initial public archive on a web server WA. The second developer B then branches the first archive to a second public archive on a second web server WB. A can now apply changes to his own archive and merge from B's and B can merge from A and apply his own changes to his archive. Under this scheme he merge tree will look like this (ascii art): A ----+---+-> \/ \/ /\ /\ ----+---+-> B This is the most simple example, but also works for a larger number of developers and developers who have private as well as public trees. This development model is simply not available to any source control system which can't keep track of which patches have been applied. > Perforce (commercial) attempts to track merge history, but does a terrible > job of it. Perforce is just all round horrible. I use it in my day job and I'm constantly wishing we were using Arch instead. Unfortunately we have a number of windows users and Arch doesn't play nice with the horribly broken windows filesystem/API/whatever. Erik -- +-----------------------------------------------------------+ Erik de Castro Lopo nospam@mega-nerd.com (Yes it's valid) +-----------------------------------------------------------+ Seen on comp.lang.python: Q : If someone has the code in python for a buffer overflow, please post it. A : Python does not support buffer overflows, sorry.