* * * * *

                               Tracking changes

Well, it took several hours, but I was able to compile the Subversion [1]
client. I ended up compiling OpenSSL [2] twice because the Subversion
configuration script couldn't find the libraries, but once I got that
straightened out, it compiled fine even if it did take a few hours (not that
I have the fastest machine on the planet).

Subversion is a version managment tool. You place files under Subversion (or
CVS (Concurrent Versions System) [3] or GNU Arch [4], or ClearCase [5] or any
number of other programs) and it allows you to track changes to documents.
You check out the current documents, make your changes, check them back in.
The various differences between the tools deals with concurrent checkouts
(some require you to lock the files when checking them out so others can't
edit the file you are editing, others will attempt to merge all editing
changes back in) and whether you can version directories, and how easy it is
to manage different versions of a document. Usually used to track source code
changes, but it can be used to document changes for just about any document
type.

I'm satisfied with CVS (Concurrent Versions System). Heck, the only reason I
started using CVS was to have the ability to work on some projects on
multiple machines and not have to schlep tarballs from machine to machine to
keep in sync. Before that, I never really bothered to use source control
(except for the year I worked at IBM [6], but then, my exposure to the actual
source code was minimal—all I was doing was writing test cases).

Mark doesn't care for CVS, and after looking at GNU (GNU's Not Unix) Arch,
went with Subversion. This was a few years ago when installing Subversion
wasn't a trivial process (as my Calculus teacher used to say). It in fact,
required quite a bit of mojo to get working, and thus was one reason I stayed
away from it. The other being the rather hefty requirements in hardware.

Now, recently I used GNU Arch for a project for Mark. Even though later it
would be placed under Subversion, I wanted to get a feel for how GNU Arch
worked. It didn't require nearly the resources of Subversion, and was easier
to compile and get running (although the requirements for Subversion have
been falling, and the installation procedure has gotten easier).

And between CVS (which doesn't allow you to track directories, nor allow you
to change file names without loosing the history of the file, nor handle
change sets well, or … ) and GNU Arch (which does all that) I would rather
use CVS. GNU Arch, while having features not present in CVS, is still rather
clunky to use. Under CVS, when I commit my changes:

> % cvs commit cgi
>

(which commits any changes I made to my CGI (Common Gateway Interface)
library) it will pop up an editor and let me write what changes I've made
(nearly all revision tracking software will allow you to annotate what the
changes where), then upload the current version to the respository (where the
master copy is kept; Subversion works simularly). Under GNU Arch however …

> % tla commit
> commit: no log file provided (see `make-log')
>

See, what you are supposed to do is:

> % tla make-log
> [email protected]
> % vi [email protected]
> Error detected while processing command line:
> Not an editor command:
> [email protected]
> Press RETURN or enter command to continue
> % vi ./[email protected]
>

Make the annotations, then I can:

> % tla commit
>

Annoying having to do an extra step (and trying to use joe [7] on that
filename causes it to dump core—I'm thinking that the plus signs are causing
some problems, and my copy of joe is rather old), but I can somewhat see why
it may be done that way. Generate the log file, then edit it while making
your changes, but hey, if tla commit doesn't find the log file it's looking
for, it should at least generate the file and let you edit it then, during
the commit.

There are other annoying aspects of GNU Arch, and the amount of diskspace it
uses is almost twice as much as subversion (and interally uses filename of
ridiculous length). So now for the rest of Mark's stuff, I'll be updating
directly into his Subversion repository, and I'll keep using CVS for what I'm
currently using it for. I don't have plans on converting to GNU Arch any time
soon.

[1] http://subversion.tigris.org/
[2] http://www.openssl.org/
[3] http://www.cvshome.org/
[4] http://www.gnu.org/software/gnu-arch/
[5] http://www.ibm.com/software/awdtools/clearcase/
[6] http://www.ibm.com/
[7] http://sourceforge.net/projects/joe-editor/

Email author at [email protected]