Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Version control with Subversion (2nd ed.)
Pilato C., Collins-Sussman B., Fitzpatrick B., O’Reilly Media, Inc., 2008. 430 pp. Type: Book (9780596510336)
Date Reviewed: Dec 24 2008

I recently joined a geographically dispersed development team that uses Subversion (SVN), and I found myself tiring of being told by other team members: “Dude, you just check the stuff out, make the changes, and check it back in again!” So reading this book seemed like a good idea.

One can actually read the book online (http://svnbook.red-bean.com/), where it’s kept up to date using (of course) Subversion. But the printed copy is somewhat more convenient for day-to-day reference.

The book begins with a short preface, in which the origin of Subversion, in 2000, as a replacement for Concurrent Versions System (CVS), is outlined, together with it’s subsequent developments, from Release 1.0 in 2004, to Release 1.5 in June 2008. The authors observe that Subversion is most often used for managing programs; however, it can be used for managing data of any type, including music, images, and documentation. Therefore, the authors made this book palatable to those who may not be programmers.

In the two chapters that follow the preface, the reader is introduced to locking mechanisms that enable two people to work simultaneously on files in the same repository. The concepts of working copies and revisions are explained, and some basic usage examples for the svn command are discussed. The authors suggest that any user can create a new repository area using the svnadmin create command, and then import an existing tree of files into it; this is actually not something that an unprivileged user can do.

In chapter 3, “Advanced Topics,” the reader learns how to access previous revisions by specifying dates and date ranges. The use of keyword substitution (for automatic insertion of items like author and date) is illustrated, and readers are shown how to set locks on files they may be modifying so as to circumvent any need for a subsequent merge operation.

I’ve never quite understood the concept of trunk and branch streams found in many open-source software repositories. But it all became much clearer to me when I read chapter 4, “Branching and Merging.” Examples are shown for merging revisions from a branch stream back into the trunk, and for appropriately handling ancestry relationships. Tags and vendor branches are also discussed.

Chapter 5 is for those who manage Subversion repositories. It covers things like repository organization (whether trunk and branches are set out separately under each project), data store type (filesystem or Berkeley DB), and repository hook implementation. There are also usage examples for administrative tools such as svnadmin.

The topic of server configuration is dealt with in chapter 6. Options available include Apache with Web-based distributed authoring and versioning (WebDAV), SVNserve, and SVNserve-over-secure shell (SSH). The capabilities of each of these are shown, and details are provided for setting up each one on both Unix/Linux and Windows operating systems.

Chapter 7 is titled “Customizing Your Subversion Experience.” There are actually a number of options that can be set in configuration files to specify, for instance, preferred editor and difference-utility commands.

The penultimate chapter is for those who wish to interact with Subversion through its public application programming interface (API) or its various language bindings. It includes flow diagrams and sample code (written in C). Mention is made of the Java bindings included with Subversion, and of the proprietary SVNKit product, which is a pure Java implementation of Subversion.

Chapter 9 is the last, occupying almost 100 pages. It is intended to be a complete reference to using Subversion. Each command is listed with its options; in many cases, there are also simple usage examples.

Three appendices provide, respectively, a quick-start guide, a conversion guide for CVS users, and some details of how Subversion interacts with WebDAV.

If you’re a Subversion administrator, you need this book. If you’re somebody who uses Subversion occasionally in your work, you’ll find it invaluable; however, you may be able to find other books that cover just the parts of Subversion that you use.

Reviewer:  G. K. Jenkins Review #: CR136376 (0911-1005)
Bookmark and Share
  Featured Reviewer  
 
Version Control (D.2.7 ... )
 
 
Version Control (I.7.1 ... )
 
 
Miscellaneous (A.m )
 
Would you recommend this review?
yes
no
Other reviews under "Version Control": Date
Distributed version management for read-only actions
Weihl W. IEEE Transactions on Software Engineering 13(1): 55-64, 1987. Type: Article
Jan 1 1988
RCS--a system for version control
Tichy W. (ed) Software--Practice & Experience 15(7): 637-654, 1985. Type: Article
Apr 1 1986
Version control and separate compilation in Ada
Dausmann M.  Ada-components: libraries and tools (, Stockholm, Sweden, May 26-28, 1987)1701987. Type: Proceedings
Jan 1 1989
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy