git vs svn for vendor/bc/dist

Dan Langille dan at langille.org
Fri Nov 27 19:03:37 UTC 2020


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 at 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.

--
  Dan Langille
  dan at langille.org



More information about the freebsd-git mailing list