Remote Synthesis
Search my blog:
Viewing By Entry / Main
Mar 18, 2006

Introduction to Subversion (CFObjective Session Summary)

For my prior CFObjective summeries, go here, here and here.

Simeon Bateman gave high-level overview of using Subversion for version control. One of the key points he emphasized was that Subversion was not a source control system, but rather it is version control for managing trees of files (any type of file can be versioned). Personally, I have heard this mentioned before and it can be sometimes unclear to me. I think what Simeon and others mean by this is that Subversion is totally agnostic to the types of files it versions. The Subversion book refers to systems that are designed for source control specifically as it relates to software development as having "software configuration management (SCM)", and the point is, Subversion does not have that. The rest of the discussion generally spoke of Subversion and some of the ways it differed from CVS.One major improvement of Subversion over CVS is that Subversion has directory versioning. Also copy or renaming files does not lose the history of the file. Subversion is also capable of atomic commits, which is basically when you commit files as a logical block whereby if anything fails during this commit, the entire commit is rolled back. Subversion does not have built-in support for branching and tagging. However, Simeon discussed the standard practices used to create branches and tags in Subversion (which is the reasoning behind the branches,tags and trunk folders). Some of the basic command-line syntax was covered. It was emphasized that you must remember that import your files into a repository, you must then check them back out as a working copy.

Simeon covered how to install Subversion on Windows using the 1 click install. This will install Subversion, the Subversion service and ToroiseSVN, which a fantastic Windows interface for Subversion. Simeon also highly recommended (and I do to) the Subclipse plugin for Eclipse as one of the easiest interfaces for accessing your SVN repository. Simeon also recommended using Apache with the mod dav plugin.

Access control was discussed, and modifying access control was given a walk-through. Basically, all access control is managed through some text files (which is a bit of a security concern). The svnconv file is where you set up access control, and the passwd file is where you manage passwords. Version 1.3 of Subversion also added directory level security.

During the discussion on command-line syntax, some important things to remember were discussed. One of them was that using svn-add does not physically add the file to the repository, only marks it for addition; you must perform a commit before the file is actually added. Another was that when a file is marked for deletion, it still exists in the repository and can be retrieved at any point. This is both a benefit and a hindrance, if for security or some other reason you should want a files history to be completely erased and irretrievable.

Comments
Sami Hoda
You forgot to mention that Simeon also mentioned SmartSVN, the program of choice at our company. Check out www.smartsvn.com. Great interface, easier than Tortoise, especially in terms of figuring in one shot what files have changed.


Write your comment



(it will not be displayed)