Catched git errors
authorEd Bartosh <eduard.bartosh@intel.com>
Mon, 11 Nov 2013 19:06:24 +0000 (21:06 +0200)
committerGerrit Code Review <gerrit2@otctools.fi.intel.com>
Thu, 14 Nov 2013 10:29:39 +0000 (12:29 +0200)
Used _git_inout instead of deprecated _git_getoutput.
Catched errors and raised local exception.

Change-Id: Ib7e844a0740e1215c18e8862dabedd0a5add5307
Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
common/git.py

index 7146919..da5244e 100644 (file)
@@ -30,6 +30,11 @@ from gbp.git.repository import GitRepository
 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):
@@ -38,8 +43,12 @@ class Git(GitRepository):
 
     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
@@ -59,12 +68,17 @@ class Git(GitRepository):
                     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:
@@ -77,8 +91,6 @@ class Git(GitRepository):
                     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"""