On 02/14/2017 10:04 AM, Jeff King wrote:
On Tue, Feb 14, 2017 at 08:53:04AM -0800, Jonathan Tan wrote:
On 02/13/2017 10:07 PM, Jeff King wrote:
diff --git a/builtin/grep.c b/builtin/grep.c
index e83b33bda..c4c632594 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -1176,6 +1176,12 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
break;
}
+ if (!use_index) {
+ if (seen_dashdash)
+ die(_("--no-index cannot be used with revs"));
There is a subsequent check that prints "--no-index or --untracked cannot be
used with revs." - maybe we should just expand this part to incorporate that
case. (That is, write `if (!use_index || untracked)` instead of `if
(!use_index)`.) This also allows us to preserve the error message, which
might be useful for someone using a translated version of Git.
I wasn't sure if we wanted to treat "untracked" in the same way.
Certainly we can catch the error here for the seen_dashdash case, but is
it also the case that:
echo content >master
git grep --untracked pattern master
should treat "master" as a path?
-Peff
It is already the case that it cannot be treated as a rev:
$ git grep --untracked pattern master
fatal: --no-index or --untracked cannot be used with revs.
So I think it would be better if it was treated as a path, for
consistency with --no-index. I'm OK either way, though.