Optimising TortoiseSVN December 28, 2006

As noted in other posts, I am currently using Subversion for source code control, with TortoiseSVN as the “GUI” client. Recently I’ve been having big performance problems on my machine, particularly with Windows Explorer. Getting rid of most of the network drives that I’ve added helped quite a bit, and then I turned my attention to TortoiseSVN.

Our SVN repository is located in New York, whilst we are in London, and the network between the two sites is not great. For example, when we moved offices our new network was only 10mbit/s rather than 100mbit/s. Gigabit? Tish and pshaw! Combined with the fact that our project is 436Mb means that SVN can sometimes crawl.

I began digging into the TSVNCache.exe process. TSVNCache determines which icons should be displayed in Windows Explorer, indicating modifications, conflicts, etc. I then read this article about possible optimisations. By switching on the TSVNCacheWindow I could see that tens of thousands of directories were being cached.

The first thing was to remove branches that were no longer being used. Despite having no modifications for several months, they were being repeatedly indexed by TSVNCache.

Next was to specify the directories that I wanted icon overlays for. Into the “Include Paths” I added my C:\dev\trunk and C:\dev\Branches\ directories, with “*” after each of them so as to get recursive info. Into the “Exclude Paths” I added C:\*, thereby excluding everything else.

Performance was now significantly better, but I wasn’t satisfied. The final act was to switch on “Show overlays only in explorer”, which disables the overlays in File Open dialogs and other non-Explorer windows. This was an area where I had had particular problems.

The machine is now lightning-fast, far better than it had become and much more like the dual-core, dual-physical 3.2Ghz Xeon with 2Gb that it’s supposed to be.

My settings are shown here.