Note: This is a work in progress, please see the index page for more details.
Source code control is one of the most useful tools in a developers arsenal. It allows you to make broad or experimental changes without fear of really damaging anything beyond recovery. There are quite a few SCM options available, some free and some with a substantial price tag. I will be using Subversion, as it is free and fairly common.
Let’s start off by getting Subversion set up. If you already have access to a subversion repository, you can safely skip this sub-section.
The easiest way to install a subversion server is to download and install the Subversion Stack v1.4.6 from Bitnami. This will give you a plane jane configured instance of Subversion (running in Apache) to work with.
At this point I would also recommend installing whatever Subversion support is provided by your IDE. Eclipse has a great plugin called Subversive. If you are using the Eclipse updater to install Subversive you will want to be sure you setup all three update sites listed on the download page.
Using Eclipse with Subversive, open the “Subversion Repository Explorer” perspective. Find the “SVN Repositories” view and right-click to add a repository. If you are using your own Subversion Bitnami Stack, you can use http://localhost/subversion as the repository url. Once you are connected to the repository switch over to the Java perspective and right click on your project and select the Team menu and then “Share project”. Step through the wizard with the default settings and click Finish. You will then be shown a “Commit Dialog”; go ahead and put in an initial commit comment and ensure that only source files (and config files) are selected for submission, deselect anything in the target directory. With that, your project is now under source control.
It’s handy to note that Subversion is available via web interface in most installations. If you go to http://localhost/subversion/trunk/hello-world-webapp/ you will see your committed files.
There is not much else to do with source control at this point. If you are not familiar with source code control, you may want to do a little reading… provide links (should I go into more discussion?)



