summaryrefslogtreecommitdiff
path: root/git/cmd.py
diff options
context:
space:
mode:
Diffstat (limited to 'git/cmd.py')
-rw-r--r--git/cmd.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/git/cmd.py b/git/cmd.py
index 3fa24fff..d2794c02 100644
--- a/git/cmd.py
+++ b/git/cmd.py
@@ -315,8 +315,16 @@ class Git(LazyMixin):
:warn: may deadlock if output or error pipes are used and not handled separately.
:raise GitCommandError: if the return status is not 0"""
status = self.proc.wait()
+
+ def read_all_from_possibly_closed_stream(stream):
+ try:
+ return stream.read()
+ except ValueError:
+ return ''
+
if status != 0:
- raise GitCommandError(self.args, status, self.proc.stderr.read())
+ errstr = read_all_from_possibly_closed_stream(self.proc.stderr.read)
+ raise GitCommandError(self.args, status, errstr)
# END status handling
return status
# END auto interrupt