Re: [BUG?] Semantics of HEAD when bare cloning non-bare repositories
On Thu, Nov 23, 2023 at 12:13:27PM +0000, guillaume.yziquel@mailfence.com wrote:
> Observation: When git clone --bare is used on a non-bare repo, the
> HEAD is put in ./refs/HEAD, and conflicts with ./HEAD in the sense
> that they may end up decorelated over time.
That sounds like a bug, but I can't reproduce it here:
$ git init not-bare
$ git -C not-bare commit --allow-empty -m foo
$ git clone --bare not-bare bare.git
$ find bare.git/refs
bare.git/refs
bare.git/refs/tags
bare.git/refs/heads
$ cat bare.git/packed-refs
# pack-refs with: peeled fully-peeled sorted
db58e786007ca405e34df314479e27ddd337957a refs/heads/main
Are you sure that your non-bare repository does not accidentally have a "refs/HEAD" that should not be there?
> Suggestion: When bare cloning on a non-bare repo, do not put the HEAD
> of the non-bare repo in refs/HEAD like every branch, but treat it
> separately: put it in ./HEAD, not ./refs/HEAD.
That should be what happens already.
-Peff