Comment Here's a UML design for a version control system (Score 1) 538
It doesn't go to the detail of implementation, but could be a meta-model to compare/contrast versioning system implementations.
This model also support policy based version to version link resolution: stuff like fixed version, latest version, version from same context...
Some other comments have indicated that a versioning system should have better dependency tracking. I've extended the SnapCM model to Versioned Hypderdocuments (XML plus XLink) as one example of precisely recording dependencies. A programming languages import statements could be treated the same way.