Managing overlay icons for Dropbox and TortoiseSVN and TortoiseGit

I imagine like many involved in web development, I rely heavily on a number of version control applications: I use Dropbox, Subversion (SVN) and Git.

For years I’ve used the TortoiseSVN client for Windows. It integrates with the Windows Explorer shell making it quick and easy to manage your version controlled code within Explorer.

I like that I don’t need a separate full-blown application that acts as an interface between the code on my PC and the SVN repository; I like that I don’t need to use a command prompt; but I love that TortoiseSVN adds overlay icons to tell me the state of each file (is it up to date, changed, added, etc.?).

These folders are all up to date, and in sync with the SVN repository.
These folders are all up to date, and in sync with the SVN repository.

Recently I’ve started using Git at work and so I’ve also installed TortoiseGit which does something similar.

This is the Bootstrap repo cloned to my PC.
This is the Bootstrap repo cloned to my PC.

And of course Dropbox does the same: it shows you which files have been synchronised with the cloud, and which are in the process of uploading.

My Dropbox folders are up-to-date, synchronized successfully with the Cloud
My Dropbox folders are up-to-date, synchronized successfully with the Cloud

The problem

The problem, though, is that each of these applications uses multiple overlay icons but Windows only uses the first 15.

TortoiseSVN and TortoiseGit both use the same nine icons:

Nine folder, each has an icon on top of it such as ticks, crosses or pluses.
TortoiseSVN and TortoiseGit both use nine icons.

Dropbox uses eight icon overlays. If you have OneDrive installed (which you will if you use Windows 8 or above) then it uses three. And Windows itself uses a few to indicate offline files or enhanced storage.

That’s 22 icon overlays, and like I said: Windows only uses the first 15.

So, inevitably you end up with some icons missing, and depending on which these are it can make life just that little bit harder when trying to figure out quickly whether a file is in sync or not, or whether it’s not even been added.

That means you need to make a choice about which icons you want to use and which you don’t.

How to fix it

The most straight-forward way to do this is by editing the Windows Registry.

The icon overlays can be found in the following key:

Computer \ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ ShellIconOverlayIdentifiers

It turns out you can safely rename the folders which will reorder the icons. The folders are just containers for the real information contained within them.

1. Backup

Export (backup) the ShellIconOverlayIdentifiers folder in its entirety, in case you need to restore it later.

2. Prioritise which icons you need

My current preference is for the following:

  1. 1TortoiseNormal
  2. 2TortoiseModified
  3. 3TortoiseConflict
  4. 6TortoiseDeleted
  5. 7TortoiseAdded
  6. 8TortoiseIgnored
  7. 9TortoiseUnversioned
  8. DropboxExt1 (green Synced)
  9. DropboxExt2 (blue In progress)
  10. DropboxExt5 (red Sync problem)
  11. DropboxExt7 (grey Folder not synchronizing)
  12. EnhancedStorageShell
  13. SkyDrivePro1 (ErrorConflict)
  14. SkyDrivePro2 (SyncInProgress)
  15. SkyDrivePro3 (InSync)

You can use whatever naming convention you prefer. I rename the original folder names with a number prefix and an underscore, e.g. 01_1TortoiseNormal. Folders that I want to drop to the bottom I prefix with a simple x, e.g. x5TortoiseReadOnly.

UPDATE: Some users are reporting that they prefix with a space as this appears to be the trick that OneDrive/SkyDrive has used.

In regedit it looks like this, with the unprioritized icons dropping to the bottom of the list.

List of registry keys
List of registry keys

3. Restart Explorer

  1. Close any Windows Explorer windows.
  2. Press Ctrl+Shift+Esc to open Task Manager.
  3. Look for Windows Explorer listed under “Background processes”.
  4. Right-click it and select “Restart”.

Your taskbar will disappear a couple of times as the Explorer process is restarted, but you should now see all the overlay icons you want within your folders.

