On Mon, Dec 18, 2017 at 4:30 AM, Carlsson, Magnus <[email protected]> wrote: > Hi > > I am involved in the git-subrepo project > (https://github.com/ingydotnet/git-subrepo/). It's an attempt to simplify the > inclusion of repos into other repos. > > In a certain situation I would really need to fetch all commits related to a > specific commit (SHA). I have read the git fetch documentation and found > nothing regarding this. It only seems to support fetching references. > > I found some traces on stack overflow: > https://stackoverflow.com/questions/14872486/retrieve-specific-commit-from-a-remote-git-repository > > Following that recommendation it feels like it almost works: > $ git fetch subrepo > 50f730db793e0733b159326c5a3e78fd48cedfec:refs/remote/subrepo/foo-commit > remote: Counting objects: 2311, done. > remote: Total 2311 (delta 0), reused 0 (delta 0), pack-reused 2311 > Receiving objects: 100% (2311/2311), 703.64 KiB | 0 bytes/s, done. > Resolving deltas: 100% (1174/1174), done. > ----> So far so good, but then an error message appear: > error: Server does not allow request for unadvertised object > 50f730db793e0733b159326c5a3e78fd48cedfec > ----> And nothing seems to be fetched. > > Is there a way to fetch a commit and any ancestors to that commit based on a > SHA?
Ask the server operator to configure the server to allow fetching commits, specifically "git config uploadpack.allowReachableSHA1InWant 1" > > Why do I need this? > In git-subrepo we try to recreate another repo within our main repo. Creating > the necessary parent references when they appear. In some cases we need to > make sure that we have access to the correct commits from the subrepo, but we > don't have any references except a SHA. A very similar issue happens with submodules, which tries to fetch the branch(es) first and then by SHA1 as a fallback, but this fallback may fail as well due to the miss-configured server, at that point submodules just error out.

