comp KVS
This page is about KVS, a simple, single-user version control library.

Introduction

One day, I decided I should keep a revision history of my web-site. The main criteria I was looking for in the version-control system were simplicity, and the ability to view files without having to check them out from the archive. I also use Darcs (and, to a much lesser degree these days, TLA), which I very much enjoy, but I have no need for all the complicated and strange filenames, and—more importantly—don't want to have to navigate through long directory structures to find my files in the archive. So, I decided, like any good geek, why not write my own version control system?! ‘KVS’ is the name I used for the joke versioning system that I used as an undergrad (it basically involved manually using ‘mkdir’ and ‘cp’), so I decided to call my new system this. It is implemented as a domain-specific embedded language in O'Caml. Running KVS usually involves using a custom top-level interpreter.

I've been using KVS for my web-site and numerous work and personal projects. I can honestly recommend it over other version control systems: It's faster, easier, and more flexible. KVS is not a system for collaboration, though—it's a single-user-only tool. I have, however, used successfully it in collaboration with other tools (SVN, CVS, PerForce): I used KVS to maintain small, local edits, then pushed these changes through the other concurrent versioning software.

Because KVS is implemented as a library, it is easy to interact with archives, etc. from OCaml code. I've used this to implement a simple library for visualising changes to the archive over time (e.g., graphing file sizes in bytes / LOC over time, for filtering out the files that have been most actively edited).

If you use KVS, if you try KVS (whether you love or despise it), please send me an e-mail! I'd love to hear thoughts about what's useful or lacking.

News
Intended Uses

KVS is intended to be used for small projects that take place over a short period of time—projects for which the effort involved in setting up a ‘proper’ archive would be more costly than the benefit of maintaining the version history. It is also usable for projects that are essentially a collection of files—where one wishes to view changes at the file level rather than from a finer-grained view (e.g., line- or character-based changes). One case where someone might wish to do something like this would be when the archive consists largely of binary files.

Download
KVS is open-source; the only available download is the OCaml / CamlTrax sources.
Screenshot

kvsScreen
KVS in action, starting up and demonstrating adding a file to the repository (an older version of the present HTML page, in fact!).

More Information

Well, there's really no more information available for the time being, sorry! Please check back soon, though, or e-mail me if you have specific questions.

back

This page was generated by WebGen on KarmicPhoenix on Sun Nov 15 19:42:28 EST 2009. (W-Links mode.)