Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 Jun 2020 14:48:35 +0200
From:      Ulrich =?utf-8?B?U3DDtnJsZWlu?= <uqs@freebsd.org>
To:        Warner Losh <imp@bsdimp.com>
Cc:        freebsd-git@freebsd.org, scottl@freebsd.org, peter@freebsd.org, kensmith@freebsd.org
Subject:   Re: When were the stable and release branches actually created?
Message-ID:  <20200609124835.GC3195@acme.spoerlein.net>
In-Reply-To: <CANCZdfr8E9YHHbztiAfTytke1SsaE4uY_xAbZY-y6Fkv2=1X=w@mail.gmail.com>
References:  <20200608173510.GB3195@acme.spoerlein.net> <CANCZdfr8E9YHHbztiAfTytke1SsaE4uY_xAbZY-y6Fkv2=1X=w@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Adding Scott, Ken and Peter who might have some vague recollections. Please
see below.

On Mon, 2020-06-08 at 22:25:08 -0600, Warner Losh wrote:
> I'm unsure of this for sure.
> 
> I have a vague memory that we created the release branches when we had patches
> for security advisories. But things are fuzzy. Maybe the security advisories
> would hold a clue... Maybe the dates line up there?
> 
> At the very lease, it would let you know that we created an extra level of dots
> referenced in the patches there... This will let you know if this is a cvs2svn
> screw up, or a real artifact about the quirky nature of releases and security
> patches. CVS doesn't have super great fidelity in discovering tree-wide events
> due to small date skews as files are updated one at a time, each at the
> then-current gettimeofday().
> 
> Stable/5 was cut sometime after 5.2. That's legit timeline. 5 was smpng and it
> wasn't stable until two preview releases, and three actual releases into the
> process...
> 
> Warner
> 
> On Mon, Jun 8, 2020 at 11:36 AM Ulrich Spörlein <uqs@freebsd.org> wrote:
> 
>     Hey folks
> 
>     I'm investigating why the SVN repo differs from what's on the release
>     CVS ISOs and of course you'll shout "CVS repo copies" but it would be
>     really helpful if there was a record of when in time the various
>     branches were created. Because SVN just ain't right.
> 
>     Here's the pre-SVN stable and releng branch creations in SVN:
> 
>     r8869 | cvs2svn | 1995-05-30 07:50:54 +0200 (Tue, 30 May 1995) | 2 lines
>        A /stable/2.0.5 (from /head:8852)
>     r8882 | cvs2svn | 1995-05-30 10:29:08 +0200 (Tue, 30 May 1995) | 1 line
>        A /releng/2.0.5 (from /head:8881)
>     r9211 | cvs2svn | 1995-06-13 20:05:17 +0200 (Tue, 13 Jun 1995) | 1 line
>        A /stable/2.1 (from /head:9202)
>     r19327 | cvs2svn | 1996-11-02 11:41:29 +0100 (Sat, 02 Nov 1996) | 1 line
>        A /stable/2.2 (from /head:19320)
>     r42951 | cvs2svn | 1999-01-21 01:55:31 +0100 (Thu, 21 Jan 1999) | 1 line
>        A /stable/3 (from /head:42948)
>     r57955 | cvs2svn | 2000-03-13 05:59:44 +0100 (Mon, 13 Mar 2000) | 1 line
>        A /stable/4 (from /head:57954)
>     r57956 | cvs2svn | 2000-03-13 05:59:45 +0100 (Mon, 13 Mar 2000) | 1 line
>        A /releng/4.4 (from /stable/4:57955)
>     r57960 | cvs2svn | 2000-03-13 05:59:49 +0100 (Mon, 13 Mar 2000) | 1 line
>        A /releng/4.5 (from /stable/4:57955)
>     r63491 | cvs2svn | 2000-07-19 08:22:02 +0200 (Wed, 19 Jul 2000) | 1 line
>        A /releng/4.6 (from /stable/4:63490)
>     r66473 | cvs2svn | 2000-09-30 04:49:38 +0200 (Sat, 30 Sep 2000) | 1 line
>        A /releng/4.7 (from /stable/4:66472)
>     r75750 | cvs2svn | 2001-04-21 02:04:30 +0200 (Sat, 21 Apr 2001) | 1 line
>        A /releng/4.3 (from /stable/4:75749)
>     r101416 | cvs2svn | 2002-08-06 10:24:47 +0200 (Tue, 06 Aug 2002) | 1 line
>        A /releng/4.11 (from /stable/4:101415)
>     r101418 | cvs2svn | 2002-08-06 10:24:49 +0200 (Tue, 06 Aug 2002) | 1 line
>        A /releng/4.9 (from /stable/4:101415)
>     r107811 | cvs2svn | 2002-12-13 07:54:34 +0100 (Fri, 13 Dec 2002) | 1 line
>        A /releng/5.0 (from /head:107810)
>     r108855 | cvs2svn | 2003-01-07 05:28:56 +0100 (Tue, 07 Jan 2003) | 1 line
>        A /releng/4.10 (from /stable/4:108854)
>     r111744 | cvs2svn | 2003-03-02 17:42:41 +0100 (Sun, 02 Mar 2003) | 1 line
>        A /releng/4.8 (from /stable/4:111743)
>     r115436 | cvs2svn | 2003-05-31 13:28:29 +0200 (Sat, 31 May 2003) | 1 line
>        A /releng/5.1 (from /head:115435)
>     r123193 | cvs2svn | 2003-12-07 04:02:28 +0100 (Sun, 07 Dec 2003) | 1 line
>        A /releng/5.2 (from /head:123192)
>     r133968 | cvs2svn | 2004-08-18 18:37:05 +0200 (Wed, 18 Aug 2004) | 1 line
>        A /stable/5 (from /head:133920)
>     r133969 | cvs2svn | 2004-08-18 18:37:06 +0200 (Wed, 18 Aug 2004) | 1 line
>        A /releng/5.3 (from /stable/5:133968)
>     r133971 | cvs2svn | 2004-08-18 18:37:08 +0200 (Wed, 18 Aug 2004) | 1 line
>        A /releng/5.4 (from /stable/5:133968)
>     r147906 | cvs2svn | 2005-07-11 06:14:43 +0200 (Mon, 11 Jul 2005) | 1 line
>        A /stable/6 (from /head:147905)
>     r147907 | cvs2svn | 2005-07-11 06:14:44 +0200 (Mon, 11 Jul 2005) | 1 line
>        A /releng/6.0 (from /stable/6:147906)
>     r147908 | cvs2svn | 2005-07-11 06:14:45 +0200 (Mon, 11 Jul 2005) | 1 line
>        A /releng/6.1 (from /stable/6:147906)
>     r147921 | cvs2svn | 2005-07-11 06:14:58 +0200 (Mon, 11 Jul 2005) | 1 line
>        A /releng/6.2 (from /stable/6:147906)
>     r147922 | cvs2svn | 2005-07-11 06:14:59 +0200 (Mon, 11 Jul 2005) | 1 line
>        A /releng/6.3 (from /stable/6:147906)
>     r158462 | cvs2svn | 2006-05-12 03:09:20 +0200 (Fri, 12 May 2006) | 1 line
>        A /releng/5.5 (from /stable/5:158461)
>     r172506 | cvs2svn | 2007-10-10 18:59:15 +0200 (Wed, 10 Oct 2007) | 1 line
>        A /stable/7 (from /head:172505)
>     r172507 | cvs2svn | 2007-10-10 18:59:16 +0200 (Wed, 10 Oct 2007) | 1 line
>        A /releng/7.0 (from /stable/7:172506)
> 
> 
>     I think stable/5 being created after 5.2 is what actually happened
>     (IIRC), but 4.3 getting created after 4.7 and 4.11 predating 4.10 and
>     4.8 is highly bogus.
> 
>     Is there a record of when these things actually happened? Do I need to
>     trawl through newvers.sh for all of these?
> 
>     For example, in the releng/4.11 branch it gets first deleted, then
>     r138454 brings it back on 2004-12-06 14:39:45 (that's about 2.3 years
>     later)
> 
>     Thanks
>     Uli


