Hello, I am trying to debug an issue where a shallow clone (--depth=1) fails
when the reference is the tip of a tag on a GitHub repository.
The git client works on versions below 2.22.0-rc0 up until commit 34066f06,
"fetch: do not consider peeled tags as advertised tips". That commit peels refs
in the form of "refs/tags/v2.2.2^{}". My question is if the intention was to
peel these refs and break this functionality? I do not know enough about git to
understand if the behavior before commit 34066f06 was unintended.
Here is a method to reproduce the previous behavior:
$ mkdir test-repo
$ cd test-repo
$ git init
$ git submodule add https://github.com/gflags/gflags gflags
$ (cd gflags; git checkout v2.2.2)
$ git add .
$ git commit -m 'Add gflags submodule'
Then with git client version 2.21.0:
$ git clone test-repo test-repo2
$ cd test-repo2
$ git submodule update --init --depth=1
Submodule 'gflags' (https://github.com/gflags/gflags) registered for path
'gflags'
Cloning into '/tmp/test-repo2/gflags'...
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Enumerating objects: 17, done.
remote: Counting objects: 100% (17/17), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 9 (delta 8), reused 1 (delta 0), pack-reused 0
Unpacking objects: 100% (9/9), done.
>From https://github.com/gflags/gflags
* branch e171aa2d15ed9eb17054558e0b3a6a413bb01067 -> FETCH_HEAD
Submodule path 'gflags': checked out 'e171aa2d15ed9eb17054558e0b3a6a413bb01067'
And attempting with newer versions of the git client:
Cloning into '/tmp/test-repo2/gflags'...
error: Server does not allow request for unadvertised object
e171aa2d15ed9eb17054558e0b3a6a413bb01067
Fetched in submodule path 'gflags', but it did not contain
e171aa2d15ed9eb17054558e0b3a6a413bb01067. Direct fetching of that commit failed.
Thanks for the help!
--
Teddy Reed <[email protected]>