diff options
author | Matthieu Moy <Matthieu.Moy@imag.fr> | 2013-09-06 21:43:07 +0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-09-07 00:33:18 +0400 |
commit | 2556b9962e7c0353d562b7bf70eed11d8f29d0b0 (patch) | |
tree | 7f1e9ca52eac054c468bd7ab54e8be32940907a5 /t/t7508-status.sh | |
parent | 3ba7407b8b7b7a75f720641327207d6cfdb163a2 (diff) |
status: disable display of '#' comment prefix by default
Historically, "git status" needed to prefix each output line with '#' so
that the output could be added as comment to the commit message. This
prefix comment has no real purpose when "git status" is ran from the
command-line, and this may distract users from the real content.
Disable this prefix comment by default, and make it re-activable for
users needing backward compatibility with status.displayCommentPrefix.
Obviously, "git commit" ignores status.displayCommentPrefix and keeps the
comment unconditionnaly when writing to COMMIT_EDITMSG (but not when
writing to stdout for an error message or with --dry-run).
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t7508-status.sh')
-rwxr-xr-x | t/t7508-status.sh | 63 |
1 files changed, 58 insertions, 5 deletions
diff --git a/t/t7508-status.sh b/t/t7508-status.sh index ac3d0fe445..8d28280235 100755 --- a/t/t7508-status.sh +++ b/t/t7508-status.sh @@ -7,6 +7,10 @@ test_description='git status' . ./test-lib.sh +test_expect_success 'use status.displayCommentPrefix by default ' ' + git config --global status.displayCommentPrefix true +' + test_expect_success 'status -h in broken repository' ' git config --global advice.statusuoption false && mkdir broken && @@ -60,8 +64,12 @@ test_expect_success 'status (1)' ' test_i18ngrep "use \"git rm --cached <file>\.\.\.\" to unstage" output ' +strip_comments () { + sed "s/^\# //; s/^\#$//; s/^#\t/\t/" <"$1" >"$1".tmp && + rm "$1" && mv "$1".tmp "$1" +} + test_expect_success 'status --column' ' - COLUMNS=50 git status --column="column dense" >output && cat >expect <<\EOF && # On branch master # Changes to be committed: @@ -78,9 +86,16 @@ test_expect_success 'status --column' ' # Untracked files: # (use "git add <file>..." to include in what will be committed) # -# dir1/untracked dir2/untracked untracked -# dir2/modified output +# dir1/untracked dir2/untracked output +# dir2/modified expect untracked EOF + COLUMNS=50 git -c status.displayCommentPrefix=true status --column="column dense" >output && + test_i18ncmp expect output +' + +test_expect_success 'status --column status.displayCommentPrefix=false' ' + strip_comments expect && + COLUMNS=49 git -c status.displayCommentPrefix=false status --column="column dense" >output && test_i18ncmp expect output ' @@ -108,11 +123,39 @@ cat >expect <<\EOF # untracked EOF -test_expect_success 'status (2)' ' - git status >output && +test_expect_success 'status with status.displayCommentPrefix=true' ' + git -c status.displayCommentPrefix=true status >output && + test_i18ncmp expect output +' + +test_expect_success 'status with status.displayCommentPrefix=false' ' + strip_comments expect && + git -c status.displayCommentPrefix=false status >output && test_i18ncmp expect output ' +test_expect_success 'setup fake editor' ' + cat >.git/editor <<-\EOF && + #! /bin/sh + cp "$1" output +EOF + chmod 755 .git/editor +' + +commit_template_commented () { + ( + EDITOR=.git/editor && + export EDITOR && + # Fails due to empty message + test_must_fail git commit + ) && + ! grep '^[^#]' output +} + +test_expect_success 'commit ignores status.displayCommentPrefix=false in COMMIT_EDITMSG' ' + commit_template_commented +' + cat >expect <<\EOF # On branch master # Changes to be committed: @@ -872,6 +915,16 @@ test_expect_success 'status submodule summary' ' test_i18ncmp expect output ' +test_expect_success 'status submodule summary with status.displayCommentPrefix=false' ' + strip_comments expect && + git -c status.displayCommentPrefix=false status >output && + test_i18ncmp expect output +' + +test_expect_success 'commit with submodule summary ignores status.displayCommentPrefix' ' + commit_template_commented +' + cat >expect <<EOF M dir1/modified A dir2/added |