summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Jeff King <peff@peff.net>2017-02-14 01:08:09 -0500
committerLibravatar Junio C Hamano <gitster@pobox.com>2017-02-14 11:26:37 -0800
commit73fc7b6b9be495e2cabc546ed240efd77adaa8eb (patch)
tree55f960b2d80417ce46b26638e34db7b4f7ab1022
parentgrep: avoid resolving revision names in --no-index case (diff)
downloadtgif-73fc7b6b9be495e2cabc546ed240efd77adaa8eb.tar.xz
grep: do not diagnose misspelt revs with --no-index
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@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin/grep.c2
-rwxr-xr-xt/t7810-grep.sh5
2 files changed, 6 insertions, 1 deletions
diff --git a/builtin/grep.c b/builtin/grep.c
index c4c6325941..1454bef496 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 c051c7ee80..0ff9f6cae8 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");