summaryrefslogtreecommitdiff
path: root/git/cmd.py
diff options
context:
space:
mode:
authorSebastian Thiel <byronimo@gmail.com>2012-10-21 08:13:14 -0700
committerSebastian Thiel <byronimo@gmail.com>2012-10-21 08:13:14 -0700
commit0e90a8f61cf8c8eb346ad6dc0460cc00417733c7 (patch)
tree0bb12d8bd5e7c7e42ca1dfb0142db97677f2d90d /git/cmd.py
parent011d89d3187f4436383f7e7159c105b96a83bb80 (diff)
parenta300e32dc8d965c8552a0cfdfb5f8734347b582e (diff)
downloadgitpython-0e90a8f61cf8c8eb346ad6dc0460cc00417733c7.tar.gz
Merge pull request #79 from znerol/feature/master/cmd-output-strip
Add an output_strip kwarg to Git.execute
Diffstat (limited to 'git/cmd.py')
-rw-r--r--git/cmd.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/git/cmd.py b/git/cmd.py
index 46a350e8..7abfb611 100644
--- a/git/cmd.py
+++ b/git/cmd.py
@@ -19,7 +19,7 @@ from subprocess import (
execute_kwargs = ('istream', 'with_keep_cwd', 'with_extended_output',
'with_exceptions', 'as_process',
- 'output_stream' )
+ 'output_stream', 'output_strip' )
__all__ = ('Git', )
@@ -267,6 +267,7 @@ class Git(LazyMixin):
with_exceptions=True,
as_process=False,
output_stream=None,
+ output_strip=True,
**subprocess_kwargs
):
"""Handles executing the command on the shell and consumes and returns
@@ -309,6 +310,11 @@ class Git(LazyMixin):
This merely is a workaround as data will be copied from the
output pipe to the given output stream directly.
+ :param output_strip:
+ Strip the last line of the output if it is empty (default). Stripping should
+ be disabled whenever it is important that the output is not modified in any
+ way. For example when retrieving patch files using git-diff.
+
:param subprocess_kwargs:
Keyword arguments to be passed to subprocess.Popen. Please note that
some of the valid kwargs are already set by this method, the ones you
@@ -359,7 +365,7 @@ class Git(LazyMixin):
if output_stream is None:
stdout_value, stderr_value = proc.communicate()
# strip trailing "\n"
- if stdout_value.endswith("\n"):
+ if stdout_value.endswith("\n") and output_strip:
stdout_value = stdout_value[:-1]
if stderr_value.endswith("\n"):
stderr_value = stderr_value[:-1]