From owner-freebsd-chat@FreeBSD.ORG Fri Oct 3 09:52:13 2008 Return-Path: Delivered-To: chat@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D7C4D1065691 for ; Fri, 3 Oct 2008 09:52:13 +0000 (UTC) (envelope-from des@des.no) Received: from tim.des.no (tim.des.no [194.63.250.121]) by mx1.freebsd.org (Postfix) with ESMTP id 86A0C8FC13 for ; Fri, 3 Oct 2008 09:52:13 +0000 (UTC) (envelope-from des@des.no) Received: from ds4.des.no (des.no [84.49.246.2]) by smtp.des.no (Postfix) with ESMTP id F16412084; Fri, 3 Oct 2008 11:36:05 +0200 (CEST) Received: by ds4.des.no (Postfix, from userid 1001) id CB8D18448F; Fri, 3 Oct 2008 11:36:05 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: David Wolfskill References: <20081002190352.GJ41015@bunrab.catwhisker.org> Date: Fri, 03 Oct 2008 11:36:05 +0200 In-Reply-To: <20081002190352.GJ41015@bunrab.catwhisker.org> (David Wolfskill's message of "Thu, 2 Oct 2008 12:03:52 -0700") Message-ID: <861vyyvx4q.fsf@ds4.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: chat@freebsd.org Subject: Re: Date/time for FreeBSD CVS repo Tag-creation? X-BeenThere: freebsd-chat@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Non technical items related to the community List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2008 09:52:13 -0000 David Wolfskill writes: > Anyway: A colleague at work has an assignment to determine and plot the > growth in the various branches of code at work, and he started wondering > what a similar graph would be like for the FreeBSD src repository. > [...] > It would be convenient to be able to tie a timestamp to each tag -- any > suggestions? You can't easily do that in CVS. You have to scan the entire repo and make an educated guess based on the dates of the earliest commits to that branch, and the earliest commits to the parent branch after the branch point. For instance, take src/COPYRIGHT: RELENG_5 has 1.5.0.2, while RELENG_6 has 1.6.0.2, so you know that RELENG_5 was branched after 1.5 but before 1.6. Repeat that with every file in the repo, and you can narrow it down to within a few minutes - however, you'll need to do some fancy footwork to work around tag slides. On the bright side, when the CVS repo was converted to SVN, the conversion tool did just what I describe above and inserted empty revisions in all the (mostly) right places: % for c in stable/*/COPYRIGHT ; do svn log $c | grep -B3 -A1 'create branch= ' ; done ------------------------------------------------------------------------ r42951 | cvs2svn | 1999-01-21 01:55:31 +0100 (Thu, 21 Jan 1999) | 1 line This commit was manufactured by cvs2svn to create branch 'RELENG_3'. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r57955 | cvs2svn | 2000-03-13 05:59:44 +0100 (Mon, 13 Mar 2000) | 1 line This commit was manufactured by cvs2svn to create branch 'RELENG_4'. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r133968 | cvs2svn | 2004-08-18 18:37:05 +0200 (Wed, 18 Aug 2004) | 1 line This commit was manufactured by cvs2svn to create branch 'RELENG_5'. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r147906 | cvs2svn | 2005-07-11 06:14:43 +0200 (Mon, 11 Jul 2005) | 1 line This commit was manufactured by cvs2svn to create branch 'RELENG_6'. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r172506 | cvs2svn | 2007-10-10 18:59:15 +0200 (Wed, 10 Oct 2007) | 1 line This commit was manufactured by cvs2svn to create branch 'RELENG_7'. ------------------------------------------------------------------------ Remember to take into account certain accidents of history, such as RELENG_5 being branched *after* RELENG_5_0, RELENG_5_1 and RELENG_5_2, which were branched directly off HEAD; the first real 5.x release was 5.3. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no