Date: Sat, 28 Nov 2020 12:12:49 +0100 From: Ulrich =?utf-8?B?U3DDtnJsZWlu?= <uqs@freebsd.org> To: Dan Langille <dan@langille.org> Cc: Warner Losh <imp@bsdimp.com>, freebsd-git@freebsd.org Subject: Re: git vs svn for vendor/bc/dist Message-ID: <X8IwsTvKjGo1Ss3j@acme.spoerlein.net> In-Reply-To: <a5a883a3-06d7-48e3-955e-349beeee1007@www.fastmail.com> References: <E2E9EAC7-B9FE-4453-9E31-E075935048B5@langille.org> <CANCZdfokmx6NJZS%2BZe5J8jLcHnire-fT_Yqvb2v88kVBY2OuMg@mail.gmail.com> <a5a883a3-06d7-48e3-955e-349beeee1007@www.fastmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 2020-11-27 at 14:03:14 -0500, Dan Langille wrote: >On Fri, Nov 27, 2020, at 1:57 PM, Warner Losh wrote: >> Hey Dan, >> >> On Fri, Nov 27, 2020 at 11:25 AM Dan Langille <dan@langille.org> wrote: >>> I am trying to understand how git handled this subversion commit: >>> >>> https://svnweb.freebsd.org/base?view=revision&revision=368062 >>> >>> The file paths are vendor/bc/dist/.gitignore etc. >>> >>> On git, we have https://github.com/freebsd/freebsd/commit/982c17586e39a3d0655b62da43a5642b69ab2af0 >>> >>> It looks to be the same list of files, but without the vendor/bc/dist/ prefix. >>> >>> The files all seems to be in the base directory. >>> >>> Can anyone explain this for me please? Should they not have the same path? >> >> git and svn are different in how they handle labeling interesting bits of the tree. >> >> subversion has one large tree as its name space. So all tags and branches are done in the context of that tree via copy commands. Creation / changing of tags also consumes a subversion revision. >> >> git has two name spaces, though. One for tall the files, and a separate one for tags and branches. Tags and branches are not versioned in git, so they don't create a new hash. >> >> The upshot of all this is that the vendor branch in git looks somewhat different than a vendor branch in subversion, and this is what you are seeing. >> >> After the holiday weekend, I should have the 'how to do vendor branches in git' written up and, if I did my job right, it should become more clear. > >From a FreshPorts point of view, I need to be able to tell where the files are located. > >My usual git queries gave the 'wrong' answers. The files are located in the vendor/bc/dist branch, and they just sit there at the "top-level", if you will. This is similar to the CVS days basically, it's only SVN that is "weird" in this regard. The prefixes were undone with the "flattening the vendor area" commits post SVN conversion, and I wonder whether we need to bring back the contrib/foo prefixes for all the vendors, to de-confuse git's merging. Warner and Ed should know better if that would help. hth Uli
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?X8IwsTvKjGo1Ss3j>