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

login
register
mail settings
Submitter Zhenhua Luo
Date Jan. 7, 2014, 10:45 a.m.
Message ID <1389091534-34351-1-git-send-email-zhenhua.luo@freescale.com>
Download mbox | patch
Permalink /patch/64209/
State New
Headers show

Comments

Zhenhua Luo - Jan. 7, 2014, 10:45 a.m.
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@freescale.com>
---
 lib/bb/fetch2/git.py | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

Patch

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: