Category Archives: TortoiseSVN

Integrating Redmine with SVN

We are using Redmine in our company for issue tracking and SVN as a source control. As a client I use AnkhSVN primarily, because I am working inside Visual Studio most of the time. In this post I would like to show you plugins for AnkhSVN and TortoiseSVN which will help you assign your commits to specific issues in Redmine.
I will start with plugin for TortoiseSVN. Download the correct version 32bit or 64bit and install it. After that go to the TortoiseSVN Settings > Issue Tracker Integration. Specify working path of your source codes and Atom URL from Redmine. To get Atom URL go to the project page and click on the Issues tab. You can define a view which will select the correct issues for example only those which are open and assigned to you. On the bottom of the page there is a Atom link, copy the address and paste it to the Issue Tracker Configuration Window.

After the Issue Tracker Integration is configured go to the folder with your source codes and try to commit some changes. You will see new button in the Commit window called Redmine Issues. Clicking on it will display window with all issues which can be selected and added to the Commit Message.

There is a plugin for AnkhSVN available too. After you install it open some project in Visual Studio. Right click the solution in the Solution Explorer and open Issue Tracker Setup. On the dialog select the new installed connector. After that fill in your credentials. Issue Repository URL is the base URL of Redmine. Click Update button and select your default project. Also make sure that the REST API is enabled in the Redmine Administration.

That’s it! You are now able to click on the Issues button in the Pending Changes window and select active issues.

Optimize TortoiseSVN

You may already find out that there is some mighty process in your task manager called TSVNCache.exe. This process is running in background to allow you see correct icon overlays of your working copy folders and files. It checks for file changes and caches their status in real time. It is necessary process because otherwise you won’t be able to see status recursively. Instead of getting status when you access the folders, it loads the status from this cache.
The problem here is that the process scans all file changes, so it may produce a lot of disk usage when you make a lot of file operations even outside of your working copies.
However in TortoiseSVN settings you can specify which folders you want to scan and which not. In the screen below I forced TortoiseSVN to scan only the two folders specified in the Include paths. Other folders won’t be scanned because disk C: is specified in the Exclude paths.