From: Zhenhua Luo Date: Tue, 7 Jan 2014 10:45:34 +0000 (+0800) Subject: bitbake: fetch2/git: add nobranch option for SRC_URI to skip SHA validating for branch X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f594cb9f5a18dd0ab2342f96ffc6dba697b35f65;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git bitbake: fetch2/git: add nobranch option for SRC_URI to skip SHA validating for branch 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 Signed-off-by: Richard Purdie --- diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py index b4b9368d14e..c323309684c 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: