From owner-freebsd-git@freebsd.org Sat Apr 3 00:51:43 2021 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 AED995B8AAC for ; Sat, 3 Apr 2021 00:51:43 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from mail.vx.sk (mail.vx.sk [144.76.20.103]) by mx1.freebsd.org (Postfix) with ESMTP id 4FByzg3gjcz4dwF; Sat, 3 Apr 2021 00:51:43 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from mail.vx.sk (localhost [127.0.0.1]) by mail.vx.sk (Postfix) with ESMTP id B6AE41E3775; Sat, 3 Apr 2021 02:51:42 +0200 (CEST) X-Virus-Scanned: amavisd-new at mail.vx.sk Received: from mail.vx.sk by mail.vx.sk (amavisd-new, unix socket) with LMTP id 30YyDuEv_DlL; Sat, 3 Apr 2021 02:51:42 +0200 (CEST) Received: from [10.9.8.122] (188-167-101-78.dynamic.chello.sk [188.167.101.78]) by mail.vx.sk (Postfix) with ESMTPSA id 5CDD21E38C2; Sat, 3 Apr 2021 02:51:42 +0200 (CEST) Subject: Re: OpenZFS branch tracking policy From: Martin Matuska To: Warner Losh , Ed Maste Cc: freebsd-git , Alexander Motin , Mateusz Guzik , Ryan Moeller References: <21c7313e-315c-ec48-9437-e0a3d4ec14d2@FreeBSD.org> <41924e9d-9d61-6646-6c8f-e4458f94296e@FreeBSD.org> <30f529c1-6087-e704-8cc7-0c48a40b7430@FreeBSD.org> Message-ID: <323a07e2-beeb-deb3-3fa5-bd1241a2cb04@FreeBSD.org> Date: Sat, 3 Apr 2021 02:51:41 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: <30f529c1-6087-e704-8cc7-0c48a40b7430@FreeBSD.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 4FByzg3gjcz4dwF X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [0.00 / 15.00]; ASN(0.00)[asn:24940, ipnet:144.76.0.0/16, country:DE]; local_wl_from(0.00)[FreeBSD.org] X-BeenThere: freebsd-git@freebsd.org X-Mailman-Version: 2.1.34 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: Sat, 03 Apr 2021 00:51:43 -0000 I have missed one more thing: Tracking different OpenZFS branches in main and stable/13 means that we=20 will be vendor-merging into stable/13 as well (opposed to cherry-picking)= . On 3. 4. 2021 2:44, Martin Matuska wrote: > I have prepared an example merged branch here: > https://github.com/mmatuska/freebsd-src/tree/openzfs_master_merged > > The magical command was: > git merge -s subtree -Xsubtree=3D"sys/contrib/openzfs" 891568c99=20 > --allow-unrelated-histories > > Luckily, our current diff is manageable. > > Martin > > On 3. 4. 2021 1:37, Martin Matuska wrote: >> Hi Warner and Ed, >> >> 2.1-release has already been branched. The stable branch policy in=20 >> OpenZFS is somewhat strange, they make a staging branch for each=20 >> patchlevel release, but the commits are continuous. >> >> To have some idea how big the repo history is: >> >> $ git rev-list master --count >> 6662 >> >> $ git rev-list zfs-2.1-release --count >> 6650 >> >> master and zfs-2.1-release have 6650 common commits at the moment >> >> $ git log master | wc -l >> 129868 >> >> (linecount - 4 * revcount) / revcount =3D linecount / revcount - 4 =3D= =20 >> 15,4938 comment lines per commit on average >> >> Initial commit was made in Feb 26, 2008. >> >> Yearly commit counts: >> >> $ git log master | grep -c -E '^Date:.* 2020 -[0-9]+$' >> 666 >> >> $ git log master | grep -c -E '^Date:.* 2019 -[0-9]+$' >> 535 >> >> $git log master | grep -c -E '^Date:.* 2018 -[0-9]+$' >> 428 >> >> Martin >> >> On 2. 4. 2021 20:15, Warner Losh wrote: >>> >>> >>> On Fri, Apr 2, 2021 at 11:56 AM Ed Maste >> > wrote: >>> >>> =C2=A0=C2=A0=C2=A0 On Fri, 2 Apr 2021 at 11:50, Warner Losh >> =C2=A0=C2=A0=C2=A0 > wrote: >>> =C2=A0=C2=A0=C2=A0 > >>> =C2=A0=C2=A0=C2=A0 > We'd always hoped that we'd be able to do subtre= e merges from >>> =C2=A0=C2=A0=C2=A0 upstreams >>> =C2=A0=C2=A0=C2=A0 > that use git into FreeBSD. The big worry, though= , was that this >>> =C2=A0=C2=A0=C2=A0 would >>> =C2=A0=C2=A0=C2=A0 > needless bloat the repo with a lot of history. W= e don't want, >>> =C2=A0=C2=A0=C2=A0 for example, >>> =C2=A0=C2=A0=C2=A0 > all of LLVM's history in the tree. We'd always a= nticipated that >>> =C2=A0=C2=A0=C2=A0 there'd be >>> =C2=A0=C2=A0=C2=A0 > some things we'd just accept the history for, si= nce it is=20 >>> similar in >>> =C2=A0=C2=A0=C2=A0 > character to the vendor branches (though of cour= se a bit more). >>> >>> =C2=A0=C2=A0=C2=A0 Note that if we do want to avoid bringing in the f= ull history `git >>> =C2=A0=C2=A0=C2=A0 subtree merge` supports a `--squash` option. This = brings in the=20 >>> set of >>> =C2=A0=C2=A0=C2=A0 upstream changes as a single commit, without bring= ing along the >>> =C2=A0=C2=A0=C2=A0 associated history. We will need to do more experi= mentation to=20 >>> confirm >>> =C2=A0=C2=A0=C2=A0 that the full process, including bootstrapping, wi= ll work as we=20 >>> want. >>> =C2=A0=C2=A0=C2=A0 Assuming this all works it should allow us to forg= o the use of a >>> =C2=A0=C2=A0=C2=A0 FreeBSD-specific vendor branch in src. >>> >>> =C2=A0=C2=A0=C2=A0 We've discussed mirroring any such 3rd-party sourc= e in some >>> =C2=A0=C2=A0=C2=A0 FreeBSD-controlled repository. This would allow th= e project to=20 >>> retain >>> =C2=A0=C2=A0=C2=A0 a full copy of the history, but avoid bloating src= with it. >>> >>> =C2=A0=C2=A0=C2=A0 I agree with Warner that we may want a different p= olicy (full=20 >>> history >>> =C2=A0=C2=A0=C2=A0 or snapshots) for different contrib sources. >>> >>> >>> Good points Ed. I'd forgotten about --squash. >>> >>> Martin, what's your timeline for wanting to implement these things?=20 >>> I'm unfamiliar with the OpenZFS schedules. >>> >>> Warner >> _______________________________________________ >> freebsd-git@freebsd.org mailing list >> https://lists.freebsd.org/mailman/listinfo/freebsd-git >> To unsubscribe, send any mail to "freebsd-git-unsubscribe@freebsd.org" > _______________________________________________ > freebsd-git@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-git > To unsubscribe, send any mail to "freebsd-git-unsubscribe@freebsd.org"