It's fairly easy to guess the true branchpoint by looking at the size of
the tree. Taking 6.1 for example. SVN mentions it first in r147908 in
2005, but that commit basically deletes 99% of everything and
accumulates a bunch of files here and there till r158179 on 2006-04-30
when 99% of the files are being brought back.

Ignoring the fact that re-writing git notes is a pain in the neck, we
could easily munge all the previous commits together into a single
commit on the 2006-04-30 after the full conversion run.

Or, as an alternative, make r147908 *not* branch off of stable/6 and keep
it free-dangling, but then have r158179 record stable/6 as of 2006-04-30
as a parent commit. That could be done in-line and not mess with the
iterative conversion as much.

What I would need to know is at what stage and on which branch things
like newvers.sh were modified. Because for 6.1 the change of newvers.sh
to 6.1-RC came in with r157593 on 2006-04-08 (so not the big massive
commit on 2006-04-30). Later on 2006-04-30 it was then bumped to RC2 with
r158153.

Scott, Ken, what was standard practice back in the day? Was there ever
a single file branched off to releng/x.y before the big tagging of the
full tree? Or can I really take the massive commit of r158179 to mean
the branch was tagged and all other schmutz either happened on stable/x
and later got its tag moved or was a repo-copy?

Is there a way to get the dates from the email archives? Does someone
have a full copy of those?

Thanks a lot

Cheers
Uli



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