From e5986c78a6108fd7578989c20efcbf0b81c97e03 Mon Sep 17 00:00:00 2001 From: Peter Kjellerstedt Date: Mon, 23 May 2016 13:35:49 +0200 Subject: [PATCH] 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 --- lib/bb/fetch2/git.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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)) -- 2.47.2