One of GitHub’s niche features is the ability to access a Git repository on GitHub using Subversion clients. Last year we re-architected a large portion of the Subversion bridge to work with our changing infrastructure.
The Problem
A key part of the Subversion bridge is a mapping between Git
commits and Subversion revision numbers. The mapping is persisted
so that we can produce a consistent view of the repository. A bit
of the mapping is exposed via a custom SVN property,
git-commit. For example, you can see that revision
2504 of phantomjs is an SVN representation of Git commit 2837f28.
$ svn propget --revprop -r 2504 git-commit https://github.com/ariya/phantomjs
2837f28c739f823f2eff061c8e41cf47654b8016
During the initial development of the Subversion bridge, we chose to store the mapping …
[Read more]