From owner-freebsd-current@freebsd.org Wed Dec 23 12:54:03 2020 Return-Path: Delivered-To: freebsd-current@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 DA3594BEA25; Wed, 23 Dec 2020 12:54:03 +0000 (UTC) (envelope-from uqs@freebsd.org) Received: from acme.spoerlein.net (acme.spoerlein.net [IPv6:2a05:fc87:1:5::15]) (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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4D1Cnl3JKRz4q55; Wed, 23 Dec 2020 12:54:03 +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.16.1/8.15.2) with ESMTPS id 0BNCs036062333 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Wed, 23 Dec 2020 13:54:00 +0100 (CET) (envelope-from uqs@freebsd.org) Date: Wed, 23 Dec 2020 13:54:00 +0100 From: Ulrich =?utf-8?B?U3DDtnJsZWlu?= To: Miroslav Lachman <000.fbsd@quip.cz> Cc: freebsd-current@freebsd.org, freebsd-git@freebsd.org Subject: Re: git tools for building in base? Message-ID: Mail-Followup-To: Miroslav Lachman <000.fbsd@quip.cz>, freebsd-current@freebsd.org, freebsd-git@freebsd.org References: <20201125055425.01AA628417@elsa.codelab.cz> <10f7b800-b015-2a80-b741-4f7db03bf6eb@quip.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: <10f7b800-b015-2a80-b741-4f7db03bf6eb@quip.cz> User-Agent: Mutt/2.0.2 (2020-11-20) X-Rspamd-Queue-Id: 4D1Cnl3JKRz4q55 X-Spamd-Bar: / X-Spamd-Result: default: False [0.00 / 15.00]; local_wl_from(0.00)[freebsd.org]; ASN(0.00)[asn:39540, ipnet:2a05:fc87::/32, country:CH] X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Dec 2020 12:54:03 -0000 On Fri, 2020-12-18 at 14:02:08 +0100, Miroslav Lachman wrote: >On 25/11/2020 06:54, Thomas Mueller wrote: > >> NetBSD users face a similar problem with their upcoming switch from cvs to hg (Mercurial). > >Do anybody have a link to some documents stating why FreeBSD chose Git >and why NetBSD chose Mercurial? I am using both tools at $WORK, I am >just curious what leads to these decisions. No documents, but git was simply more mature back when I started this effort a decade ago and it is and was more popular (with all the added side effects that has). I was (and am) only an occasional user of hg and even git, so familiarity wasn't quite an argument back then, though the git storage model is much nicer for the required history re-writing. In the early days I pushed to googlecode and bitbucket as well, you can see that here https://svnweb.freebsd.org/base/user/uqs/git_conv/git_conv?r1=251786&r2=251785&pathrev=251786 Not visible are the trials I ran with git-svn and hg, both of which only could handle the single head branch, but not all the other branching craziness that was and is going on in the repo. I don't fully recall, but I think that the hg conversion was slow and the disk space needed was quite a bit more than git. So in summary, I guess it can be summed up as: - there was no svn-all-fast-export for hg back then - even bitbucket switched from hg to git - history rewriting is easier in git, see e.g. this file for the stuff that's required to make the cvs2svn things a bit nicer: https://github.com/freebsd/git_conv/blob/master/fix_bogus_tags.sh Granted, now that the heavy lifting is done, one could probably do a git2hg transition, as the history is now pretty sane and should be compatible to the hg model. But lack of anyone (to my knowledge?) providing a hg copy of FreeBSD all these years tells me that there's simply no demand for it. There's https://wiki.freebsd.org/LocalMercurial from 2008 but that skips converting from r1. Of interest is also https://www.mercurial-scm.org/pipermail/mercurial/2019-May/051240.html which looks like the size issues with hg haven't been fixed yet. It also seems that http://hg-beta.freebsd.org/base/branches has the user-servicable branches only, but not vendor. So it's not usable as a source-of-truth for the project. I would encourage everyone *not* to base their hg work off of SVN but take the soon-official git repo instead. If you wanted to do this right off of SVN, here's just one of dozens of quirks: https://github.com/freebsd/git_conv/blob/master/revisions.md You've been warned ;] Cheers Uli