Tortoisesvn overwrite icon disappears and Retrieval Method
Recently I found that the overwrite icon of tortoisesvn disappears. When I open the resource manager, I cannot see the synchronized icon in the synchronized folder. No related solutions can be found on the svn settings panel.
However, one day, I used DW to browse the file and locate the file. At this time, I found the synchronization icon. This is even more confusing, but at least it proves that the icon file is not lost, but for some reason, it cannot be displayed, and it may be a software conflict.
But I have installed a lot of things in the past seven to eight. Why?
The reason is unknown. Therefore, Baidu and Google found that many people encountered this situation. The following is an excerpt:
"I thought tortoisesvn was broken, so I reinstalled it, but the result was the same. So I found a lot of information and finally found out the crux of the problem-the original reason for Windows's data restrictions on the overwrite icon type. Windows allows up to 15 overwrite icons, and uses several more icons. As a result, about 11 overwrite icons are used for users (this restriction has never been relaxed in Windows 7, I really don't know what Microsoft thinks ). The tortoisesvn standard uses seven (Common icons, modified icons, conflicting indicator icons, deleted icons, new file icons, ignored icons, unversioned icons, etc ), in this way, there will be fewer available ones. If you install the Network Disk software (such as the fast disk and Dropbox), it will be even worse. They will use three or more overwrite icons respectively, overwriting icons are far from enough.
In this case, where is the overwrite icon saved in windows? If there are more than 11 overwriting icons, how does one choose to display and shield them? Continue...
The override icon of all applications must be added to the Registry "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ shelliconoverlayidentifiers". To display the override icon, windows will query the interfaces in these projects in sequence by project name to check whether there are overwriting icons. After 11 valid interfaces are detected, windows will automatically stop the downward detection, so that the subsequent overwrite icon will not be displayed.
Once you know the principle, you can solve the problem. We can analyze all the projects under this registry key to see which overwrite icons are required and which are not required. Change the name of the project that is not needed, add "Z" to the front, so that the table items are sorted alphabetically and automatically ranked to the end. What is not needed? For example, the "synchronization icon" of the online storage is useless and can be removed. Others can be done by yourself.
If you make the adjustment, all the overwrite icons of tortoisesvn are put in advance, but tortoisesvn still does not display the ignore icon or unversioned icon. Why? After studying the source code of tortoisesvn, we found that tortoisesvn will analyze the number of overwrite icons registered in shelliconoverlayidentifiers. If too many icons are registered, tortoisesvn will automatically block unnecessary icons, the purpose is to make the overlay icons of others' software display as much as possible. That is to say, if you want to display the overwrite icons that tortoisesvn thinks are "irrelevant", You need to delete some program icons, to reduce the total number of overwrite icons to less than 13, tortoisesvn will normally display ignored icons, unversioned icons and other irrelevant icons."
---------------------------------------------------------------------------------- Split line ---------------------------------------------------------------------------------------------
For my own machine, check the registry. The directory tree of shelliconoverlayidentifiers is as follows:
!!! Boxflashsyncext1
!!! Boxflashsyncext2
!!! Boxflashsyncext3
!!! Boxflashsyncext4
! Iconoverlay_conflict
! Iconoverlay_forbidsync
! Iconoverlay_largefile
! Iconoverlay_synced
! Iconoverlay_syncing
. Klive_overlayicon_forbidsync
. Klive_overlayicon_synced
. Klive_overlayicon_syncing
1 tortoisenormal
udiskguard icon overlay
3 tortoiseconflict
4 tortoiselocked
5 tortoisereadonly
...
...
It's strange that the svn icon is not displayed. There are many brutal icons in front of the svn overlay icon, the three network disks, cool drive, 115, and kubernetes, do everything possible to display their overlay icons. The exclamation point is used with spaces.
The overlayicon corresponding to the cool disk is:
!!! Boxflashsyncext1
!!! Boxflashsyncext2
!!! Boxflashsyncext3
!!! Boxflashsyncext4
The overlayicon corresponding to 115 is:
! Iconoverlay_conflict
! Iconoverlay_forbidsync
! Iconoverlay_largefile
! Iconoverlay_synced
! Iconoverlay_syncing
The overlayicon corresponding to the disk is:
. Klive_overlayicon_forbidsync
. Klive_overlayicon_synced
. Klive_overlayicon_syncing
Now that you know the principle, take out the Network Disk one by one.
Among them: 115 network disk is semi-green, because only sync115ext. DLL (in c: \ Users \ User Name \ appdata \ roaming \ 115 \ box) is registered and is in the DLL corresponding to shell overlay icon. Therefore, you only need to register it with regsvr32/u sync115ext. DLL.
After uninstalling, the directory tree of shelliconoverlayidentifiers is finally clean. The directory tree is as follows:
1 tortoisenormal
2 tortoisemodified
udiskguard icon overlay
3 tortoiseconflict
4 tortoiselocked
5 tortoisereadonly
...
...
Finally, restart or log out, And the svn icon is re-built.