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.

Reply via email to