From owner-freebsd-hackers@FreeBSD.ORG Mon Jan 24 08:13:48 2011 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F2607106564A for ; Mon, 24 Jan 2011 08:13:47 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-wy0-f182.google.com (mail-wy0-f182.google.com [74.125.82.182]) by mx1.freebsd.org (Postfix) with ESMTP id 896548FC13 for ; Mon, 24 Jan 2011 08:13:47 +0000 (UTC) Received: by wyf19 with SMTP id 19so3814045wyf.13 for ; Mon, 24 Jan 2011 00:13:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:date:message-id:subject:from:to:cc :content-type:content-transfer-encoding; bh=/zXGiMcZuLWK0orIYOpxUaS5AkZ8ih/xDz/yAmmf/pg=; b=H0hljmhC19BVbIC18XfE28LM3pcBZSKK6aCFLEL37+4RNSikNc/pBnFZcRxIsVy41S 4AfVNsZtgvsFlEn7MJ3bvaIN+bpRjfQwGQWck+cAhRx7rXMGVyFLZGjrOQr/EWEAa8ex 3A1StqlWqT+egeSGxnOfV9fmCUu6fthcOECSA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=RDlKRRG85pAiBobj5H716JIBF2VMjBRHwv+zDby++uWa3muzyHsLUFRm8yrOi4w0ay oxvCphqpcXiGSEaCZZJmsru82S6JXE1Bwc0ZO5AEGYhAjlftzPC27I5HsSWP+5/kWzcS JfRe/pj88Aig3jV1HuZixv4Au5BRRcvyQ1vWg= MIME-Version: 1.0 Received: by 10.216.141.75 with SMTP id f53mr3301207wej.16.1295856826294; Mon, 24 Jan 2011 00:13:46 -0800 (PST) Received: by 10.216.254.226 with HTTP; Mon, 24 Jan 2011 00:13:46 -0800 (PST) Date: Mon, 24 Jan 2011 00:13:46 -0800 Message-ID: From: Garrett Cooper To: Peter Jeremy Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: "Simon L. B. Nielsen" , Matthew Fleming , freebsd-hackers@freebsd.org, Mike Tancsa Subject: Why not give git a try? (was "Re: [head tinderbox] failure on amd64/amd64") X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Jan 2011 08:13:48 -0000 On Sun, Jan 23, 2011 at 9:16 PM, Peter Jeremy wrote: > On 2011-Jan-21 20:01:32 +0100, "Simon L. B. Nielsen" wro= te: >>Perhaps we should just set the tinderbox up to sync directly of cvsup-mas= ter instead if that makes it more useful? > > Can cvsup-master still lose atomicity of commits? =A0I suspect it can, > in which case syncing directly off the SVN master would seem a better > approach. I've seen a lot of `self-healing' failures lately w.r.t. cvsup, so I wonder if it's time to look at another solution to this problem as these annoying stability issues don't appear to be going away. What about git? Just some things I'm able to rattle off that come to mind with git.. Some arguments `for git'... 1. One tool to rule them all: - cvsup/csup can be replaced with git archive [1]. - cvs git scales a bit better. - less support cost for p4 and lower likelihood of downtime in the event of critical failure (perforce's proprietary DB is a pain to recover I've recently discovered from other dealings). - svn <-> cvs exporter is no longer required as it's all one SCM. - As a side-effect, the bits present in CVS and SVN would now be 100% in sync, unlike cvs which can lead svn in terms of commits (at least that was the case when I last talked to someone about version numbering in pkg_install done by re@). 2. More evolved tool: - branches are cheap and can be local or remote. - distributed SCM seem to work well with large groups of developers. - works better with branching and merging from what I've seen. Some arguments against git... - The one caveat to cvsup/csup that's awesome is its componentization capability, i.e. being able to selectively download components in src / ports; I'm not 100% sure but there doesn't appear to be a clear analog in git. It might be achievable through gits remote. in git-config, git-remote, etc, but I would need to prototype whether or not this is true. - Higher learning curve. - Some slightly annoying nits with stashing local changes when working on separate branches (need to talk to git maintainers). - Some more git experienced folks could comment here, but it would be nice to unify all of the systems under `one flag' for the sake of simplicity and hopefully the sanity of the tool maintainers (Simon, et all). Thanks! -Garrett