Monotonic Commit Identifiers
Of great interest to Apple?s engineers has been retaining some kind
of ordered tag we can use to refer to commits to make defending CI
and bisection easier. We?ve developed a scheme for this that assigns
commits an ordered identifier per-branch, outlined in?
https://trac.webkit.org/wiki/commit-identifiers, designed to be used
alongside git hashes. These identifiers can be used in our current
Subversion repository, and we would like to start using them before
the project has transitions to git.


Have you seen how this was handled in LLVM?
https://releases.llvm.org/9.0.0/docs/Proposals/GitHubMove.html#on-managing-revision-numbers-with-git

We looked at LLVM and Chromium specifically, our approach is pretty similar to LLVM’s, but resets the canonical identifiers when branching from the default branch.


Would you also consider preventing merge commits in order to keep a
clean mainline branch?

Definitely going to be preventing merge commits, they end up breaking a lot, I neglected to mention them because I often (perhaps out of wishful thinking) forget they exist.

Jonathan