A short synopsis:
TortoiseSVN has a shell-overlay that indicates the status of your files and folders within an SVN 'working folder'.
The background process that 'watches' your file system for SVN-related files and folders is TSVNCache.exe.
TSVNCache.exe, according to Travis, was bogging his system down with disk I/O.
Instead of disabling TSVNCache.exe entirely (and thereby disabling the icon-overlays) he found a way to limit what TSVNCache.exe 'watches' on the file system.
When I first read his post, I thought "How bad can TSVNCache.exe be?" So, as noted in the comments of Travis' post, I grabbed FileMon from SysInternals, and fired it up. After setting a filter so it would only display TSVNCache.exe-related events, I was amazed at just how much 'noise' it was causing -- and I wasn't doing anything at all! Just sitting there watching FileMon do it's thing.
What really caught my eye was when I sent my coworker an instant message, thanking him for the link. My IM client wrote the message to it's log file, and I saw TSVNCache note the change, and check the log file's location for the existence of a ".svn" folder. (The existence of such a folder would indicate that the folder is an SVN working folder.)
I was surprised to say the least, and wanted to see how bad it really got. I 'putzed ' around doing a whole lot of nothing other than navigating around my file system. I seemed ridiculous at just how much disk I/O TSVNCache.exe was inducing.
For example, look at the following screen shot. It's the TSVNCache activity imposed when I copied a folder on my desktop, which contains one file:
Thankfully, by limiting which folders TSVNCache.exe 'watches' you can greatly limit this superfluous disk I/O. In case you still haven't taken a moment to click-through and read Travis' post, here's the quick run-down:
- Open your TortoiseSVN settings (Right-click the desktop, TortoiseSVN -> Settings)
- Go to the "Icon Overlays" item in the treeview.
- Add "C:\*" to the "Exclude Paths" box
- Add the folders you do want included in the "Include Paths" box
- I entered my 'work' folder: "C:\Work\*", for example.
- Save changes : Apply/Ok
- Restart TSVNCache.exe - kill TSVNCache.exe in your Task Manager. It will automatically restart when you open a Windows Explorer.
With these changes in place, within FileMon, you'll notice that TSVNCache is a lot less noisy. It will still receive "Change Notify" messages, but you won't see it access files/folders outside of your specified "Include" list.
Thanks for the great tip, Travis!