From owner-freebsd-git@freebsd.org Tue Jun 9 12:50:21 2020 Return-Path: Delivered-To: freebsd-git@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 17C4C32BFDB for ; Tue, 9 Jun 2020 12:50:21 +0000 (UTC) (envelope-from uqs@freebsd.org) Received: from acme.spoerlein.net (acme.spoerlein.net [185.95.219.49]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "www.spoerlein.net", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 49h92N4Z8Fz4WcF; Tue, 9 Jun 2020 12:50:20 +0000 (UTC) (envelope-from uqs@freebsd.org) Received: from localhost (acme.spoerlein.net [IPv6:2a05:fc87:1:5:0:0:0:15]) by acme.spoerlein.net (8.15.2/8.15.2) with ESMTPS id 059CmZLs091250 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Tue, 9 Jun 2020 14:48:40 +0200 (CEST) (envelope-from uqs@freebsd.org) Date: Tue, 9 Jun 2020 14:48:35 +0200 From: Ulrich =?utf-8?B?U3DDtnJsZWlu?= To: Warner Losh 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> References: <20200608173510.GB3195@acme.spoerlein.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.12.2 (2019-09-21) X-Rspamd-Queue-Id: 49h92N4Z8Fz4WcF X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [0.00 / 15.00]; local_wl_from(0.00)[freebsd.org]; ASN(0.00)[asn:39540, ipnet:185.95.219.0/24, country:CH] X-BeenThere: freebsd-git@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: Discussion of git use in the FreeBSD project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jun 2020 12:50:21 -0000 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 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