Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TortoiseXXX: knowing which SCM software is used in a specific development project

I have TortoiseSVN, TortoiseGit and TortoiseHg installed on my system. As expected, but unfortunately, these tools use the same icons to indicate the version control status for a specific folder. Thus, when I open my software projects folder in Windows Explorer, I cannot immediately see which SCM software that is used with a specific solution/project:

TortoiseXXX icons

I can of course check for the existence of .svn, .git and .hg sub-folders, but it would be more efficient if the SCM would be indicated on the main folder icon or as a tooltip when hovering the mouse pointer over the folder.

Does anyone know if there exists a shell extension providing such functionality?

like image 438
Anders Gustafsson Avatar asked Oct 05 '11 10:10

Anders Gustafsson


3 Answers

The reason for that is quite simple (see the help files of TortoiseSVN and TortoiseGit, search for Icon Overlays):

In fact, you may find that not all of these icons are used on your system. This is because the number of overlays allowed by Windows is very limited and if you are also using an old version of TortoiseCVS, then there are not enough overlay slots available. TortoiseSVN tries to be a “Good Citizen (TM)” and limits its use of overlays to give other apps a chance too.

Now that there are more Tortoise clients around (TortoiseCVS, TortoiseHG, ...) the icon limit becomes a real problem. To work around this, the TortoiseSVN project introduced a common shared icon set, loaded as a DLL, which can be used by all Tortoise clients. Check with your client provider to see if this has been integrated yet :-)

So even if you change the overlay style for one of the tools, it may be that all the others follow. If you are working under XP (I have checked it with Windows 7, and there it does not work any more), you may have the option detailed in TortoiseSVN Help > 4.7.2: TortoiseSVN Columns In Windows Explorer

There you may show additional columns in your windows explorer, perhaps that is an option for you.

like image 98
mliebelt Avatar answered Nov 20 '22 00:11

mliebelt


The problem is that all Tortoise clients use the same shared component for showing the overlay icons - TortoiseOverlays. Windows only has a limited amount of free slots for icon overlay handlers (around 12 - the rest is used by the system itself). This is a problem for Tortoise clients because they usually need a lot of those handlers to show the different states of files and folders. If a user has more than one Tortoise client installed, that's already enough to hit the system limit and some overlays won't show up anymore.

The purpose of the TortoiseOverlays project is to provide a common icon overlay handler for all the Tortoise clients. This reduces the risk of hitting the system limit. The only downside is that all Tortoise clients will have the very same overlay icons, which means the users won't immediately see from the overlays which version control system is handling a certain folder of file. But this is still far better than not be able to show an overlay at all because of the system limit.

like image 3
Perevoznyk Avatar answered Nov 20 '22 02:11

Perevoznyk


As others already noted, there's a very good reason for all Tortoise clients to use the same icons. So I won't go into the details about that anymore.

But why don't you customize the top folder icons yourself? You could use a distinguished icon (not just an overlay but a full icon!) for every working copy folder.

That way, you could immediately recognize what version control system each working copy is using (assuming you're using one icon to specify git working copies, one for svn working copies and another one for hg working copies).

like image 2
Stefan Avatar answered Nov 20 '22 02:11

Stefan