Boost logo

Boost :

From: Mateusz Loskot (mateusz_at_[hidden])
Date: 2019-10-03 07:36:26


On Thu, 3 Oct 2019 at 08:41, Andrey Semashev via Boost
<boost_at_[hidden]> 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

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk