Hi Jonathan, On Mon, 17 Dec 2018, Jonathan Nieder wrote: > v2.11.0-rc3~3^2~1 (stripspace: respect repository config, 2016-11-21) > improved stripspace --strip-comments / --comentlines by teaching them > to read repository config, but it went a little too far: when running > stripspace outside any repository, the result is > > $ git stripspace --strip-comments <test-input > fatal: not a git repository (or any parent up to mount point /tmp) > > That makes experimenting with the stripspace command unnecessarily > fussy. Fix it by discovering the git directory gently, as intended > all along. > > Reported-by: Han-Wen Nienhuys <hanwen@xxxxxxxxxx> > Signed-off-by: Jonathan Nieder <jrnieder@xxxxxxxxx> > --- ACK! > builtin/stripspace.c | 3 ++- > t/t0030-stripspace.sh | 12 +++++++++--- > 2 files changed, 11 insertions(+), 4 deletions(-) > > diff --git a/builtin/stripspace.c b/builtin/stripspace.c > index bdf0328869..be33eb83c1 100644 > --- a/builtin/stripspace.c > +++ b/builtin/stripspace.c > @@ -30,6 +30,7 @@ int cmd_stripspace(int argc, const char **argv, const char *prefix) > { > struct strbuf buf = STRBUF_INIT; > enum stripspace_mode mode = STRIP_DEFAULT; > + int nongit; > > const struct option options[] = { > OPT_CMDMODE('s', "strip-comments", &mode, > @@ -46,7 +47,7 @@ int cmd_stripspace(int argc, const char **argv, const char *prefix) > usage_with_options(stripspace_usage, options); > > if (mode == STRIP_COMMENTS || mode == COMMENT_LINES) { > - setup_git_directory_gently(NULL); > + setup_git_directory_gently(&nongit); What a fool I was to believe that _gently() was always gentle... > git_config(git_default_config, NULL); > } > > diff --git a/t/t0030-stripspace.sh b/t/t0030-stripspace.sh > index 5ce47e8af5..0c24a0f9a3 100755 > --- a/t/t0030-stripspace.sh > +++ b/t/t0030-stripspace.sh > @@ -430,9 +430,15 @@ test_expect_success '-c with changed comment char' ' > test_expect_success '-c with comment char defined in .git/config' ' > test_config core.commentchar = && > printf "= foo\n" >expect && > - printf "foo" | ( > - mkdir sub && cd sub && git stripspace -c > - ) >actual && > + rm -fr sub && > + mkdir sub && > + printf "foo" | git -C sub stripspace -c >actual && > + test_cmp expect actual > +' Sneaky. But I like it. Thanks, Dscho > + > +test_expect_success '-c outside git repository' ' > + printf "# foo\n" >expect && > + printf "foo" | nongit git stripspace -c >actual && > test_cmp expect actual > ' > > -- > 2.20.0.405.gbc1bbc6f85 > >