Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> writes: > :/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 The "any commits" above sounds very scary. Are you really going to check against all the commits? > "--" 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. That is the primary plus in practice, I think, and it is a big one. When naming a directory that belongs to a different subdirectory hierarchy, typing ":/that/directory/name" is not any easier than having your shell help you complete "../../that/directory/name"; I suspect nobody uses the relative-to-root notation to name anything but the root in real life. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html