CVX - CVs eXtender

[ What is it? | Usefulness? | Getting cvx ]

What is it?

CVX is a simple profile-aware wrapper around cvs, designed to make using multiple CVS modules from a small number of cvs servers easier (where "small" merely means fewer than the number of CVS modules).

When run, cvx treats its first argument as a profile name; this profile is treated as a filename relative to $HOME/.cvx, and if found, the contents of this file are passed to a cvs invocation as the contents of the -d flag. All other arguments are passed transparently to cvx. This will make more sense with an example; in my setup, this:

$ cvx bashlib co bashlib

Will be expanded to:

cvs co bashlib

The first time cvx is run, it will create $HOME/.cvx if it does not exist. Any profiles that are passed to it that it does not know about will case cvx to prompt for a value (my responses are in bold):

  $ cvx tt co Template2
Can't find /home/darren/.cvx; should I make it? [Y/n] y Creating /home/darren/.cvx... ok. Didn't find profile tt in /home/darren/.cvx; create it? [Y/n] y Enter the CVSROOT string for tt:

And the cvs checkout proceeds as usual. The next time, however, is simpler:

  $ cvs tt co Template2

and cvs proceeds, because cvx already know about the profile named tt.


cvx would be most useful for people who use many cvs modules from a small number of servers. If the ratio of cvs modules to CVSROOTs is close to 1, then this script will not be so useful; however, in the case of many cvs modules spread out over a few cvs servers, this script can be a huge time saver.

Getting CVX

You can get cvx from the SourceForge CVS server or from this server. You can also browse the source. CVS instructions:

cvs login
cvs -z3 co cvx

You'll need autoconf to build a usable configure script if you get the source from cvx. If you get a tarball, you will not need autoconf.

SourceForge Logo