Svk Version Control

A DistributedVersionControl system using the SubVersion filesystem but providing additional features.

SVK can be used to create a local mirror of a remote repository. You can then work while offline on your local mirror; checking in code, reading logs, doing diffs, etc. When you get back online you can "push" your changes back to the master repository as well as "pull" any new changes.

SVK can also be used to get a unified client to various revision control systems. If you are stuck using a CVS or Perforce repository you can work with it via SVK and never be the wiser.

SVK has no .svn/ or CVS/ directories in the checkout. This sort of information is stored in a ~/.svk directory. This means no administrative files to get in the way when grepping or copying the checkout directory. It also means that SVK can track what you have checked out (svk co -l). The disadvantage is you cannot simply delete or move a checkout directory, you must inform SVK of this.

Because SVK is a client and not a VersionControl system in and of itself you do not have to DrinkTheKoolAid in order to use SVK. The barrier to entry is low. You use SVK on your own machine without having to alter the existing repository. Other developers do not need to be convinced to switch to SVK, they can continue to use the repository normally. If you find you do not like SVK you simply make sure all your changes are synced, throw it out and go back to using the repository directly.

SVK is still in development. It is quite usable but expect bumps along the way.

SVK is written entirely in Perl. The up side is its portable. The down side is its a little sluggish. However, because it avoids several layers of the SubVersion API for large projects it can actually be faster than SubVersion.

The authors (C-L Kao, Autrijus) hang out on Be aware they are on Taiwanese time.

For years my CVS repository for my OpenSource projects has resided on my laptop. I wanted to work on my projects where ever I was, Internet connection or not, and still be able to make commits. It bothered me that I could not put my repositories public. The best solution I'd found was to rsync them occasionally to a server and provide anon read access.

Then Autrijus introduced me to SVK and it's exactly what I've wanted. I'm moving my CVS repositories off my laptop and into a public SVN server. I have them mirrored on my laptop using SVK. Now I can work when ever and where ever I want without compromise. --MichaelSchwern


EditText of this page (last edited January 15, 2007) or FindPage with title or text search