git vs svn for vendor/bc/dist

Warner Losh imp at bsdimp.com
Fri Nov 27 18:57:51 UTC 2020


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.

Warner


More information about the freebsd-git mailing list