From owner-freebsd-questions@FreeBSD.ORG Fri Dec 23 01:03:38 2011 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8CB48106566B for ; Fri, 23 Dec 2011 01:03:38 +0000 (UTC) (envelope-from perrin@apotheon.com) Received: from oproxy6-pub.bluehost.com (oproxy6-pub.bluehost.com [67.222.54.6]) by mx1.freebsd.org (Postfix) with SMTP id 55FAB8FC08 for ; Fri, 23 Dec 2011 01:03:38 +0000 (UTC) Received: (qmail 10075 invoked by uid 0); 23 Dec 2011 01:03:17 -0000 Received: from unknown (HELO box543.bluehost.com) (74.220.219.143) by cpoproxy3.bluehost.com with SMTP; 23 Dec 2011 01:03:17 -0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=apotheon.com; s=default; h=In-Reply-To:Content-Type:MIME-Version:References:Message-ID:Subject:To:From:Date; bh=cXDmAsapAIEzP13IdAbxfPS2eBB/Ji13nCFk1BqZsNg=; b=MYDaIOZ2aQxTktyhBXy9sqaJab2ixbwX1J/CAQjTRURtXnP4w5NNuwLaJCqSB8sN5nFn3tiybdcC/j3zWZVKaXtuNyIvwdyMnv9WbL2Q6FOdN633w+8TsBgcb35jKJ4x; Received: from c-24-8-180-234.hsd1.co.comcast.net ([24.8.180.234] helo=localhost) by box543.bluehost.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.76) (envelope-from ) id 1RdtXY-0002qt-O9 for freebsd-questions@freebsd.org; Thu, 22 Dec 2011 18:03:16 -0700 Date: Thu, 22 Dec 2011 18:03:17 -0700 From: Chad Perrin To: freebsd-questions@freebsd.org Message-ID: <20111223010317.GA11856@hemlock.hydra> Mail-Followup-To: freebsd-questions@freebsd.org References: <4EF29AD7.5040807@herveybayaustralia.com.au> <4EF2FA12.5010606@infracaninophile.co.uk> <9054C93B-B423-4C34-B95D-3C4119FC2C45@adelaide.edu.au> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <9054C93B-B423-4C34-B95D-3C4119FC2C45@adelaide.edu.au> User-Agent: Mutt/1.5.21 (2010-09-15) X-Identified-User: {2737:box543.bluehost.com:apotheon:apotheon.com} {sentby:smtp auth 24.8.180.234 authed with perrin@apotheon.com} Subject: Re: Revision control advice X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Dec 2011 01:03:38 -0000 On Fri, Dec 23, 2011 at 09:23:22AM +1030, William Brown wrote: > On 22/12/2011, at 20:06, Matthew Seaman wrote: > > > > svn vs git vs mercurial > > > > svn has the model of a central repository that everything has to > > communicate with. This can be attractive in a commercial environment as > > it implies a degree of central control over all of the project source code. > > > > git is much more a peer-to-peer system. This fits with a disparate > > group of projects all proceeding pretty much independently. There's > > also a potential advantage if all your developers are not at the same > > location and will not necessarily have access to central office systems. > > > > mercurial unfortunately I'm not that familiar with, but it uses a > > distributed model like git. > > I would advise staying away from mercurial (aka hg). It has a lot of > issues with corruption of repositories. Git does the same and is a lot > more mature and stable. Uh . . . what? Please provide a source for that claim. > > > > Other criteria, like windows support, are not anything I have much > > experience of, but by all accounts svn and git are pretty well served. > > Again, git wins here. It has good support on windows, as well as with > graphical tools on windows. How does TortoiseGIT improve on TortoiseHG? I'm curious. > > You can use git like SVN if you push to the master after every commit > though. I also have found git's support for merging to be a lot better. > Additionally it stores branches and tags as metadata on commits rather > than svn's "dumb" tag / branch system where you just copy the full repo > to the side. For the vast majority of purposes, distributed VCSes like Fossil, Git, and Mercurial are quite superior to CVCSes such as Subversion. There are cases, however, where a truly centralized system is more appropriate. These are typically cases where division of labor is very starkly defined and a strong central control over everything needs to be maintained even when the people working out at the nodes of the system might be tempted to follow a different, ad-hoc process of their own. For those cases, something like Git (or Fossil or Mercurial) simply will not do.