If we are using --no-index, then our arguments cannot be revs in the first place. Not only is it pointless to diagnose them, but if we are not in a repository, we should not be trying to resolve any names. Signed-off-by: Jeff King <peff@xxxxxxxx> --- builtin/grep.c | 2 +- t/t7810-grep.sh | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/builtin/grep.c b/builtin/grep.c index c4c632594..1454bef49 100644 --- a/builtin/grep.c +++ b/builtin/grep.c @@ -1201,7 +1201,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix) if (!seen_dashdash) { int j; for (j = i; j < argc; j++) - verify_filename(prefix, argv[j], j == i); + verify_filename(prefix, argv[j], j == i && use_index); } parse_pathspec(&pathspec, 0, diff --git a/t/t7810-grep.sh b/t/t7810-grep.sh index c051c7ee8..0ff9f6cae 100755 --- a/t/t7810-grep.sh +++ b/t/t7810-grep.sh @@ -1043,6 +1043,11 @@ test_expect_success 'grep --no-index prefers paths to revs' ' test_cmp expect actual ' +test_expect_success 'grep --no-index does not "diagnose" revs' ' + test_must_fail git grep --no-index o :1:hello.c 2>err && + test_i18ngrep ! -i "did you mean" err +' + cat >expected <<EOF hello.c:int main(int argc, const char **argv) hello.c: printf("Hello world.\n"); -- 2.12.0.rc1.471.ga79ec8999