TortoiseSVN is a popular Apache Subversion client for Windows, implemented as a Microsoft Windows shell extension. As it isn't integrated into a specific IDE it can be used with a range of development tools; for example, it can be integrated into Microsoft Visual Studio using a third-party plugin such as VisualSVN. The key benefits of using TortoiseSVN include:
- Icon overlays, which allow you to see the status of every versioned file and folder at a glance.
- Easy access to all Subversion commands though a TortoiseSVN sub-menu that's automatically added to the Windows context menu.
- Windows integration, which allows you to work with tools you're already familiar with.
- Context-aware sub-menu -- available commands are filtered based on the selected file or folder. You will not see any commands you cannot use within the current context.
- Powerful commit dialog -- with integrated spellchecker, auto completion capabilities, and the ability to double-click on a modified file to open the diff program.
TortoiseSVN also comes with some useful tools for version control:
- TortoiseMerge -- a diff / merge tool that displays the changes made to particular files.
- TortoiseBlame -- displays who is responsible for a particular change, and the log message for the corresponding commit.
- TortoiseIDiff -- displays the changes made to image files, as it's not possible to use a standard file diff tool for images. TortoiseIDiff can display two images side-by-side, and display images blended over one another.
Getting Started with TortoiseSVN
TortoiseSVN is GNU General Public License software that you can download for free from wandisco.com. It is available in both 32-bit and 64-bit flavors. To download TortoiseSVN, simply double click the installer file and follow the onscreen instructions. When prompted, click Install.
The first step when using TortoiseSVN, is to download a local working copy of your repository. Start by creating a directory where you will store the working copy. Right-click on the folder and the Explorer context menu will appear, along with some new TortoiseSVN commands. Select SVN Checkout…'
This will open the checkout dialog:
From here you can set the following properties:
- URL of Repository -- the URL of the repository you wish to check out. (If you're using uberSVN, you can copy/paste the repository URL from the repository screen.)
- Checkout directory -- the location on your local file system where the checkout will occur. By default, it will be the location you right-clicked, but you can change this manually.
- Checkout depth -- an option to limit what you check out. This is useful if you're changing one directory of a very large repository.
- Revision -- get the latest version of the repository. You can also select a specific revision, which is useful if you need to roll back to a version before particular changes were made.
When you've finished with these options, you're ready to perform the checkout. Click Ok. You'll now see the progress of the checkout. All the files and the folders that are included in the checkout will be logged.
Making and Committing Your Changes with TortoiseSVN
Now you have a working copy on your computer; you are free to work on your own, local version of the project. When you have finished making your changes, the modified files/directories will be shown with the red exclamation mark overlay to indicate that they have been modified since they were last checked out or updated.
Before you commit any changes, it's a good practice to ensure your working copy is up to date with the repository. To update your working copy, select the desired files or directories, right-click them and select Update from the TortoiseSVN sub-menu. A new screen will open displaying the update's progress. Changes performed by other team members will be merged into your files, but any changes you may have performed on the same files will be maintained.
Now that you've ensured your working copy is up to date, it's time to add your changes to the repository. Select the desired files or directories and hit the SVN Commit… command.
SVN Commit… will open the commit dialog. From here, you can perform a number of actions:
- Launch the external diff tool, which displays every change made to the file, by double clicking on any modified file.
Add a log message from the commit dialog. It's a good practice to leave a log message, as they can be useful if problems arise later.
- Keep a particular file from being committed by unchecking that file. Hit Ok to commit your changes to the repository.