aboutsummaryrefslogtreecommitdiffstats
path: root/git_deps
diff options
context:
space:
mode:
authorAdam Spiers <git@adamspiers.org>2016-06-30 04:41:02 +0100
committerAdam Spiers <git@adamspiers.org>2018-05-15 13:42:16 +0100
commit4a5d64215075502e79d2a0b35c3a18a10d68c8fd (patch)
treece3094738b7de5199e922542fbb2d9768fecdce1 /git_deps
parent456071c30c291db122fb7d8cfb407a5d16911b5c (diff)
downloadgit-deps-4a5d64215075502e79d2a0b35c3a18a10d68c8fd.tar.gz
extract GitUtils.ref_commit() function
Diffstat (limited to 'git_deps')
-rw-r--r--git_deps/detector.py8
-rw-r--r--git_deps/gitutils.py15
2 files changed, 16 insertions, 7 deletions
diff --git a/git_deps/detector.py b/git_deps/detector.py
index beeb221..3f51f0e 100644
--- a/git_deps/detector.py
+++ b/git_deps/detector.py
@@ -80,13 +80,7 @@ class DependencyDetector(object):
if rev in self.commits:
return self.commits[rev]
- try:
- commit = self.repo.revparse_single(rev)
- if isinstance(commit, pygit2.Tag):
- commit = commit.get_object()
- self.commits[rev] = commit
- except (KeyError, ValueError):
- raise InvalidCommitish(rev)
+ self.commits[rev] = GitUtils.ref_commit(self.repo, rev)
return self.commits[rev]
diff --git a/git_deps/gitutils.py b/git_deps/gitutils.py
index d5981d2..f349f44 100644
--- a/git_deps/gitutils.py
+++ b/git_deps/gitutils.py
@@ -1,6 +1,8 @@
+import pygit2
import re
import subprocess
+from git_deps.errors import InvalidCommitish
class GitUtils(object):
@classmethod
@@ -74,3 +76,16 @@ class GitUtils(object):
def rev_list(cls, rev_range):
cmd = ['git', 'rev-list', rev_range]
return subprocess.check_output(cmd).strip().split('\n')
+
+ @classmethod
+ def ref_commit(cls, repo, rev):
+ try:
+ commit = repo.revparse_single(rev)
+ except (KeyError, ValueError):
+ raise InvalidCommitish(rev)
+
+ if isinstance(commit, pygit2.Tag):
+ commit = commit.get_object()
+
+ return commit
+