diff options
author | Richard Maw <richard.maw@codethink.co.uk> | 2014-08-12 18:09:13 +0100 |
---|---|---|
committer | Richard Maw <richard.maw@codethink.co.uk> | 2014-08-12 18:09:13 +0100 |
commit | b2786c73c0f4d4b76f824e309598ce57065e30ab (patch) | |
tree | 1e18a61d37da2da8ba19ef39eae1265185a13e75 /morphlib/gitdir.py | |
parent | 6241d4466599406e3ad0a176c70fcbecdfdd1b64 (diff) | |
parent | 0f9c9e2ff3c9afe00735fa986200ac5fdcc8f79e (diff) | |
download | morph-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.py | 13 |
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) |