This article is also available as a TechRepublic download.
No development team should be without version control. Unfortunately, many professional version control systems can cost hundreds, or even thousands, of dollars. They are often designed for use with a specific IDE, or integrated development environment. Even when they are more general, they typically limit themselves to a small collection of choices, so that you either need to choose your IDE based on your version control system or choose your version control system based on your IDE. When you come into a new team that already has version control in place, it means that one of the most personal decisions a developer can make may already be made for you: You use the team's IDE, period.
Subversion is perhaps the single most popular version control system for open source developers, and its popularity with developers in proprietary software development teams is nothing to scoff at either. It defies the limitations you may have come to expect from proprietary version control systems: Not only is it free, but it does not lock you into a specific IDE, or even a specific operating system. It is fast, stable, flexible, secure, and easy to use.
While it is in regular use on open source operating systems, such as the various Linux distributions, Subversion is less in use on Microsoft Windows systems. This is in part because it has stiff competition from proprietary version control systems that are sold by the same software vendors as the IDEs found in many development shops. It is also in part because a dismaying number of professional development teams simply do not know about version control or do not think it is important. Regardless of the reason, if you are not familiar with Subversion, or think it is not a Windows tool and can't be used for development on Microsoft Windows, this is your introduction to TortoiseSVN, the Windows client for Subversion.
Subversion itself is maintained by the Tigris.org community. TortoiseSVN is also maintained by that community. Think of it as first-party software, available from the same vendor that provides the rest of the core Subversion tools, the people who know Subversion best. You can find out more about the TortoiseSVN installer from the TortoiseSVN Web site, including a description of the features of TortoiseSVN.
The first thing you need to do when installing TortoiseSVN on your Windows workstation is, of course, download the installer. You can get the source code, if you want to compile it from source yourself, but most of you are more likely to want to simply get the automatic installer. The installer is available from the TortoiseSVN downloads page in both 32-bit and 64-bit versions.
To install it, you will need the .msi file for your architecture; labeled "Installer" in the list of downloads. As of this writing, there are two installers available for the current version, and two MD5 checksum downloads available in case you want to verify a good download before attempting the install. It is not a long list, so you shouldn't have difficulty choosing the correct option for yourself.
There are, however, 28 language packs available for TortoiseSVN, supporting languages from Bosnian to Turkish. You don't need to worry about this if you want to use TortoiseSVN with English language support, but the fine people at Tigris.org have ensured that people all over the world have a Microsoft Windows Subversion client localized for their native languages.
Once you have downloaded the roughly nine megabyte installer, beginning installation is as easy as double-clicking the installer icon. Doing so brings up a friendly welcome screen, as shown in Figure A.
|TortoiseSVN welcome screen|
After clicking the Next button, you are brought to the End-User License Agreement dialog (Figure B).
In brief, it informs you that TortoiseSVN is licensed under the terms of the GPL, or GNU General Public License, the most common and most famous free/libre/open source software license in use today. You will have to select I Accept The Terms In The License Agreement to continue. Clicking the Next button, after selecting the radio button that indicates agreement, brings you to the Custom Setup dialog shown in Figure C.
Most users will have no specific needs on this dialog and will only need to click the Next button here. That leads to the confirmation dialog for installing the software (Figure D).
Assuming you do not need to use the Back button to change any of your previous decisions, you need only click the Install button to proceed. This is your last chance to abandon installation before changes are made on your system. Click the Cancel button if you need to escape the installation for some reason.
Once you click the Install button, the software will begin installing on your system (Figure E).
Finally, you will see the Setup dialog, as shown in Figure F.
This dialog may be poorly named, as there are no further setup options that need to be configured. At this time, you should probably deselect the Show Changelog option, unless you have a specific need to view the log of changes from the previous version of TortoiseSVN. If you wish to find the changelog to view it later, it is located at C:\Program Files\TortoiseSVN\Changelog.txt for your convenience.
Finally, after clicking the Finish button, you will be confronted with the familiar restart dialog (Figure G).
Once you have restarted your computer, TortoiseSVN will be completely installed and ready for use.
You may be surprised to discover that there is no TortoiseSVN icon on your desktop or on your Start menu, from which you can run a TortoiseSVN application. This doesn't mean your install failed. On the contrary, that's part of the beauty of TortoiseSVN: it integrates seamlessly with the operation of the tools already available.
If you are using SSH to provide secure access to the repository, the first thing you should do is acquire an SSH client. A popular SSH client for Windows is PuTTY, which will work nicely with TortoiseSVN. Go to the downloads page, then download and install PuTTY, Plink, Pageant, and PuTTYgen. When these are installed, you can configure TortoiseSVN to tunnel the SVN protocol through SSH for secure access to your Subversion server.
First, you will need to acquire a private key from the server. Ask your network administrator to help with this task if you can't do it yourself, as this task is beyond the scope of this article. Once you have your public key in place on the server and a private key on your Microsoft Windows client system, you can open the PuTTYgen program and use the Import Key option on the Conversions menu to convert the private key to PuTTY's format.
Set up PuTTY with a saved session for accessing the target server using the new PuTTY formatted private SSH key. At that point, you will be ready to configure TortoiseSVN to use SSH to access your Subversion repository on the server.
Start by creating the directory you plan to use to house the local copy of your repository and opening that directory in Windows Explorer. Right-click to bring up the context menu and then choose the SVN Checkout... option. Enter your Subversion repository URL in the field labeled URL Of Repository and ensure that the Checkout Directory field indicates the correct local directory for your working copy of the repository, as shown in Figure H.
When that finishes, you should have the contents of your repository safely stored in the new local directory. Each icon should have a green circle with a check mark attached to it, indicating that the file or directory represented by that icon is up to date.
At this point, right-clicking on various items under version control will bring up options for committing changes to the repository on the server and updating the local copy from the server. Under the TortoiseSVN submenu is a long list of Subversion functionality you can use, such as viewing graphs of revision history, resolving version conflicts, creating software patches, and deleting files. Assuming you have experience with version control systems in general, much of it should be self-explanatory. The TortoiseSVN help system, also available through the right-click context menu, can help you with the parts that are not immediately obvious.
If you do not already have experience with version control systems, you have just taken a tangible step toward better-organized, more sustainable software development.
Chad Perrin is an IT consultant, developer, and freelance professional writer. He holds both Microsoft and CompTIA certifications and is a graduate of two IT industry trade schools.