зеркало из https://github.com/microsoft/git.git
stripspace: allow -s/-c outside git repository
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@google.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
0d0ac3826a
Коммит
957da75802
|
@ -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);
|
||||
git_config(git_default_config, NULL);
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
'
|
||||
|
||||
test_expect_success '-c outside git repository' '
|
||||
printf "# foo\n" >expect &&
|
||||
printf "foo" | nongit git stripspace -c >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче