diff options
author | Tamas Pal <folti@balabit.com> | 2014-11-05 17:13:31 +0100 |
---|---|---|
committer | Tamas Pal <folti@balabit.com> | 2014-11-05 17:13:31 +0100 |
commit | 48f5476867d8316ee1af55e0e7cfacacbdf0ad68 (patch) | |
tree | 0bb09c673893797115f236836ce865a6710af358 /git/exc.py | |
parent | 27c577dfd5c7f0fc75cd10ed6606674b56b405bd (diff) | |
download | gitpython-48f5476867d8316ee1af55e0e7cfacacbdf0ad68.tar.gz |
GitRunCommand exception can store stdout output too.
Some git commands, like git merge outputs their problems onto stdout,
instead of stderr, which will be thrown away by the current setup. This
change allows the GitPython commands to store the stdout's value too,
in case of error.
Diffstat (limited to 'git/exc.py')
-rw-r--r-- | git/exc.py | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -17,14 +17,18 @@ class NoSuchPathError(OSError): class GitCommandError(Exception): """ Thrown if execution of the git command fails with non-zero status code. """ - def __init__(self, command, status, stderr=None): + def __init__(self, command, status, stderr=None, stdout=None): self.stderr = stderr + self.stdout = stdout self.status = status self.command = command def __str__(self): - return ("'%s' returned exit status %i: %s" % - (' '.join(str(i) for i in self.command), self.status, self.stderr)) + ret = "'%s' returned exit status %i: %s" % \ + (' '.join(str(i) for i in self.command), self.status, self.stderr) + if self.stdout is not None: + ret += "\nstdout: %s" % self.stdout + return ret class CheckoutError( Exception ): |