Re: Git error message "Server does not allow request for unadvertised object"
Show 21 quoted lines
> Le 18 mai 2020 à 05:20, Yngve N. Pettersen <yngve@vivaldi.com> a écrit :
>
> Hello all,
>
> A while back I reported an issue to the Windows Git project <https://github.com/git-for-windows/git/issues/2218> that I observed in Git for Windows 2.21.
>
> The error message "Server does not allow request for unadvertised object" is reported when a commit updating a submodule pointer points to a commit that does not exist in the repository for that submodule, even if later commits in the branch points to a commit that do exist in the submodule repo.
>
> This circumstance can easily occur if a developer (e.g)
>
> * interactively rebases a branch "foo" in the submodule (e.g to integrate commits from another branch before a larger rebase)
> * commits the resulting submodule pointer "A" in the branch to the parent repo
> * then do further rebasing in the submodule, e.g to move up on top of the "bar" branch
> * commits that pointer "B" to the parent repo
> * forgets to squash the history in the parent repo
> * pushes the updated submodule "foo" branch to the online repo. (NOTE: "B" is pushed, not "A")
> * pushes the parent module branch to its online repo
>
> When the parent repo is pulled by another developer, or an autobuild system, the fetch operation fails with the message "Server does not allow request for unadvertised object". A second fetch will complete successfully.
>
> IMO this kind of check should only happen if a commit with pointer to a missing submodule is actively checked out. At most the above message should be a warning, not a fatal error.
I think that's a good idea.
Another thing that I find confusing with this message is that it can be taken to mean that the server does not support fetching "unadvertised objects", i.e. `uploadpack.allow{Tip,Reachable,Any}SHA1InWant` is false, when in fact the object is simply inexistent...Philippe.