bitbake: fetch2/git: provide information about missing sources

Provide more information in the case the sources are not found in the
unpack step.

(Bitbake rev: 27a2214bf6f2e7c61bfc422a20959a55f7e0d25d)

Signed-off-by: Urs Fässler <urs.fassler@bbv.ch>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Urs Fässler 2018-10-08 08:15:12 +00:00 committed by Richard Purdie
parent 8553b2c111
commit a8a077cafb
2 changed files with 23 additions and 8 deletions

View File

@ -476,14 +476,27 @@ class Git(FetchMethod):
if os.path.exists(destdir): if os.path.exists(destdir):
bb.utils.prunedir(destdir) bb.utils.prunedir(destdir)
clonedir_is_up_to_date = not self.clonedir_need_update(ud, d) source_found = False
if clonedir_is_up_to_date: source_error = []
runfetchcmd("%s clone %s %s/ %s" % (ud.basecmd, ud.cloneflags, ud.clonedir, destdir), d)
elif ud.shallow and os.path.exists(ud.fullshallow): if not source_found:
bb.utils.mkdirhier(destdir) clonedir_is_up_to_date = not self.clonedir_need_update(ud, d)
runfetchcmd("tar -xzf %s" % ud.fullshallow, d, workdir=destdir) if clonedir_is_up_to_date:
else: runfetchcmd("%s clone %s %s/ %s" % (ud.basecmd, ud.cloneflags, ud.clonedir, destdir), d)
raise bb.fetch2.UnpackError("No up to date source found", ud.url) source_found = True
else:
source_error.append("clone directory not available or not up to date: " + ud.clonedir)
if not source_found:
if ud.shallow and os.path.exists(ud.fullshallow):
bb.utils.mkdirhier(destdir)
runfetchcmd("tar -xzf %s" % ud.fullshallow, d, workdir=destdir)
source_found = True
else:
source_error.append("shallow clone not enabled or not available: " + ud.fullshallow)
if not source_found:
raise bb.fetch2.UnpackError("No up to date source found: " + "; ".join(source_error), ud.url)
repourl = self._get_repo_url(ud) repourl = self._get_repo_url(ud)
runfetchcmd("%s remote set-url origin %s" % (ud.basecmd, repourl), d, workdir=destdir) runfetchcmd("%s remote set-url origin %s" % (ud.basecmd, repourl), d, workdir=destdir)

View File

@ -1709,6 +1709,8 @@ class GitShallowTest(FetcherTest):
fetcher.unpack(self.d.getVar('WORKDIR')) fetcher.unpack(self.d.getVar('WORKDIR'))
self.assertTrue("No up to date source found" in context.exception.msg) self.assertTrue("No up to date source found" in context.exception.msg)
self.assertTrue("clone directory not available or not up to date" in context.exception.msg)
self.assertTrue("shallow clone not enabled or not available" in context.exception.msg)
@skipIfNoNetwork() @skipIfNoNetwork()
def test_that_unpack_does_work_when_using_git_shallow_tarball_but_tarball_is_not_available(self): def test_that_unpack_does_work_when_using_git_shallow_tarball_but_tarball_is_not_available(self):