summaryrefslogtreecommitdiff
path: root/gbp/git
diff options
context:
space:
mode:
Diffstat (limited to 'gbp/git')
-rw-r--r--gbp/git/repository.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/gbp/git/repository.py b/gbp/git/repository.py
index d4f9460..5d33fc7 100644
--- a/gbp/git/repository.py
+++ b/gbp/git/repository.py
@@ -602,17 +602,21 @@ class GitRepository(object):
# an empty repo has no branches:
return False if self.branch else True
- def rev_parse(self, name):
+ def rev_parse(self, name, short=None):
"""
Find the SHA1 of a given name
@param name: the name to look for
@type name: C{str}
+ @param short: try to abbreviate SHA1 to given length
+ @type short: C{int}
@return: the name's sha1
@rtype: C{str}
"""
- args = [ "--quiet", "--verify", name ]
- sha, ret = self._git_getoutput('rev-parse', args)
+ args = GitArgs("--quiet", "--verify")
+ args.add_cond(short, '--short=%s' % short)
+ args.add(name)
+ sha, ret = self._git_getoutput('rev-parse', args.args)
if ret:
raise GitRepositoryError("revision '%s' not found" % name)
return sha[0].strip()