… pretty strange thing: one day my TortoiseSVN Installation suddenly decided to not display and icon overlays in the Windows Explorer any longer… so I thought “Uninstall it, reboot it, re-install it…” and the problem is solved. But to my surprise, it was not: even with a clean reboot and the installation of the latest version of TortoiseSVN, no icon overlay would show up in the Explorer…
As time went by (and no icons appeared) the original cause of the issue became a bit “lost in time” – from what I found out now (after having solved the issue) it appears that an uninstall of an old version and an upgrade to a more recent version might have been the root cause of the problem…
Here is what happens: Windows uses a registry key to manage the various icon overlays (not only from Tortoise but also from other applications using such functionality). That key is
HKLM\Software\Microsoft\Windows\Current Version\Explorer\ShellIconOverlayIdentifiers
This key has various sub-keys – one for each icon set handled… however, if there are more than 12, Windows cannot handle them all and just ignores some of them (most likely the ones that exceed its max. counter).
In my case, I had more than 12 sub-keys, hence it was not a surprise that certain icons did not show up. So once again, I uninstalled TortoiseSVN and rebootet the system. Now some of the keys that come from TortoiseSVN (like TortoiseConflict, TortoiseAdded, etc.) where gone but there was a remaining set of keys named 1TortoiseSVN to 7TortoiseSVN.
I suppose, these are left-overs of a previous installation of TortoiseSVN (which did not get removed properly when it was uninstalled)… so I went in and deleted those keys manually… then re-installed TortoiseSVN (Version 1.6.7) and examined the registry area again: now I only had the TortoiseSVN Keys with the naming convention TortoiseXXX added in the registry key. All in all, I now have a total of 11 sub-keys under ShellIconOverlayIdentifiers and sure enough, my icons show up in the Explorer now.
Bottomline: if your icons don’t show up, check if the ShellIconOverlayIdentifiers has exceeded its limit…