stripspace: respect repository config

The way "git stripspace" reads the configuration was not quite kosher, in that the code forgot to probe for a possibly existing repository (note: stripspace is designed to be usable outside the repository as well). It read .git/config only when it was run from the top-level of the working tree by accident. A recent change b9605bc4f2 ("config: only read .git/config from configured repos", 2016-09-12) stopped reading the repository-local configuration file ".git/config" unless the repository discovery process is done, so that .git/config is never read even when run from the top-level, exposing the old bug more. When rebasing interactively with a commentChar defined in the current repository's config, the help text at the bottom of the edit script potentially used an incorrect comment character. This was not only funny-looking, but also resulted in tons of warnings like this one: Warning: the command isn't recognized in the following line - # Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Johannes Schindelin committed Nov 21, 2016 at 15:18 UTC 92068ae8bf5711b683a0dbeef75d76f56ead5590
2 files changed +4 -2
builtin/stripspace.c
+3 -1
@@ -44,8 +44,10 @@ int cmd_stripspace(int argc, const char **argv, const char *prefix)
44 if (argc)
45 usage_with_options(stripspace_usage, options);
46
47 - if (mode == STRIP_COMMENTS || mode == COMMENT_LINES)
47 + if (mode == STRIP_COMMENTS || mode == COMMENT_LINES) {
48 + setup_git_directory_gently(NULL);
49 git_config(git_default_config, NULL);
50 + }
51
52 if (strbuf_read(&buf, 0, 1024) < 0)
53 die_errno("could not read the input");
t/t0030-stripspace.sh
+1 -1
@@ -432,7 +432,7 @@ test_expect_success '-c with changed comment char' '
432 test_cmp expect actual
433 '
434
435 -test_expect_failure '-c with comment char defined in .git/config' '
435 +test_expect_success '-c with comment char defined in .git/config' '
436 test_config core.commentchar = &&
437 printf "= foo\n" >expect &&
438 printf "foo" | (