TortoiseSVN is a really easy to use Revision control / version control / source control software for Windows. It is based on Subversion. TortoiseSVN provides a nice and easy user interface for Subversion.
It is developed under the GPL. Which means it is completely free, including the source code. But just in case you don't know the GPL too well: you can use TortoiseSVN to develop commercial applications or just use it in your company without any restrictions.
Since it's not an integration for a specific IDE like Visual Studio, Eclipse or others, you can use it with whatever development tools you like.
As a Subversion client, TortoiseSVN has all the features of Subversion itself, including:

.









The specifications for integrating Subversion development with your issue tracking system was cooperatively created and developed by the TortoiseSVN and Subclipse teams. Both products support these features, and since the first introduction of the specification many other tools added support for them.
Issue trackers don't have a direct connection to a version control system. Those are usually two completely different systems (software wise). They're only logically related.
The problem arises due to the fact that neither of these two systems provide the means to really connect them without special user interaction. For example, it's not possible to commit a bug fix and at the same time close the issue assigned to the bug. The user still has to close the issue manually after committing the bug fix.
Subversion has the ability to run hook-scripts for every commit. Some issue trackers started providing such scripts to assign a commit to a specific issue. They usually do this by parsing the log message, looking for a specific string telling them the issue ID. This requires that the user knows how to write and format the log message so the issue tracker hook-script can parse it correctly. Of course, this is very error prone.
Another problem was that while such issue tracker hook-scripts could assign a commit to a specific issue, that integration is only in one place: the server / issue tracker. Which means while it is possible to see all commits which belong to a specific issue, the other way around doesn't work. It's not possible to see the issue which belongs to a specific commit - the client programs haven't implemented that.
With all this in mind, we put together a list of goals we wanted to address:
The result of very long discussions and valuable feedback from developers working on issue trackers (e.g. Michael Pryor from FogBugz) finally resulted in the specification you can find here (username = 'guest' with no password).
Now that we have gone over how and why this was implemented, let's have a look at how you actually can use this feature.
Since Subversion doesn't provide project settings, we had to find a way around this limitation. We settled on using Subversion properties which we handle specially, and calling them project properties. Again, the exact specifications are somewhat complicated. But basically the client is required to search upwards in a working copy for those properties and use the first ones it can find. That way, if you set those properties only on the /trunk folder of your project, they still apply to all subfolders. Of course, there's a limitation here: it only works if you have your project checked out from /trunk and not a subfolder. At least one folder in your working copy path must have these properties set for them to work.
We decided to prefix the properties responsible for configuring the issue tracking integration with bugtraq:. We chose bugtraq with the slightly odd spelling just to avoid any potential current or future namespace conflicts. Here are the properties and an explanation of each, worded slightly differently from the original specification to make it more clear for the average user.
With the bugtraq:logregex set, the commit dialog in TortoiseSVN will indicate that you've entered an issue correctly by showing the main part in italic, and the issue ID itself in bold.
More detailed information about integration of TortoiseSVN with issue trackers can be found in our manual.
Users lobbied hard for this feature, and I think the way we implemented it is good for the users.
I do not know the complete list of Subversion clients that have added support for these properties, but I know that it goes beyond Subclipse and TortoiseSVN and includes several of the web-based repository browsers.






