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):
bb.utils.prunedir(destdir)
source_found = False
source_error = []
if not source_found:
clonedir_is_up_to_date = not self.clonedir_need_update(ud, d)
if clonedir_is_up_to_date:
runfetchcmd("%s clone %s %s/ %s" % (ud.basecmd, ud.cloneflags, ud.clonedir, destdir), d)
elif ud.shallow and os.path.exists(ud.fullshallow):
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:
raise bb.fetch2.UnpackError("No up to date source found", ud.url)
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)
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'))
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()
def test_that_unpack_does_work_when_using_git_shallow_tarball_but_tarball_is_not_available(self):