Hi Phillip, On Thu, 18 May 2017, Phillip Wood wrote: > diff --git a/sequencer.c b/sequencer.c > index f8bc18badf1a3fb1b39656501c5a316e229968d2..311728a145dfc66e230334221a2610468239932d 100644 > --- a/sequencer.c > +++ b/sequencer.c > @@ -1914,6 +1914,8 @@ static int apply_autostash(struct replay_opts *opts) > strbuf_trim(&stash_sha1); > > child.git_cmd = 1; > + child.no_stdout = 1; > + child.no_stderr = 1; > argv_array_push(&child.args, "stash"); > argv_array_push(&child.args, "apply"); > argv_array_push(&child.args, stash_sha1.buf); If I remember correctly, then the shell version prints the output in case of an error. We already imitated that behavior in `git commit` (https://github.com/git-for-windows/git/blob/v2.13.0.windows.1/sequencer.c#L674-L684): /* 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); I think that would be the appropriate approach here, too. Ciao, Johannes P.S.: it may be a very good idea to accompany this patch (as well as the previous one) by a patch to the test suite to verify that the fixed code does not regress.