diff options
author | Matthieu Moy <Matthieu.Moy@imag.fr> | 2012-06-18 20:18:21 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-06-18 15:21:42 -0700 |
commit | 023e37c37780d6a56f2870a979c8eb3a9ee9a44d (patch) | |
tree | 74075e3fc2bf0cf4ca3997d1a745948a82c13e89 /builtin/grep.c | |
parent | d7236c4395a0c8742871a72d920f789b5bd4abf6 (diff) | |
download | git-023e37c37780d6a56f2870a979c8eb3a9ee9a44d.tar.gz git-023e37c37780d6a56f2870a979c8eb3a9ee9a44d.tar.xz |
verify_filename(): ask the caller to chose the kind of diagnosis
verify_filename() can be called in two different contexts. Either we
just tried to interpret a string as an object name, and it fails, so
we try looking for a working tree file (i.e. we finished looking at
revs that come earlier on the command line, and the next argument
must be a pathname), or we _know_ that we are looking for a
pathname, and shouldn't even try interpreting the string as an
object name.
For example, with this change, we get:
$ git log COPYING HEAD:inexistant
fatal: HEAD:inexistant: no such path in the working tree.
Use '-- <path>...' to specify paths that do not exist locally.
$ git log HEAD:inexistant
fatal: Path 'inexistant' does not exist in 'HEAD'
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/grep.c')
-rw-r--r-- | builtin/grep.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/builtin/grep.c b/builtin/grep.c index 9ce064ac1..d56555651 100644 --- a/builtin/grep.c +++ b/builtin/grep.c @@ -1045,7 +1045,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]); + verify_filename(prefix, argv[j], j == i); } paths = get_pathspec(prefix, argv + i); |