Please Note: I am now providing a new release and documentation for Fedora Core 2. This installation should work on most RedHat releases, but I haven't tried it. I suggest that you upgrade from the previous version that I supplied to the new one. This has a number of bug fixes and feature enhancements. I plan to add more information as I get time.
The impatient can skip to
Fedora Core 2 Installation HOWTO.
Discrepancies can be forwarded to christopher at baus dot net.
thanks,
~christopher
Outside the language and compiler there are few tools more important to the software development cycle than the version control system. The version control system is the heart and soul of your project. If you are not currently using a version control system, stop everything, do not write another line of code, and set one up immediately. The time invested in installing and learning a version control system will pay off the first time you track down a bug in a recent change to your code.
I've been using the new, Open Source, version control system, Subversion for about 6 months to maintain my HTTP Reverse Proxy Server source tree. As with any new software, it hasn't been without hiccups, but I now have it working well, and would recommend it to others who are looking for a modern version control system, that costs less than commercial packages such as Perforce. Subversion has many of the same features that make Perforce the category killer (including atomic checkins), but is priced right for start-ups and is perfect for Open Source projects. Having used many different Open Source packages over the years, I think it is fair to say Subversion is a first rate product. In fact, it is one of the only Open Source projects that made a defined push for a stable version 1.0, and included a well written book as documentation.
Browsing and viewing source versions and diffs between revisions is one of the most important features of any version control system, and it is invaluable when trying to track down the emergence of a bug. Unfortunately, Subversion doesn't ship with a browsing interface, and you must find one for yourself. On Windows you can use the shell plug in, Tortoise, which offers limited browsing functionality but it is limited to browsing your working copy. Also, since it only runs under Windows, it isn't a good solution for those of us who do most of our development on Linux. Web interfaces provide a better, more general solution, even for Window's users.
There are currently two web interfaces for Subversion that I am aware of. Both are in development, and are less stable than the core Subversion software, so caveat emptor.
The first system I tried was Chora. I'm going to save you a lot of hassle here -- skip it. It is a serious pain to configure, especially if you don't have a working Horde installation. On top of that, the Subversion support is slow and full of bugs. It looks really nice, if you don't mind spending two days installing it, waiting forever for file lists, and looking at error messages at the top of half of your requests. If you, like me, have a lot of work to do, and not much time to waste, skip immediately to the next option.
ViewCVS is currently the best option for browsing Subversion directories, but it too is in development. It does have a few bugs, but it mostly does what you need it to do, with reasonable performance. If you are using Windows, please read this document.
I ran into a couple issues. First, the current release version of ViewCVS does not support Subversion, so don't bother with it. You must get a recent version of ViewCVS directly from the SourceForge CVS repository. This pretty much puts you at the mercy of what ever happens to be in the HEAD revision -- including last nights bugs. But fear not, If you can't get the current revision working, I've archived a version that I've verified mostly works.
Secondly, viewCVS is written in the Python script programming language. Python scripts can be run by the Apache web server using the mod_python Apache module or as CGI scripts. The poor performance of CGI is one of the reasons why module interfaces for scripting languages, such as the wildly popular mod_perl, were developed. Unfortunately I couldn't get viewCVS to work with mod_python and was forced to use the CGI interface. For smaller sites, such as the baus.net development server, CGI's performance should be sufficient, but I can't vouch for larger volume sites.
To install viewcvs support for Subversion please read:
Fedora Core 2 Installation HOWTO.
It isn't too difficult to install a web interface to Subversion, but the information is currently scattered all over the place. Hopefully, this is a good starting point.
Happy Codin',
Christopher
If you liked this article you might be interested in my qmake and Subversion revision HOWTO which is here, or my
Subversion backend for Pyblosxom.
