download/git: more resilient in case of kill

In case the git backend gets killed right in-between it finished
initialising the repository, but before it could add the remote,
we'd end up with a repository without the 'origin' remote, so we
would not be able to change its URL.

Another case that may happen (like in the build failure, below),
is that the repository was initialised with a previous version
of Buildroot, before the commit e17719264b (download/git: don't
require too-recent git) was applied, and that trepository was
still lying around...

Fixes:
    http://autobuild.buildroot.org/results/25a/25aae054634368fadb265b97ebe4dda809deff6f/

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Yann E. MORIN 2018-04-09 23:56:51 +02:00 committed by Thomas Petazzoni
parent 3f12545c11
commit 6dfaa33d13

View File

@ -47,13 +47,15 @@ git_cache="${dl_dir}/git"
# fetch'ed later.
if [ ! -d "${git_cache}" ]; then
_git init "'${git_cache}'"
pushd "${git_cache}" >/dev/null
_git remote add origin "'${uri}'"
popd >/dev/null
fi
pushd "${git_cache}" >/dev/null
# Ensure the repo has an origin (in case a previous run was killed).
if ! git remote |grep -q -E '^origin$'; then
_git remote add origin "'${uri}'"
fi
_git remote set-url origin "'${uri}'"
# Try to fetch with limited depth, since it is faster than a full clone - but