From: Peter Kjellerstedt Date: Mon, 23 May 2016 11:35:49 +0000 (+0200) Subject: fetch2/git.py: References must match exactly X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5986c78a6108fd7578989c20efcbf0b81c97e03;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git fetch2/git.py: References must match exactly Previously the code used to match a reference to its SHA-1 in _latest_revision() used the Python "in" operator, which made it match if the reference matched the beginning of an existing tag or branch. This test, however, must be exact. I.e., either the reference matches a tag or branch exactly, or it does not match at all. Signed-off-by: Peter Kjellerstedt Signed-off-by: Richard Purdie --- diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py index 526668bc23c..59827e304fa 100644 --- a/lib/bb/fetch2/git.py +++ b/lib/bb/fetch2/git.py @@ -350,9 +350,10 @@ class Git(FetchMethod): head = "refs/heads/%s" % ud.unresolvedrev[name] tag = "refs/tags/%s" % ud.unresolvedrev[name] for s in [head, tag + "^{}", tag]: - for l in output.split('\n'): - if s in l: - return l.split()[0] + for l in output.strip().split('\n'): + sha1, ref = l.split() + if s == ref: + return sha1 raise bb.fetch2.FetchError("Unable to resolve '%s' in upstream git repository in git ls-remote output for %s" % \ (ud.unresolvedrev[name], ud.host+ud.path))