summaryrefslogtreecommitdiff
path: root/morphlib/gitdir.py
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2014-11-05 15:01:57 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2014-11-05 18:34:47 +0000
commitb4a4c1a772d80e7fd764ecea878cfa86c07edd7e (patch)
tree6592dc7205c943d07ae3dd132e01bc03956c987f /morphlib/gitdir.py
parentac9e6787cd2b82bc37b9ba71d09d44aac71f85b1 (diff)
downloadmorph-b4a4c1a772d80e7fd764ecea878cfa86c07edd7e.tar.gz
Add GitDirectory.ref_exists() method
This allows checking if a ref exists without requiring the caller to use a try:, except: block.
Diffstat (limited to 'morphlib/gitdir.py')
-rw-r--r--morphlib/gitdir.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/morphlib/gitdir.py b/morphlib/gitdir.py
index 9fef4f1e..fd7f3808 100644
--- a/morphlib/gitdir.py
+++ b/morphlib/gitdir.py
@@ -537,6 +537,13 @@ class GitDirectory(object):
def resolve_ref_to_tree(self, ref):
return self._rev_parse('%s^{tree}' % ref)
+ def ref_exists(self, ref):
+ try:
+ self._rev_parse('%s^{commit}' % ref)
+ return True
+ except InvalidRefError:
+ return False
+
def _list_files_in_work_tree(self):
for dirpath, subdirs, filenames in os.walk(self.dirname):
if dirpath == self.dirname and '.git' in subdirs: