From a8a077cafb0584dbb4ad4cb8a721b4d50b4180ef Mon Sep 17 00:00:00 2001 From: Urs Fässler Date: Mon, 8 Oct 2018 08:15:12 +0000 Subject: bitbake: fetch2/git: provide information about missing sources MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Provide more information in the case the sources are not found in the unpack step. (Bitbake rev: 27a2214bf6f2e7c61bfc422a20959a55f7e0d25d) Signed-off-by: Urs Fässler Signed-off-by: Pascal Bach Signed-off-by: Richard Purdie --- bitbake/lib/bb/fetch2/git.py | 29 +++++++++++++++++++++-------- bitbake/lib/bb/tests/fetch.py | 2 ++ 2 files changed, 23 insertions(+), 8 deletions(-) (limited to 'bitbake') diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py index 51259df93f..15858a6241 100644 --- a/bitbake/lib/bb/fetch2/git.py +++ b/bitbake/lib/bb/fetch2/git.py @@ -476,14 +476,27 @@ class Git(FetchMethod): if os.path.exists(destdir): bb.utils.prunedir(destdir) - 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): - bb.utils.mkdirhier(destdir) - runfetchcmd("tar -xzf %s" % ud.fullshallow, d, workdir=destdir) - else: - raise bb.fetch2.UnpackError("No up to date source found", ud.url) + 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) + 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) runfetchcmd("%s remote set-url origin %s" % (ud.basecmd, repourl), d, workdir=destdir) diff --git a/bitbake/lib/bb/tests/fetch.py b/bitbake/lib/bb/tests/fetch.py index f52241fbea..17909ec62c 100644 --- a/bitbake/lib/bb/tests/fetch.py +++ b/bitbake/lib/bb/tests/fetch.py @@ -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): -- cgit v1.2.3-54-g00ecf