Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
sequencer (rebase -i): show only failed `git commit`'s output
author
Johannes Schindelin
<johannes.schindelin@gmx.de>
Mon, 2 Jan 2017 15:35:34 +0000
(16:35 +0100)
committer
Junio C Hamano
<gitster@pobox.com>
Tue, 17 Jan 2017 22:06:01 +0000
(14:06 -0800)
This is the behavior of the shell script version of the interactive
rebase, by using the `output` function defined in `git-rebase.sh`.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
sequencer.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
07d968e
)
diff --git
a/sequencer.c
b/sequencer.c
index 6d5d6c3e9bb0463537f06c0f14d905960d51f686..84534ee05794fb2b99942aa9c33362170ca00c67 100644
(file)
--- a/
sequencer.c
+++ b/
sequencer.c
@@
-610,6
+610,11
@@
static int run_git_commit(const char *defmsg, struct replay_opts *opts,
cmd.git_cmd = 1;
if (is_rebase_i(opts)) {
cmd.git_cmd = 1;
if (is_rebase_i(opts)) {
+ if (!edit) {
+ cmd.stdout_to_stderr = 1;
+ cmd.err = -1;
+ }
+
if (read_env_script(&cmd.env_array)) {
const char *gpg_opt = gpg_sign_opt_quoted(opts);
if (read_env_script(&cmd.env_array)) {
const char *gpg_opt = gpg_sign_opt_quoted(opts);
@@
-644,6
+649,19
@@
static int run_git_commit(const char *defmsg, struct replay_opts *opts,
if (opts->allow_empty_message)
argv_array_push(&cmd.args, "--allow-empty-message");
if (opts->allow_empty_message)
argv_array_push(&cmd.args, "--allow-empty-message");
+ if (cmd.err == -1) {
+ /* hide stderr on success */
+ struct strbuf buf = STRBUF_INIT;
+ int rc = pipe_command(&cmd,
+ NULL, 0,
+ /* stdout is already redirected */
+ NULL, 0,
+ &buf, 0);
+ if (rc)
+ fputs(buf.buf, stderr);
+ strbuf_release(&buf);
+ return rc;
+ }
return run_command(&cmd);
}
return run_command(&cmd);
}