From de50cec19b4f7e4c5a6da5ecc5cddd7a52ac3725 Mon Sep 17 00:00:00 2001 From: Sam Thursfield Date: Thu, 13 Dec 2012 12:36:07 +0000 Subject: Always use `git rev-parse --verify` to resolve refs Previously some code used `git show-ref`, which is wrong -- given two refs named 'alpha/master' and 'master', `git show-ref master` will return both, sorted alphabetically. This can lead to build failures, etc. due to refs resolving to the wrong SHAs. We should also use `git rev-parse --verify` to verify SHA1s, which we previously did with `git rev-list`. Finally, `git rev-parse --verify` is more than twice as fast as `git show-ref`. --- morphlib/plugins/branch_and_merge_plugin.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'morphlib/plugins') diff --git a/morphlib/plugins/branch_and_merge_plugin.py b/morphlib/plugins/branch_and_merge_plugin.py index efaa8dfe..31b661b6 100644 --- a/morphlib/plugins/branch_and_merge_plugin.py +++ b/morphlib/plugins/branch_and_merge_plugin.py @@ -194,8 +194,8 @@ class BranchAndMergePlugin(cliapp.Plugin): def resolve_ref(self, repodir, ref): try: - return self.app.runcmd(['git', 'show-ref', ref], - cwd=repodir).split()[0] + return self.app.runcmd(['git', 'rev-parse', '--verify', ref], + cwd=repodir)[0:40] except: return None -- cgit v1.2.1