The Boston Diaries

The ongoing saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal “The Boston Diaries.”

Go figure.

Thursday, May 13, 2004

Tracking changes

Well, it took several hours, but I was able to compile the Subversion client. I ended up compiling OpenSSL 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 or GNU Arch, or ClearCase 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. 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, 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 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 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
% vi
Error detected while processing command line:
Not an editor command:
Press RETURN or enter command to continue
% vi ./

Make the annotations, then I can:

% tla commit

Annoying having to do an extra step (and trying to use joe 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.

Obligatory Picture

[The future's so bright, I gotta wear shades]

Obligatory Contact Info

Obligatory Feeds

Obligatory Links

Obligatory Miscellaneous

You have my permission to link freely to any entry here. Go ahead, I won't bite. I promise.

The dates are the permanent links to that day's entries (or entry, if there is only one entry). The titles are the permanent links to that entry only. The format for the links are simple: Start with the base link for this site:, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

You can also specify the entire month by leaving off the day portion. You can even select an arbitrary portion of time.

You may also note subtle shading of the links and that's intentional: the “closer” the link is (relative to the page) the “brighter” it appears. It's an experiment in using color shading to denote the distance a link is from here. If you don't notice it, don't worry; it's not all that important.

It is assumed that every brand name, slogan, corporate name, symbol, design element, et cetera mentioned in these pages is a protected and/or trademarked entity, the sole property of its owner(s), and acknowledgement of this status is implied.

Copyright © 1999-2024 by Sean Conner. All Rights Reserved.