diff options
author | Philippe Blain <levraiphilippeblain@gmail.com> | 2020-01-30 13:37:28 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-01-30 10:15:58 -0800 |
commit | c56c48dd0750dc7759f5e9a33cd4a01d6162b06e (patch) | |
tree | 87437a6c07061fa41004364aaff82797b457613e /builtin/grep.c | |
parent | .mailmap: fix erroneous authorship for Johannes Schindelin (diff) | |
download | tgif-c56c48dd0750dc7759f5e9a33cd4a01d6162b06e.tar.xz |
grep: ignore --recurse-submodules if --no-index is given
Since grep learned to recurse into submodules in 0281e487fd
(grep: optionally recurse into submodules, 2016-12-16),
using --recurse-submodules along with --no-index makes Git
die().
This is unfortunate because if submodule.recurse is set in a user's
~/.gitconfig, invoking `git grep --no-index` either inside or outside
a Git repository results in
fatal: option not supported with --recurse-submodules
Let's allow using these options together, so that setting submodule.recurse
globally does not prevent using `git grep --no-index`.
Using `--recurse-submodules` should not have any effect if `--no-index`
is used inside a repository, as Git will recurse into the checked out
submodule directories just like into regular directories.
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/grep.c')
-rw-r--r-- | builtin/grep.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/builtin/grep.c b/builtin/grep.c index 50ce8d9461..ae2d5bbafc 100644 --- a/builtin/grep.c +++ b/builtin/grep.c @@ -958,6 +958,9 @@ int cmd_grep(int argc, const char **argv, const char *prefix) /* die the same way as if we did it at the beginning */ setup_git_directory(); } + /* Ignore --recurse-submodules if --no-index is given or implied */ + if (!use_index) + recurse_submodules = 0; /* * skip a -- separator; we know it cannot be @@ -1115,8 +1118,8 @@ int cmd_grep(int argc, const char **argv, const char *prefix) } } - if (recurse_submodules && (!use_index || untracked)) - die(_("option not supported with --recurse-submodules")); + if (recurse_submodules && untracked) + die(_("--untracked not supported with --recurse-submodules")); if (!show_in_pager && !opt.status_only) setup_pager(); |