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

Submitted by Zhenhua Luo on Jan. 7, 2014, 10:45 a.m.

Details

Message ID 1389091534-34351-1-git-send-email-zhenhua.luo@freescale.com
State New
Headers show

Commit Message

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 hide | download patch | download mbox

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: