What if you had a high-level library in Python for driving revision control systems and their working copies?
Well, anyvcs to the rescue! Or, as it stands today, not yet. There isn’t much code to go around with anyvcs yet – it only works with Git and can’t do much beyond tell you the version or what the latest commit ID is on a branch. But thats exciting right?
You can look at the source for anyvcs here and clone it via
git clone git://stackworks.net/anyvcs.git
The high level goals for this project include:
- Simple backend for most distributed VCS operations, such as checkout, branch, apply patch, reset, etc
- Targets primarily git and mercurial, or other VCSes which operate in a similar manner. Subversion isn’t a likely first target for instance, nor is bzr (though we would like to support both eventually).
- Provide a comprehensive wrapper for Git commands via a Python library. If some of the functionality doesn’t end up in the core anyvcs abstraction, anyvcs.git will provide some VCS specific operations.
There is a great reason for this project – but I won’t reveal everything just yet.