Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Dec 2020 16:55:58 +0100
From:      Miroslav Lachman <000.fbsd@quip.cz>
To:        uqs@freebsd.org
Cc:        freebsd-current@freebsd.org, freebsd-git@freebsd.org
Subject:   Re: git tools for building in base?
Message-ID:  <49d6a212-f266-5a71-4982-9c368887494c@quip.cz>
In-Reply-To: <X%2BM96JQwp%2BQCIIWH@acme.spoerlein.net>
References:  <X714z7pMgNOFaTIc@rpi4.local> <20201125055425.01AA628417@elsa.codelab.cz> <10f7b800-b015-2a80-b741-4f7db03bf6eb@quip.cz> <X%2BM96JQwp%2BQCIIWH@acme.spoerlein.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 23/12/2020 13:54, Ulrich Spörlein wrote:
> 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 ;]

Thank you so much. This is very valuable post. I didn't expect such 
detailed information.
As I am using hg for my local projects and git for public / $WORK maybe 
one day I will try to setup hg repo from official git repo - just for 
"the fun".
I am completely fine with svn, or git or anything else was / is / will 
be the official source even if there is no tool in base. Installing 
package is so simple in these days.

Thank you again!

Kind regards
Miroslav Lachman



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49d6a212-f266-5a71-4982-9c368887494c>