Patchwork [bitbake-devel] fetch2/git: Add sanity check to ensure we really did fetch the correct revisions

login
register
mail settings
Submitter Richard Purdie
Date Dec. 5, 2013, 3:21 p.m.
Message ID <1386256898.25847.22.camel@ted>
Download mbox | patch
Permalink /patch/62917/
State New
Headers show

Comments

Richard Purdie - Dec. 5, 2013, 3:21 p.m.
The fetcher made the rather bold assumption that if it fetched from the upstream,
the revisions were present and correct. These checks are fast and ensure that
really is the case. The avoids accidental network accessed and missing
branch configuration problems.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---

Patch

diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py
index a9470e4..2b9f8af 100644
--- a/bitbake/lib/bb/fetch2/git.py
+++ b/bitbake/lib/bb/fetch2/git.py
@@ -213,6 +213,9 @@  class Git(FetchMethod):
             runfetchcmd("%s prune-packed" % ud.basecmd, d)
             runfetchcmd("%s pack-redundant --all | xargs -r rm" % ud.basecmd, d)
             ud.repochanged = True
+        for name in ud.names:
+            if not self._contains_ref(ud.revisions[name], ud.branches[name], d):
+                raise bb.fetch2.FetchError("Unable to find revision %s in branch %s even from upstream" % (ud.revisions[name], ud.branches[name]))
 
     def build_mirror_data(self, ud, d):
         # Generate a mirror tarball if needed