Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 03 Oct 2008 11:36:05 +0200
From:      =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= <des@des.no>
To:        David Wolfskill <david@catwhisker.org>
Cc:        chat@freebsd.org
Subject:   Re: Date/time for FreeBSD CVS repo Tag-creation?
Message-ID:  <861vyyvx4q.fsf@ds4.des.no>
In-Reply-To: <20081002190352.GJ41015@bunrab.catwhisker.org> (David Wolfskill's message of "Thu, 2 Oct 2008 12:03:52 -0700")
References:  <20081002190352.GJ41015@bunrab.catwhisker.org>

next in thread | previous in thread | raw e-mail | index | archive | help
David Wolfskill <david@catwhisker.org> 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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?861vyyvx4q.fsf>