diff options
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) |