git pull on Boost 'develop' branch problem

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

git pull on Boost 'develop' branch problem

Boost - Dev mailing list
When I do a 'git pull' on Boost checked out to 'develop' it ends with:

error: Server does not allow request for unadvertised object
3eb4826d1d2a3e46207a7e4a0467d9bab96d37f5

Anybody know why this is happening with the latest Boost in the
'develop' branch and if I need to do something to correct this ? It does
not seem to b3e affecting anything, and it appears the 'git pull' is
successful at the top level in pulling the latest 'develop' changes.


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: git pull on Boost 'develop' branch problem

Boost - Dev mailing list
On 3/10/2019 14:54, Edward Diener wrote:
> When I do a 'git pull' on Boost checked out to 'develop' it ends with:
>
> error: Server does not allow request for unadvertised object
> 3eb4826d1d2a3e46207a7e4a0467d9bab96d37f5
>
> Anybody know why this is happening with the latest Boost in the
> 'develop' branch and if I need to do something to correct this ? It does
> not seem to b3e affecting anything, and it appears the 'git pull' is
> successful at the top level in pulling the latest 'develop' changes.

The error means that there is some object referenced in your repository
or the incoming changes that you do not have locally and the server
either does not have it at all or does not have contained in any public
branches/tags.

Ensure you've done a git submodule update --init --recursive.

If it persists, try doing a fresh clone.  If the problem goes away, it
was probably a lost object on your side.

Otherwise, the next most likely cause is that someone has pushed a
commit referencing a submodule commit that hasn't been pushed, or has
force-pushed away some commit that you were depending on.  This is very bad.

(It's most likely someone forgetting to push the submodule.  That's a
very easy mistake to make, especially if they haven't set
push.recurseSubmodules [1].  The default for that is silly and everybody
should set it.)

[1]:
https://github.com/git/git/blob/b33a15b08131514b593015cb3e719faf9db20208/Documentation/config.txt#L2229-L2241

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: git pull on Boost 'develop' branch problem

Boost - Dev mailing list
On 2019-10-03 09:18, Gavin Lambert via Boost wrote:

> On 3/10/2019 14:54, Edward Diener wrote:
>> When I do a 'git pull' on Boost checked out to 'develop' it ends with:
>>
>> error: Server does not allow request for unadvertised object
>> 3eb4826d1d2a3e46207a7e4a0467d9bab96d37f5
>>
>> Anybody know why this is happening with the latest Boost in the
>> 'develop' branch and if I need to do something to correct this ? It
>> does not seem to b3e affecting anything, and it appears the 'git pull'
>> is successful at the top level in pulling the latest 'develop' changes.
>
> The error means that there is some object referenced in your repository
> or the incoming changes that you do not have locally and the server
> either does not have it at all or does not have contained in any public
> branches/tags.
>
> Ensure you've done a git submodule update --init --recursive.
>
> If it persists, try doing a fresh clone.  If the problem goes away, it
> was probably a lost object on your side.
>
> Otherwise, the next most likely cause is that someone has pushed a
> commit referencing a submodule commit that hasn't been pushed, or has
> force-pushed away some commit that you were depending on.  This is very
> bad.

This happens when someone rewrites history by force-pushing in a
submodule. Something I've been asking to prohibit for master and develop
in all submodules.

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Reply | Threaded
Open this post in threaded view
|

Re: git pull on Boost 'develop' branch problem

Boost - Dev mailing list
On Thu, 3 Oct 2019 at 08:41, Andrey Semashev via Boost
<[hidden email]> wrote:

> On 2019-10-03 09:18, Gavin Lambert via Boost wrote:
> > On 3/10/2019 14:54, Edward Diener wrote:
> >> When I do a 'git pull' on Boost checked out to 'develop' it ends with:
> >>
> >> error: Server does not allow request for unadvertised object
> >> 3eb4826d1d2a3e46207a7e4a0467d9bab96d37f5
> >>
> >> Anybody know why this is happening with the latest Boost in the
> >> 'develop' branch and if I need to do something to correct this ? It
> >> does not seem to b3e affecting anything, and it appears the 'git pull'
> >> is successful at the top level in pulling the latest 'develop' changes.
> >
> > The error means that there is some object referenced in your repository
> > or the incoming changes that you do not have locally and the server
> > either does not have it at all or does not have contained in any public
> > branches/tags.
> >
> > Ensure you've done a git submodule update --init --recursive.
> >
> > If it persists, try doing a fresh clone.  If the problem goes away, it
> > was probably a lost object on your side.
> >
> > Otherwise, the next most likely cause is that someone has pushed a
> > commit referencing a submodule commit that hasn't been pushed, or has
> > force-pushed away some commit that you were depending on.  This is very
> > bad.
>
> This happens when someone rewrites history by force-pushing in a
> submodule.

If by "This" you mean the "Server does not allow request for
unadvertised object",
then that (force-push) may not necessarily be the case. It happened to me and
my colleagues while using big repos with submodules where
neither superproject nor submodules allow force-push.

I've not yet managed to figure out what caused those issues, but fiddling
with updates using usually solved the issue.

git submodule sync --recursive
git submodule update --init --recursive

The git pull alone is hardly ever useful command while working with Boost
superproject or any non-trivial superproject. In most day to day tasks,
one will need a script for smooth updating operations.
I always update Boost with mine
https://github.com/mloskot/wsl-config/blob/master/scripts/boost-superproject-start-over.sh
and I don't recall I ever encountered any problems.

> Something I've been asking to prohibit for master and develop
> in all submodules.

Yes, it is a good idea.
Boost.GIL and Boost.Geometry disabled force-push for both branches.

Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost