|
Page 2 of 5
Benefits of Version Control
While most software configuration management systems boast a vast assortment of complex features, this article will focus primarily on the benefits of “versioning.” As trivial as it may seem, keeping track of previous file and folder versions can be an invaluable feature to both developers and systems administrators alike. Having worked on the SysAdmin side of the fence for most of my career, I've encountered countless episodes whereby seemingly minor changes to system configurations led to adverse consequences. When changes to the system cause issues, you simply need to know “who edited what” as soon as possible. Thankfully, a versioning system does just that. By checking in a server's configuration directory (such as /etc for example), you now have a redundant copy of your server configuration, as well as several levels of revision history, any of which you may choose to revert back to in the event of chaos.
In a nutshell, the job of a version control system is to keep track of file and folder revisions throughout the lifespan of a project. Moves, adds, or changes to files and folders are recorded in the system, allowing one or more users to work concurrently on the same project. Internally, version control systems store only the differences (or changes) to files, rather than keeping full-blown redundant copies of each revision. This allows for efficient storage and prompt synchronization between clients and repositories.
Although there are many software configuration management and version control systems available to choose from, this article will focus on building a version control system based on the popular open source application-- Subversion
Depending on your requirements, there are several ways in which one may access a Subversion repository. Methods of repository access include:
-
Local file system – Subversion client performs versioning using local directories
-
Proprietary “SVN” Protocol – TCP-based Subversion calls over clear-text or SSH
-
WebDAV / DeltaV – Subversion operations occur via DAV-enabled HTTP(S)
For this article, I'll demonstrate how to deploy SVN using a DAV-enabled Apache server. This approach provides an Internet-accessible client/server architecture, and allows communications to occur over standard HTTP which will work within most firewalled environments. In addition to the SVN repository, we'll also install an optional ViewVC web front-end for simple read-only access to your repositories.
Assumptions
This article assumes you're working with a Red Hat-based system. Although the steps conveyed within this article may easily be modified for use with other Linux or UNIX-based systems, the article will utilize features such as yum and chkconfig, which are often found in Red Hat-like Linux distributions.
|