(Currently I’m having issues with OneDrive — formerly SkyDrive — but as I don’t rely on it for too much I’m not that bothered, to be honest.)

VisualSVN Server for Windows

VisualSVN Server Standard edition
VisualSVN Server Standard Edition

Having been using Subversion (SVN) for file version control at work for the last couple of years I really wanted to start using it at home for my own development projects. However, in my experience, it’s not exactly the easiest application to install if you don’t have much experience with SVN.

I was about to give up when I discovered VisualSVN Server for Windows which allows you to quickly and easily install a fully-functional Subversion server on your PC.

Installation

Installation was as simple as downloading a Windows .msi file and following the on-screen installation instructions. The installation file is modest too, at just over 4 MB.

During the installation process you are invited to specify where you would like to store your code repositories. The recommendation was to leave it to the default value (C:\Repositories) but I’ve stored my repositories on a separate partition so that they are not lost if I need to reinstall Windows on C.

You also have an option to change the port that VisualSVN is installed on, which is important if you’re running any other kind of Web server on your PC, such as XAMPP.

VisualSVN Server Manager

One of the things that I found trickiest about installing SVN manually was the lack of graphical user interface (GUI).  I’m a Windows guy at heart: I need my little pictures!

VisualSVN Server lives up to its name by providing a GUI management console (which is a Windows MMC snap-in) which gives you access to:

  • Start and stop the server
  • Server URL (to view repository in your browser)
  • Logging information
  • User and group information
  • Repositories
  • Version information about VisualSVN

That’s the screenshot at the top of this article.

Access your repository using TortoiseSVN

Just like any other installation of SVN you can access your repository files using the TortoiseSVN client for Windows.

Access your repository via a browser

The trickiest thing that I found about trying to install SVN manually was trying to integrate the Web server features of the application so that I could view my repositories using my Web browser.

This is set-up automatically in VisualSVN Server; I’ve changed the port that I access it on because I’m running a localhost Web server for development purposes.

View of VisualSVN repository in a browser
View of VisualSVN repository in a browser

Reinstallation

When I last reinstalled my operating system, upgrading from Windows XP to Windows 7 I did wonder if I’d get my SVN repositories back easily.

The good news is that it was simple! During the installation I told the installer to use the existing repository location and it picked up the version-controlled files already there.

Conclusion

If you want a really simple Subversion server for learning, testing, development then I can thoroughly recommend VisualSVN Server for Windows.

  • Follow the VisualSVN team on Twitter: @visualsvn

svn://localhost

Yay! Having just discovered Subversion at work, I’ve now also installed it at home, along with TortoiseSVN.

Here’s what I did:

  1. Installed Subversion 1.4.6
  2. Installed TortoiseSVN 1.4.8
  3. Created local folder for storing repositories: H:svn
  4. Created Windows service for Subversion: sc create svn.local binpath= “”c:program filessubversionbinsvnserve.exe” –service –root H:svn” displayname= “Subversion” depend= Tcpip
  5. Used services.msc to start new Subversion service and set it to start automatically
  6. Create repository with svnadmin create –f-type fsfs gareth
  7. Created password for svnserve — see TortoiseSVN help section 3.2.4 for details
  8. Right-click desktop, select TortoiseSVN > Repo-browser, enter svn://localhost/svn/gareth
  9. Enter username and password, as created at step 7
  10. Create new folders and start importing data into the repository
  11. Er…
  12. That’s it!

Fun, fun, fun … really easy to setup and an invaluable tool. I really wish that I’d checked it out sooner.

Learning Subversion

Having effectively moved PCs three times in the last year I’m feeling a little insecure about the safety of my code, so today I’m learning how to use Subversion.

Subversion (SVN) is a version control application that allows me to store my code on a server while working on a local copy. I can then commit any changes made and SVN will keep a track of all the changes I’ve made, so that I can roll-back to an earlier version if need be.

I’m finding the free PDF version of the O’Reilly book Version Control with Subversion very useful. It’s not nearly as complicated as I’d feared it might be.