Missing TortoiseSVN Shell Icon overlays

This has been bugging me for weeks and today I finally found and resolved the problem so thought I should share in case anyone else has this problem too.

I couldn’t remember when I first noticed they were missing but when ever I checked a working folder on my laptop the tortoise svn icon overlays were missing. When I edited a file the red cross would appear as expected, but the green tick to say a file was up to date or the question mark for non-versioned files were missing, meaning I didn’t know if a file was up to date with the repo head or an ignored/non-versioned file.

This morning I came across a post on stack overflow that suggested modifying the registry to over-right the usual Microsoft default setting cock-up. In Windows, for memory reasons Im guessing, they have limited the number of allowed Shell Icon overlays  to 11. Now at first this seems like a logical way to stop memory abuse in Explorer. But for some stupid reason (most likely so their overlays come first), they are actioned in alphabetical order, so any overlays in position 12+ are ignored. With M being in the middle of the alphabet this results in the majority of these slots being allocated by Microsoft Products. In this case Tortoise SVN (obviously starting with a T) was being pushed out of the allowed slots.

I found this out by doing a search in the registry for ‘ShellIconOverlayIdentifiers’  (NOTE: only open regedit if your comfortable using it, we don’t need to change anything just taking a peek so you should be ok). This reviled that most of the Shell Icon slots were being taken up by something called Microsoft Groove. Not having a clue what this is I turned to a popular search engine to find out.

Microsoft Groove is the name for their multi-user document collaboration tool, which makes sense that it would need some icon overlays as it is essentially the same thing as Tortoise SVN. I don’t do any online document collaboration so re-searched for how to remove it. The Microsoft knowledge base article advised to remove the feature from Office via the add/remove programs control panel but when I looked I couldn’t find anything that mentioned Groove but after a further search or two I found that it has now been renamed to Microsoft SharePoint Workspace, which was listed in my version of Office. I disabled the feature and restarted my laptop and I now have my overlay icons back.

™

installing subversion at home

We have been using subversion at work for a while now and it is a great way to keep track of developments on a project. So this weekend i decided install it myself for use on my personal projects at home.  This post is a quick step by step guide to installing it yourself at home on your windows based pc. ( I am going to assume your familiar with subversion and know the basics,  if not there are lots of beginner guides on google that will offer more help.

Required Software

The software you are going to need is as follows, click the link to download the latest versions.

Installation

First step is installation. There is no right or wrong way to install the software as once configured everything will be fine, so if you wish just double click everything and install into their default locations. I did things like this….

1) install xampp, there are no complicated options so just follow the prompts to install everything
2) double click on the devel executable to update xampp with the developer extras, if you don’t want all the extra features the developer upgrade offers, you can just copy the two apache modules we require into your xampp folder. The two modules are called mod_dav_svn.so and mod_authz_svn.so and the folder to copy them into is D:\xampp\apache\modules
3) install subversion, again no complicated options just next next next…
4) finally install tortoiseSVN.

Configuration

Once everything is installed we can start to configure things.
First fire up xampp to check everything was installed ok and you can browse localhost and connect to a mysql database (no point continuing if xampp isn’t working at this point).

When you installed subversion it will have asked you for a location to store your repositories , browse to this folder and add a new folder for your project, I deleted the repo folders already in this location as i will have a new sub folder for each project i add e.g D:\xampp\Subversion_repos\project1

Next stop Apache via the xampp control panel (if its still running) and browse to the apache config folder ( e.g. D:\xampp\apache\conf ) open httpd.conf and do a quick search for ‘svn’, uncomment the two LoadModule lines to include the svn modules when apache is started. It should then look like this;
### SVN from XAMPP devel package ###
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

Scroll down to the bottom of the file and add the following…
# Configure Subversion repository
<Location /svn>
DAV svn
SVNPath "D:\xampp\Subversion_repos\project_name"
AuthType Basic
AuthName "subversion repository"
AuthUserFile "D:\xampp\Subversion_repos\passwd"
Require valid-user
</Location>

NOTE: update the file paths to match your installation, you don’t have to add an auth file but if you dont no name will be added to commit notes and anyone will be able to update your code.

Save and close the config file and restart apache to check you haven’t broken it. If apache wont start, browse to the apache\bin folder via command prompt and try running apache.exe manually, any errors will be output to the screen.

while in the \bin folder we can create our password file, use the following command
htpasswd.exe" -c D:\xampp\Subversion_repos\passwords gavin
obviously replace gavin with your username and the file location to whatever you want

Your repo should now be setup and configured. Test it by browsing to the virtual folder you setup e.g. http://127.0.0.1/svn/project_name , you should be prompted for your username and password and then see a page with revision 0 on it, alternatively you can use the repo browser on tortoiseSVN.

All thats left to do now is checkout a folder and start using version control.