from gbp.git.repository import GitRepositoryError
import gbp.log as log
+
+class GitError(Exception):
+ """Local exception."""
+ pass
+
class Git(GitRepository):
"""The Git class wrappered from GitRepository"""
def __init__(self, path):
def get_tag(self, tag_name):
"""Get tag info though tag name"""
- outs = self._git_getoutput('show', [
- '-s', '--pretty=format:###', tag_name])[0]
+ outs, errs, ret = self._git_inout('show',
+ ['-s', '--pretty=format:###',
+ tag_name])
+ if ret:
+ raise GitError('Error running git show -s '\
+ '--pretty=format:### %s: %s' % (tag_name, err))
tag = {}
msg = ''
msgstub = False
tag['email'] = line[line.index(' <')+2:line.index('>')]
msgstub = True
- tag['commitid'] = self.rev_parse('%s^{commit}' % tag_name)
+ try:
+ tag['commitid'] = self.rev_parse('%s^{commit}' % tag_name)
+ except GitRepositoryError, err:
+ raise GitError('Error running rev parse %s^{commit}: %s' % \
+ (tag_name, str(err)))
return tag
def branch_contains(self, cmitid):
- outs, ret = self._git_getoutput('branch', ['-a', '--contains', cmitid])
+ outs, _errs, ret = self._git_inout('branch',
+ ['-a', '--contains', cmitid])
if not ret:
branches = []
for branch in outs:
branches.append(branch)
print 'git branch contains %s' % branches
return branches
- else:
- return None
def _update_gitproject(localdir, gitpath=None):
"""Fetch latest code to local dir"""