Page MenuHomePhabricator

Improve ambiguity when resolving commits that appear in multiple repositories
Open, LowPublic

Description

Currently, phabricator/ commit hashes on this install do not resolve correctly in Remarkup. That is, if you type 3493d9d5138e, it doesn't link.

This is because the hash is ambiguous: it exists in both rP and rSTAGING, so the hash could mean either rP3493d9d5138e or rSTAGING3493d9d5138e.

Previously, this hasn't mattered because we didn't discover commits in rSTAGING, since they were not reachable from any branch head. However:

  • @diamondman has pushed some personal branch to rSTAGING (rSTAGING42c977a2bbab, circleci_official_with_branchvar), making all prior commits discoverable.
  • The fact that commits reachable from tags aren't discovered is a bug in the first place (T6878).

This may be made obsolete by T8092, but if it isn't (or until then) it would be nice to possibly mark a repository to be ignored when disambiguating commits, so that hashes ignore it if there were un-marked repositories available during hash resolution.

Event Timeline

epriestley edited projects, added Diffusion (v3); removed Diffusion.

Another approach that might make sense would be to highlight the hash and then show a hovercard which lists the commits with that hash. Of course this wouldn't scale too far but it should handle the case where 2 or 3 commits have the same hash.

With T13001, the commit page itself now gives you disambiguation options if the commits are in the same repository. This is a narrower case than ambiguous commits across multiple repositories, but related if we did pursue something like hovercards or a multi-repository disambiguation page.