Revision resolution: precedence rules
In many places, the Gitaly clients refer to commits by "revision", i.e., tag, GitLab branch or hexadecimal id. In some cases, a message called
commit_id can actually be any revision.
Our resolver function,
gitlab_revision_changeset, performs its lookups in the order that was convenient for implementation, but it may get precedence rules wrong. This is related to its ability to switch to the unfiltered repository automatically, which is done at the end, hence giving commit ids the lowest precedence.
The new Gitaly comparison tests should allow us to settle this down efficiently.