From owner-freebsd-git@freebsd.org Tue Jun 9 22:37:54 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 F339F33F59C for ; Tue, 9 Jun 2020 22:37:54 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x82c.google.com (mail-qt1-x82c.google.com [IPv6:2607:f8b0:4864:20::82c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 49hQ4L0c49z3dps for ; Tue, 9 Jun 2020 22:37:53 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x82c.google.com with SMTP id y1so255407qtv.12 for ; Tue, 09 Jun 2020 15:37:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=N6HJ7lhq1E3NaFPx6eMudZDmqSu9o8QAxKLUjRrR/Kc=; b=Ql/kS8YE1v9z5Xqrz/hbxppKxvpcmIJjPa3FkNqkE7R4LqQ0XsA5vG83HBQf7R0eWD bjLpHqvh32wPo2mp1Bz+ZyUAGkfFTNq5i/M6I3qsYcQW6/jdlj7+lHK5AR89eZBiEGcT /XSSfi+W9TSAqcqh3AIPf8ZE67l7+aRalP36FCwIAjJRlCG6ZJiTfPOET9HZOtUffoln JnUPk1rEAxRevK3Vf5llwEdeeJ44lKZu0YYquU96QeFMSZbhZ2QrMxUMijW5LRkq1ycB Ynfgg8qoNTXWPsrPh+C8MC5YOXgSHssDr/HtgJhQcl7V8PLGfDGhNcx0zRAc0C5wsHCg 1U7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=N6HJ7lhq1E3NaFPx6eMudZDmqSu9o8QAxKLUjRrR/Kc=; b=o6iqiuHQYsZqANS4W3OdMcgpxsvJRKzZ6m1tKodOq2CRgtuW/ZAu5uz8aET1oMwtvw YjuKKNmSiixwNLRksru65pQrbks5ouFwYdwvU9oP/1yY7ylwjFeUWiqCkVdm1Hq/QLvV /estpnCO2fCsF5+5mMVaa21rnEt61XWyUqGftDltnBbl6+ZHtAwYS6proiW2hTAzAjMP ONjDzZRsyGPfgvHw1Xw9DDiChjfx34nGzypU8/KsUK5Vk1L0ZjmvMVD55BuFNZY7E+fd JFvbSDF91hJrvfBH3902Vy2uDylH0s9I8DUQk9A2wJk2O86Y50dg+CWWpN0YuPSKuRjY eSsw== X-Gm-Message-State: AOAM530WEia9cBLORA/QlcyMqQ/nKZag5Za1nrtMbbZTvKn+hVjqXe6u y3heUl1ZgRTAO7KmICLAZQiOjWmp7ijeGTDJyO72mgxT X-Google-Smtp-Source: ABdhPJxGxDvZYfb/0Y+pHQYNveGxzjN1wDiVS36kLZD6sPashrNqG1rCkpM7F04FvMJ2uNTDwbXnLV13oMjmkO0tci0= X-Received: by 2002:aed:2d87:: with SMTP id i7mr174317qtd.291.1591742272787; Tue, 09 Jun 2020 15:37:52 -0700 (PDT) MIME-Version: 1.0 References: <20200608173510.GB3195@acme.spoerlein.net> <20200609124835.GC3195@acme.spoerlein.net> <55F5631D-663A-4EEC-A21F-EB1F543CD230@samsco.org> In-Reply-To: <55F5631D-663A-4EEC-A21F-EB1F543CD230@samsco.org> From: Warner Losh Date: Tue, 9 Jun 2020 16:37:41 -0600 Message-ID: Subject: Re: When were the stable and release branches actually created? To: Scott Long Cc: =?UTF-8?Q?Ulrich_Sp=C3=B6rlein?= , freebsd-git@freebsd.org, Scott Long , Peter Wemm , kensmith@freebsd.org X-Rspamd-Queue-Id: 49hQ4L0c49z3dps X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=Ql/kS8YE; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::82c) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-1.25 / 15.00]; RCVD_TLS_ALL(0.00)[]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; NEURAL_HAM_MEDIUM(-0.87)[-0.866]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-0.79)[-0.792]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-git@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; RCPT_COUNT_FIVE(0.00)[6]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; NEURAL_HAM_SHORT(-0.59)[-0.595]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::82c:from]; R_SPF_NA(0.00)[no SPF record]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; SUBJECT_ENDS_QUESTION(1.00)[]; RCVD_COUNT_TWO(0.00)[2]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com] Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.33 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 22:37:55 -0000 Thanks Scott. I suspected that we'd done things to destroy data and it's not easy to recover. Thanks for confirming that was the case. Warner On Tue, Jun 9, 2020 at 11:11 AM Scott Long wrote: > TLDR: don=E2=80=99t worry about 4, 5, or 6. Start the git repo at the 1= 1-stable > branch point, not at the beginning of time. Let the old SVN repo be the > read-only source of truth for 10.x and prior. > > In the CVS days, we made it a practice to =E2=80=9Cslip tags=E2=80=9D whe= n we wanted a new > revision to be part of an existing branch or release. The effect of that > might > be what you=E2=80=99re seeing for 4.10 vs 4.11. You are correct that 5-S= TABLE > wasn=E2=80=99t > tagged until 5.2. I don=E2=80=99t remember what happened with 6-STABLE a= nd 6.1, > and my email archives from that time period are lost. > > I=E2=80=99ve gone through source control switches several times at severa= l > companies, > and it=E2=80=99s always not worth the pain to do a conversion of the old = system. > We=E2=80=99ve > found that it=E2=80=99s best to start the new repo with little or no hist= ory, and > leave the > old repo as a read-only archive. Interactive repo history is typically > only useful > for a few months, and after 6-12 months its use drops off rather > exponentially. > The effort required to curate the repo transposition is not worth it. > Also, as someone who still regularly fouls up git repos and needs to wipe > and > restart them, having a smaller repo with less ancient history makes > downloading > and managing it easier. > > My recommendation is to start a new repo with HEAD as of the FreeBSD 10, > branch point, which then tracks 12-CURRENT and all branches onwards. Tha= t > covers the need to do MFCs to 11-STABLE. People that want to examine old= er > history can use a read-only copy of SVN. Given that 10.x is coming up on= 8 > years old, and everything prior is obviously even older, that=E2=80=99s a > reasonable > amount of history to have in Git. > > > Scott > > > > On Jun 9, 2020, at 6:48 AM, Ulrich Sp=C3=B6rlein wrot= e: > > > > 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 leve= l > 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-wid= e > events > >> due to small date skews as files are updated one at a time, each at th= e > >> then-current gettimeofday(). > >> > >> Stable/5 was cut sometime after 5.2. That's legit timeline. 5 was smpn= g > 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=C3=B6rlein > wrote: > >> > >> Hey folks > >> > >> I'm investigating why the SVN repo differs from what's on the relea= se > >> 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 a= nd > >> 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 yea= rs > >> later) > >> > >> Thanks > >> Uli > > > > > > It's fairly easy to guess the true branchpoint by looking at the size o= f > > 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 ke= ep > > it free-dangling, but then have r158179 record stable/6 as of 2006-04-3= 0 > > 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 wi= th > > 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 > >