Nguyễn Thái Ngọc Duy  <> 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
More majordomo info at

Reply via email to