summaryrefslogtreecommitdiff
path: root/morphlib/gitdir.py
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2014-08-12 18:09:13 +0100
committerRichard Maw <richard.maw@codethink.co.uk>2014-08-12 18:09:13 +0100
commitb2786c73c0f4d4b76f824e309598ce57065e30ab (patch)
tree1e18a61d37da2da8ba19ef39eae1265185a13e75 /morphlib/gitdir.py
parent6241d4466599406e3ad0a176c70fcbecdfdd1b64 (diff)
parent0f9c9e2ff3c9afe00735fa986200ac5fdcc8f79e (diff)
downloadmorph-b2786c73c0f4d4b76f824e309598ce57065e30ab.tar.gz
Merge branch 'baserock/richardmaw/misc-fixups'baserock/richardmaw/tmp
Reviewed-by: Daniel Silverstone Reviewed-by: Pedro Alvarez
Diffstat (limited to 'morphlib/gitdir.py')
-rw-r--r--morphlib/gitdir.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/morphlib/gitdir.py b/morphlib/gitdir.py
index 3966a0f0..fea26c2e 100644
--- a/morphlib/gitdir.py
+++ b/morphlib/gitdir.py
@@ -495,8 +495,17 @@ class GitDirectory(object):
raise InvalidRefError(self, ref)
def disambiguate_ref(self, ref): # pragma: no cover
- out = self._runcmd(['git', 'rev-parse', '--symbolic-full-name', ref])
- return out.strip()
+ try:
+ out = self._runcmd(['git', 'rev-parse', '--symbolic-full-name',
+ ref])
+ return out.strip()
+ except cliapp.AppException: # ref not found
+ if ref.startswith('refs/heads/'):
+ return ref
+ elif ref.startswith('heads/'):
+ return 'refs/' + ref
+ else:
+ return 'refs/heads/' + ref
def resolve_ref_to_commit(self, ref):
return self._rev_parse('%s^{commit}' % ref)