diff options
-rw-r--r-- | morphlib/cachedrepo.py | 9 | ||||
-rw-r--r-- | morphlib/gitdir.py | 6 |
2 files changed, 15 insertions, 0 deletions
diff --git a/morphlib/cachedrepo.py b/morphlib/cachedrepo.py index 0c0f5cb7..a630cc29 100644 --- a/morphlib/cachedrepo.py +++ b/morphlib/cachedrepo.py @@ -143,6 +143,15 @@ class CachedRepo(object): ''' return self._gitdir.branches_containing_sha1(ref) + def version_guess(self, ref): # pragma: no cover + '''Guess version number using `git describe --tags` + + Raises a gitdir.InvalidRefError if the ref is not found in the + repository. + + ''' + return self._gitdir.version_guess(ref) + def list_files(self, ref, recurse=True): # pragma: no cover '''Return filenames found in the tree pointed to by the given ref. diff --git a/morphlib/gitdir.py b/morphlib/gitdir.py index 1c286720..a6dd26a1 100644 --- a/morphlib/gitdir.py +++ b/morphlib/gitdir.py @@ -707,6 +707,12 @@ class GitDirectory(object): args = ['branch', '--contains', ref] return self._gitcmd_output_list(*args) + def version_guess(self, ref): # pragma: no cover + self._check_ref_exists(ref) + + args = ['describe', '--tags', '--always', ref] + return morphlib.git.gitcmd(self._runcmd, *args).strip() + def _update_ref(self, ref_args, message): args = ['update-ref'] # No test coverage, since while this functionality is useful, |