Issue Tracker Integration in AnkhSVN
AnkhSVN strives to provide first-class Subversion support in Visual Studio. It uses the same public source control API's that Microsoft first created in VS 2005 as part of integrating their Team Foundation Server product with Visual Studio. AnkhSVN provides the same functionality as TFS and also integrates with the Visual Studio user interface in a similar manner.
One area this can be seen is in the Pending Changes window that serves as the hub for all of your SVN development activity within Visual Studio. One feature of this window that exists in TFS that has been missing until now, is deep integration with the issue tracker. Unlike TFS, which only supports its own internal issue tracker, the AnkhSVN support for this feature has been designed to allow any issue tracker to be plugged in and fully supported.
?CollabNet has contributed this functionality to AnkhSVN and integrated our issue trackers as part of the process. This document will describe the feature in greater detail.
This feature exists in official releases of AnkhSVN (2.1.7444+) and the CollabNet Desktop - Visual Studio Edition (1.6+).
Download !CollabNet Desktop - Visual Studio Edition (Includes AnkhSVN).
Because this feature can work with any issue tracker that plugs itself into the new AnkhSVN extension point, you do have to configure the link between your Visual Studio Solution and the issue tracker you are using. We have designed the feature so that the configuration options are stored as custom SVN properties on the solution root folder. Using this approach, only one user should need to set the configuration on the solution. Once this is committed to the repository, other users will have their solution configured automatically on Checkout/Update.
To configure the issue tracker, right-click on your solution and choose the new Issue tracker setup option.
This will then bring up the issue tracker configuration dialog:
When you click OK, your changes are saved in custom properties on the solution root folder. You should go ahead and commit these to your Subversion repository so that all of your other developers will receive the configuration as part of their solution. If they do not have the proper version of AnkhSVN or the CollabNet Desktop installed, they will just not see the feature. The properties cannot cause any harm to their development process.
Associating Commits with Issues
Once you have configured your solution to be associated with an issue tracker, the main feature change you will notice is that the "Issues" section of the Pending Changes window now will have new capabilities.
Every issue tracker can provide a custom user interface. The one shown is for CollabNet TeamForge. The integration for CollabNet Enterprise Edition's Project Tracker and Issue Tracker looks similar and has the same capabilities.
We have allowed you to choose a tracker filter from the drop-down. These are pulled in from your CollabNet Desktop sites view where you can define custom filters for the artifacts you care about. Filter drop-down also includes useful built-in tracker filters such as those that are assigned to you 1.
The results of the filter are shown in the window. To associate a commit with those issues, simply check the box of the artifact(s) you want to associate the commit with. Type and commit message you want in the message window and click the commit button.
In the case of CollabNet TeamForge and Project Tracker, your selected issues are appended to the end of the commit message so that the Subversion server can validate and make the association in the back end. In the case of the CEE Issuezilla tracker a comment is added to the issue that links it to the commit.
Updating Issue Status
While working on this feature, we also decided to add support for another feature that exists in TFS. Namely, not only can you associate a commit with one or more issues, but you can also request that the issue status be changed as part of the commit.
After the commit happens, assuming it was successful, the issue tracker integration will update the status of the issue(s) to the status you choose in the drop-down. This is of course an optional feature, you do not have to change the status as part of doing the commit.
Opening Issues from the History Windows
The final piece of integration concerns the Subversion History window. When you view the history of an item that is linked with an issue tracker, references to issues in the commit messages will be recognized and colorized by the integration. You can right-click on the issue within the message and take a new option to open the issue.
If you are using a rich Visual Studio integration, such as the one we provide for CollabNet Desktop, then it will open your issue within a custom native Visual Studio editor. Other integrations may choose to open a web browser.