[PATCH 3/5] status: show "-v" diff even for initial commit
- From
Jeff King <peff@peff.net>
- Date
- Nov 12, 2008, 08:23 UTC
- Message-ID
- <20081112082337.GC3751@coredump.intra.peff.net>
- In-Reply-To
- <20081112081609.GA3720@coredump.intra.peff.net>
Since we can use the same "diff against empty tree" trick as we do for the non-initial case, it is trivial to make this work.
Signed-off-by: Jeff King <peff@peff.net> --- I ran across this while writing my test cases for the later patches. I don't see any reason why it shouldn't behave this way, and I suspect the reason was just that the original author saw how we did "wt_status_print_initial" and didn't want to have to do the equivalent for generating diff output.
t/t7507-commit-verbose.sh | 29 +++++++++++++++++++++++++++++ wt-status.c | 5 +++-- 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100755 t/t7507-commit-verbose.sh
diff --git a/t/t7507-commit-verbose.sh b/t/t7507-commit-verbose.sh new file mode 100755 index 0000000..94b12e9 --- /dev/null +++ b/t/t7507-commit-verbose.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +test_description='verbose commit template' +. ./test-lib.sh + +cat >check-for-diff <<EOF +#!$SHELL_PATH +exec grep '^diff --git' "\$1" +EOF +chmod +x check-for-diff +test_set_editor "$PWD/check-for-diff" + +cat >message <<'EOF' +subject + +body +EOF + +test_expect_success 'setup' ' + echo content >file && + git add file && + git commit -F message +' + +test_expect_success 'initial commit shows verbose diff' ' + git commit --amend -v +' + +test_done diff --git a/wt-status.c b/wt-status.c index c78588e..3edae43 100644 --- a/wt-status.c +++ b/wt-status.c @@ -279,7 +279,8 @@ static void wt_status_print_verbose(struct wt_status *s) struct rev_info rev; init_revisions(&rev, NULL); - setup_revisions(0, NULL, &rev, s->reference); + setup_revisions(0, NULL, &rev, + s->is_initial ? EMPTY_TREE_SHA1_HEX : s->reference); rev.diffopt.output_format |= DIFF_FORMAT_PATCH; rev.diffopt.detect_rename = 1; DIFF_OPT_SET(&rev.diffopt, ALLOW_TEXTCONV); @@ -352,7 +353,7 @@ void wt_status_print(struct wt_status *s) else if (s->commitable) fprintf(s->fp, "# Untracked files not listed (use -u option to show untracked files)\n"); - if (s->verbose && !s->is_initial) + if (s->verbose) wt_status_print_verbose(s); if (!s->commitable) { if (s->amend)
-- 1.6.0.4.883.g4593ee.dirty