[webkit-dev] Identifier Conversion Tooling

Jonathan Bedard jbedard at apple.com
Fri Feb 12 14:58:20 PST 2021


Hello contributors,

As we move forward with the transition to GitHub, we are starting to adopt identifiers <https://trac.webkit.org/wiki/commit-identifiers> in tooling and infrastructure. This is going to take a few weeks, but you will start seeing links based on identifiers more frequently. During this transition period, not all tooling will work with identifiers, and it’s possible there are tools you rely on that aren’t in common use so will be slow in receiving support. To that end, I would like to share the tools available to translate between hashes, revisions and identifiers in WebKit, along with the Python libraries backing that tooling if you feel motivated to expedite the transition for a workflow that is particularly important to you.

Tools/Scripts/git-webkit find <ref> is the local script that can convert between revisions, hashes and identifiers. By default, it uses your local checkout, which means it may be restricted by your checkout’s configuration. For example, a pure Subversion checkout will be unable to convert hashes and a pure Git checkout will be unable to convert revisions, while a Git-Svn checkout will be able to translate all three formats.

If you want to be certain that a hash or revision can be converted to an identifier, running Tools/Scripts/git-webkit -C https://svn.webkit.org/repository/webkit <https://svn.webkit.org/repository/webkit> find <ref> or Tools/Scripts/git-webkit -C https://github.com/WebKit/Webkit <https://github.com/WebKit/Webkit> find <ref> are options. These command operate entirely on the network, instead of relying on your local checkout.

Both variations of git-webkit find are ultimately thin wrappers around webkitscmpy local.Scm and remote.Scm classes, so if you find yourself working with Python code, consider leveraging the APIs directly.

Lastly, along with redirecting to trac/GitHub, the site https://commits.webkit.org <https://commits.webkit.org/> has a JSON API which vends a representation of a commit which includes the hash, revision and identifier and looks like this: https://commits.webkit.org/234036@main/json <https://commits.webkit.org/234036@main/json>. commits.webkit.org <http://commits.webkit.org/> is a service we are dedicated to maintaining permanently, since it allows us to vend commit links with identifiers instead of hashes.

Jonathan
WebKit Continuous Integration
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20210212/4dcf84ec/attachment.htm>


More information about the webkit-dev mailing list