Message ID | 20180409214155.24741-1-yann.morin.1998@free.fr |
---|---|
State | Superseded |
Headers | show |
Series | download/git: more resilient in case of kill | expand |
Hello, On Mon, 9 Apr 2018 23:41:55 +0200, Yann E. MORIN wrote: > +pushd "${git_cache}" >/dev/null So you're doing the pushd here now. > + > +# Ensure the repo has an origin (in case a previous run was killed). > +if git remote |grep -q -E '^origin$' > pushd "${git_cache}" >/dev/null And therefore I'm not sure why it's needed here... > _git remote add origin "'${uri}'" > popd >/dev/null ... and this popd would no longer be needed. > fi > > -pushd "${git_cache}" >/dev/null I am missing something? Best regards, Thomas
Thomas, All, On 2018-04-09 23:45 +0200, Thomas Petazzoni spake thusly: > Hello, > > On Mon, 9 Apr 2018 23:41:55 +0200, Yann E. MORIN wrote: > > > +pushd "${git_cache}" >/dev/null > > So you're doing the pushd here now. > > > + > > +# Ensure the repo has an origin (in case a previous run was killed). > > +if git remote |grep -q -E '^origin$' > > pushd "${git_cache}" >/dev/null > > And therefore I'm not sure why it's needed here... > > > _git remote add origin "'${uri}'" > > popd >/dev/null > > ... and this popd would no longer be needed. > > > fi > > > > -pushd "${git_cache}" >/dev/null > > I am missing something? Absolutely nothing. I will respin. Thanks. Regards, Yann E. MORIN.
diff --git a/support/download/git b/support/download/git index 868dfad0dd..ee6c18a3ec 100755 --- a/support/download/git +++ b/support/download/git @@ -47,13 +47,17 @@ git_cache="${dl_dir}/git" # fetch'ed later. if [ ! -d "${git_cache}" ]; then _git init "'${git_cache}'" +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$' pushd "${git_cache}" >/dev/null _git remote add origin "'${uri}'" popd >/dev/null fi -pushd "${git_cache}" >/dev/null - _git remote set-url origin "'${uri}'" # Try to fetch with limited depth, since it is faster than a full clone - but
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> --- support/download/git | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)