Announcing VCI: The Version Control Interface for Perl
am 31.08.2007 15:37:08 von mkanat"Long have we toiled on our tools that interact with CVS. Oh, wait,
you mean we're switching to Subversion? Oh...long have we toiled
on...what,
we're switching to Git?" -The Oppressed Development Tools Maintainer
So, I wanted to write a simple tool that displayed some information
about version-control systems (or "software change management"
systems,
as some are called). I went looking through CPAN, thinking, "Surely,
there must be a single module that can interact with many different
VCSes, right?"
But surprisingly, there wasn't. There was the VCS module, and I
spoke with its maintainer and he said that he'd always wanted to re-
write
it in an object-oriented fashion, but had never found the time to do
so.
So, I wrote VCI, the generic Version Control Interface. Currently
it can display the history and contents of CVS, Subversion, Bazaar,
Mercurial, and Git. It's easy to write new drivers for other VCSes,
you just make a new package in the VCI::VCS namespace. (And if you
read
the VCI code and documentation, you'll see it's easy to write a
driver.)
VCI is object-oriented. It uses Moose.
VCI aims to provide a broad set of features while still working
well with all the different VCSes commonly in use. The rationale,
structure, and functionality of VCI is described in the documentation
of the VCI module.
You can find VCI on the CPAN at:
http://search.cpan.org/dist/VCI/
VCI also has a (currently minimal) homepage at:
http://vci.everythingsolved.com/
VCI is currently alpha-quality. Stability and performance
improvements are coming in the future.
I'm very interested in knowing who's using VCI, and am very
willing to have contributions and new drivers from any programmer who
feels competent enough to design quality code.
You can direct any questions, comments, or patches to me at this
email address.
I hope that you find VCI useful!
-Max