Update :/abc ambiguity check
commit4db86e8b6e8002b3113341ad742bf2fd94d4df50
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Mon, 21 Jan 2013 13:00:48 +0000 (21 20:00 +0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 22 Jan 2013 00:57:24 +0000 (21 16:57 -0800)
tree0eb5b1c2082f9ba46756bb6cb9b26efe588dfd98
parentfe73786b482f11e7a37a269c95d222a384fc5a39
Update :/abc ambiguity check

:/abc may mean two things:

- as a revision, it means the revision that has "abc" in commit
  message.

- as a pathpec, it means "abc" from root.

Currently we see ":/abc" as a rev (most of the time), but never see it
as a pathspec even if "abc" exists and "git log :/abc" will gladly
take ":/abc" as rev even it's ambiguous. This patch makes it:

- ambiguous when "abc" exists on worktree
- a rev if abc does not exist on worktree
- a path if abc is not found in any commits (although better use
  "--" to avoid ambiguation because searching through commit DAG is
  expensive)

A plus from this patch is, because ":/" never matches anything as a
rev, it is never considered a valid rev and because root directory
always exists, ":/" is always unambiguously seen as a pathspec.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
setup.c
t/t4208-log-magic-pathspec.sh