[bitbake-devel] [PATCH v2] bitbake: fetch2/git: add nobranch option for SRC_URI to skip SHA validating for branch

Zhenhua Luo zhenhua.luo at freescale.com
Tue Jan 7 10:45:34 UTC 2014


For rebased git tree, some commits doesn't exist in any branch, and such commits are
valid in tag, the change is useful for such case.

Signed-off-by: Zhenhua Luo <zhenhua.luo at freescale.com>
---
 lib/bb/fetch2/git.py | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py
index b4b9368..c323309 100644
--- a/lib/bb/fetch2/git.py
+++ b/lib/bb/fetch2/git.py
@@ -101,6 +101,8 @@ class Git(FetchMethod):
 
         ud.rebaseable = ud.parm.get("rebaseable","0") == "1"
 
+        ud.nobranch = ud.parm.get("nobranch","0") == "1"
+
         # bareclone implies nocheckout
         ud.bareclone = ud.parm.get("bareclone","0") == "1"
         if ud.bareclone:
@@ -289,8 +291,13 @@ class Git(FetchMethod):
         return True
 
     def _contains_ref(self, ud, d, name):
-        cmd =  "%s branch --contains %s --list %s 2> /dev/null | wc -l" % (
-            ud.basecmd, ud.revisions[name], ud.branches[name])
+        cmd = ""
+        if ud.nobranch:
+            cmd = "%s log --pretty=oneline -n 1 %s -- 2> /dev/null | wc -l" % (
+                ud.basecmd, ud.revisions[name])
+        else:
+            cmd =  "%s branch --contains %s --list %s 2> /dev/null | wc -l" % (
+                ud.basecmd, ud.revisions[name], ud.branches[name])
         try:
             output = runfetchcmd(cmd, d, quiet=True)
         except bb.fetch2.FetchError:
-- 
1.8.4.2





More information about the bitbake-devel mailing list