VCS Made Easy

VCS Made Easy, or vcsme for short, is an utility whose main purpose is to simplify the maintenance of file trees managed by a version control system, such as the well known CVS or Subversion. Simply put, it automates the process of bringing all these directories to an up-to-date status with a single and simple command.

VCS Made Easy is written in ANSI C++, making extensive use of the STL and other features; it is known to work fine with GNU GCC 3.x. It also uses the libxml2 library, to process the configuration file, and Boost, to greatly simplify the code and increase portability.

VCS Made Easy is distributed under the terms of the revised BSD license, which is compatible with the GNU GPL.

Example use cases

Consider a NetBSD installation: this system generally has a set of standard directories managed by CVS, namely /usr/src, /usr/pkgsrc and /usr/xsrc. This list may be more extensive if you are tracking multiple branches of the same source trees.

Keeping these trees up to date is a boring task: either you manually run a set of commands every day or you hack a custom script to do the update and add it to the cron daemon. All of this assumming you have the right privileges.

VCS Made Easy aims to remove this burden from you. You set up a simple configuration file describing the layout of your source trees and forget about them. Then, every time you run the utility (e.g., from cron), some or all of your hierarchies will become up to date, no matter which version control system they came from.

The program also aims to be "setuid" safe (not yet, though), so that you can safely allow some users to run the utility to update trees they do not own. In the above example, all the trees could be owned by a "vcsme" user, yet the operator could easily update them at will.

Of course, the utility is also useful to regular users (usually developers) who keep track of lots of VCS-managed directories. Just suppose you are a GNOME developer and you have lots of modules checked out on your machine. Updating all or some of them could be as easy as running a simple command.


There are no versions available to download yet.

Development sources

You can get a copy of the latest development sources using Monotone, a free and distributed version control system. This utility works in a slightly different way than CVS does when it comes to fetch sources.

First of all, you have to download a copy of the remote database. This step needs access to the Internet. Please note that the server is running on my home machine; unfortunately, I can't keep it up 24 hours a day, so you may get connection errors. If that happens, just try again later.

$ mkdir vcsme
$ cd vcsme
$ monotone --db=vcsme.db db init
$ wget
$ monotone --db=vcsme.db read <monotone.key
$ monotone --db=vcsme.db pull net.sourceforge.vcsme

Once you have the database, you can check out a fresh copy of the sources, which live in the net.sourceforge.vcsme.src branch:

$ monotone --db=vcsme.db --branch=net.sourceforge.vcsme.src src

To update your copy to the latest version, something you may want to do daily, for example, you first have to synchronize your local database with the remote server. This obviously needs access to Internet:

$ monotone --db=vcsme.db pull net.sourceforge.vcsme

And, at last, update your tree:

$ cd src
$ monotone update

Copyright © 2004, 2005 Julio M. Merino Vidal Logo