summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/fetch2/git.py
diff options
context:
space:
mode:
authorPaulo Neves <ptsneves@gmail.com>2018-08-27 21:38:59 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-08-28 10:32:08 +0100
commita8368651ffed1bd6c4715a37dfe9f40c48ca23c4 (patch)
treed21da4a858ba4eae79f850d22ac2e32bf8e1ce3f /bitbake/lib/bb/fetch2/git.py
parent4c41fc3f6eca667a6b09ff1b7701cec9b8b37e3f (diff)
downloadpoky-a8368651ffed1bd6c4715a37dfe9f40c48ca23c4.tar.gz
bitbake: fetcher: Fixed remote removal not throwing exception.
Before this fix it is assumed that the removal of the remote can only fail because there is not remote to remove. This is a false assumption. Example error which would be ignored: git -c core.fsyncobjectfiles=0 remote rm origin failed with exit code 1, output: Note: A branch outside the refs/remotes/ hierarchy was not removed; to delete it, use: git branch -d master error: could not lock config file config error: Could not remove config section 'remote.origin' Due to the masking of this error a stranger error will be presented to the user, because this time we do not mask the exception: git -c core.fsyncobjectfiles=0 remote add --mirror=fetch origin https://github.com/ptsneves/tl-wn722.git failed with exit code 128, output: fatal: remote origin already exists. The most likely reason that the remote cannot be removed nor modified is that the DL_DIR/git2 does not have permissions compatible with the user running bitbake. This commit fixes: https://bugzilla.yoctoproject.org/show_bug.cgi?id=12728 (Bitbake rev: 9c86c582a10c9b23abad7d34b6cbf12f7086294d) Signed-off-by: Paulo Neves <ptsneves@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/fetch2/git.py')
-rw-r--r--bitbake/lib/bb/fetch2/git.py7
1 files changed, 3 insertions, 4 deletions
diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py
index 612aac4353..35da14d71b 100644
--- a/bitbake/lib/bb/fetch2/git.py
+++ b/bitbake/lib/bb/fetch2/git.py
@@ -353,10 +353,9 @@ class Git(FetchMethod):
353 break 353 break
354 354
355 if needupdate: 355 if needupdate:
356 try: 356 output = runfetchcmd("%s remote" % ud.basecmd, d, quiet=True, workdir=ud.clonedir)
357 runfetchcmd("%s remote rm origin" % ud.basecmd, d, workdir=ud.clonedir) 357 if "origin" in output:
358 except bb.fetch2.FetchError: 358 runfetchcmd("%s remote rm origin" % ud.basecmd, d, workdir=ud.clonedir)
359 logger.debug(1, "No Origin")
360 359
361 runfetchcmd("%s remote add --mirror=fetch origin %s" % (ud.basecmd, repourl), d, workdir=ud.clonedir) 360 runfetchcmd("%s remote add --mirror=fetch origin %s" % (ud.basecmd, repourl), d, workdir=ud.clonedir)
362 fetch_cmd = "LANG=C %s fetch -f --prune --progress %s refs/*:refs/*" % (ud.basecmd, repourl) 361 fetch_cmd = "LANG=C %s fetch -f --prune --progress %s refs/*:refs/*" % (ud.basecmd, repourl)