Re: [PATCH v2 05/34] sequencer (rebase -i): learn about the 'verbose' mode
From: Junio C Hamano <hidden>
Date: 2017-01-07 21:49:06
Johannes Schindelin [off-list ref] writes:
Hi Junio, On Tue, 13 Dec 2016, Junio C Hamano wrote:quoted
Johannes Schindelin [off-list ref] writes:quoted
@@ -1493,9 +1498,26 @@ static int pick_commits(struct todo_list *todo_list, struct replay_opts *opts) } if (is_rebase_i(opts)) { + struct strbuf buf = STRBUF_INIT; + /* Stopped in the middle, as planned? */ if (todo_list->current < todo_list->nr) return 0; + + if (opts->verbose) { + const char *argv[] = { + "diff-tree", "--stat", NULL, NULL + }; + + if (!read_oneliner(&buf, rebase_path_orig_head(), 0)) + return error(_("could not read '%s'"), + rebase_path_orig_head()); + strbuf_addstr(&buf, "..HEAD"); + argv[2] = buf.buf; + run_command_v_opt(argv, RUN_GIT_CMD); + strbuf_reset(&buf); + } + strbuf_release(&buf); }It's a bit curious that the previous step avoided running a separate process and instead did "diff-tree -p" all in C, but this one does not.I guess my only defence is that I tried to be a little lazy.
I actually was alluding to going the other way around, spawning "diff-tree -p" in the other codepath like this one does.