From: Bagas Sanjaya Date: Mon, 31 May 2021 04:01:22 GMT Subject: Re: Bug when cloning a repository with a default branch called HEAD Message-ID: <07edafe5-d0a2-4a2c-12a2-28c163f6fdda@gmail.com> In-Reply-To: Hi, On 29/05/21 02.05, Björn Kautler wrote: > Hi, > > I'm not right now sure why this repo is in this state or how it got > there, but that doesn't matter. > But if you clone it, everything is fine. > And if you then try to fetch it, Git goes havoc: > I'm trying to create minimal reproducible test repo by switching initial branch to HEAD: $ mkdir shark && cd shark $ git init $ git checkout -b HEAD But when I checkout, it returned error as expected: > fatal: 'HEAD' is not a valid branch name. Thus I can't reproduce this issue. > $ git clone https://gitlab.com/Vampire/whelk.git/ && cd whelk && > GIT_TRACE=1 git fetch; echo $? > Cloning into 'whelk'... > remote: Enumerating objects: 525, done. > remote: Counting objects: 100% (525/525), done. > remote: Compressing objects: 100% (227/227), done. > remote: Total 525 (delta 280), reused 525 (delta 280), pack-reused 0 > Receiving objects: 100% (525/525), 165.63 KiB | 3.52 MiB/s, done. > Resolving deltas: 100% (280/280), done. > 21:04:15.761530 exec-cmd.c:237 trace: resolved executable > dir: C:/Program Files/Git/mingw64/bin > 21:04:15.765532 git.c:447 trace: built-in: git fetch > warning: refname 'HEAD' is ambiguous. > 21:04:15.769530 run-command.c:667 trace: run_command: > GIT_DIR=.git git remote-https origin > https://gitlab.com/Vampire/whelk.git/ > 21:04:15.795532 exec-cmd.c:237 trace: resolved executable > dir: C:/Program Files/Git/mingw64/libexec/git-core > 21:04:15.799535 git.c:734 trace: exec: git-remote-https > origin https://gitlab.com/Vampire/whelk.git/ > 21:04:15.799535 run-command.c:667 trace: run_command: > git-remote-https origin https://gitlab.com/Vampire/whelk.git/ > 21:04:15.832533 exec-cmd.c:237 trace: resolved executable > dir: C:/Program Files/Git/mingw64/libexec/git-core > 21:04:16.438060 run-command.c:667 trace: run_command: git > rev-list --objects --stdin --not --all --quiet --alternate-refs > 21:04:16.461060 run-command.c:667 trace: run_command: git > rev-list --objects --stdin --not --all --quiet --alternate-refs > 21:04:16.475738 exec-cmd.c:237 trace: resolved executable > dir: C:/Program Files/Git/mingw64/libexec/git-core > 21:04:16.478705 git.c:447 trace: built-in: git rev-list > --objects --stdin --not --all --quiet --alternate-refs > error: multiple updates for 'refs/remotes/origin/HEAD' (including one > via symref 'refs/remotes/origin/HEAD') are not allowed > From https://gitlab.com/Vampire/whelk > ! [new branch] HEAD -> origin/HEAD (unable to update local ref) > error: some local refs could not be updated; try running > 'git remote prune origin' to remove any old, conflicting branches > 21:04:16.496254 run-command.c:667 trace: run_command: git > maintenance run --auto --no-quiet > 21:04:16.510254 exec-cmd.c:237 trace: resolved executable > dir: C:/Program Files/Git/mingw64/libexec/git-core > 21:04:16.512256 git.c:447 trace: built-in: git > maintenance run --auto --no-quiet > 1 > > Cheers > Björn > The remote [1] might misconfigured default branch, so instead of master/main it pointed to HEAD, and it caused the issue. Thanks. [1]: https://gitlab.com/Vampire/whelk -- An old man doll... just what I always wanted! - Clara