Please check the current beta git conversions

Ulrich Spörlein uqs at freebsd.org
Mon Oct 5 09:19:52 UTC 2020


On Sun, Oct 4, 2020 at 1:53 AM Bakul Shah <bakul at iitbombay.org> wrote:

> FWIW, I have a bare repo with the following config file
>
> [core]
>         repositoryformatversion = 0
>         filemode = true
>         bare = true
>         logallrefupdates = true
> [remote "origin"]
>         url = https://cgit-beta.freebsd.org/src.git
>         fetch = +refs/heads/*:refs/remotes/origin/*
>         fetch = +refs/notes/*:refs/notes/*
> [branch "main"]
>         remote = origin
>         merge = refs/heads/main
>
> /usr/src is a worktree and everything seems to be working fine.
>
> I manually converted to a bare repo (first testing this with a much
> smaller repo) and fixed up various refs. But probably safer to
> just start from scratch:
>
> git clone --bare https://cgit-beta.freebsd.org/src.git
> cd src.git
> git fetch origin 'refs/notes/*:refs/notes/origin/*' # <<< not sure about
> this....
>         # don't recall if I manually added the second fetch line in the
> config file.
>         # but notes get fetched fine; though I don't understand why 100MB+
> get
>         # downloaded every time even though only a few files change.
>

This is a quirk of the conversion. We have to patch up several tags
post-conversion, which patches up their notes, but that happens after the
full conversion is done. Notes are just 1 long linear branch, which ...
well, is unfortunate. So essentially every update to the repo changes the
last couple hundred of hashes for the commit notes objects/tree/DAG/linear
train. They always need to get force-pushed upstream and you always have to
re-fetch quite a bunch of them.

This will all cease with the final transition, obviously.

hth
Uli


More information about the freebsd-current mailing list