Merge branch 'nd/magic-pathspec-from-root'

When giving arguments without "--" disambiguation, object names
that come  earlier on the command line must not be interpretable as
pathspecs and pathspecs that come later on the command line must
not be interpretable as object names.  Tweak the disambiguation
rule so that ":/" (no other string before or after) is always
interpreted as a pathspec, to avoid having to say "git cmd -- :/".

* nd/magic-pathspec-from-root:
  grep: avoid accepting ambiguous revision
  Update :/abc ambiguity check
This commit is contained in:
Junio C Hamano
2013-01-30 08:52:53 -08:00
3 changed files with 25 additions and 3 deletions

View File

@ -66,7 +66,14 @@ int check_filename(const char *prefix, const char *arg)
const char *name;
struct stat st;
name = prefix ? prefix_filename(prefix, strlen(prefix), arg) : arg;
if (!prefixcmp(arg, ":/")) {
if (arg[2] == '\0') /* ":/" is root dir, always exists */
return 1;
name = arg + 2;
} else if (prefix)
name = prefix_filename(prefix, strlen(prefix), arg);
else
name = arg;
if (!lstat(name, &st))
return 1; /* file exists */
if (errno == ENOENT || errno == ENOTDIR)