TortoiseSVN文件夹及文件图标不显示问题解决方法(兼容xp、window7与64位)
GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!
【 如果你想靠AI翻身,你先需要一个靠谱的工具! 】
最近遇到TortoiseSVN图标(如上图:增加文件图标、文件同步完成图标等)不显示问题,网上找到的解决方法试了很多都无法真正解决,最后总结了一下,找到了终极解决方案,当然此方案也有弊端,接下来我们就研究、分析、解决这个问题。
打开资源管理器,怎么都看不到已经同步的文件夹显示已同步图标。到SVN的设置面板,也找不到任何相关的解决办法。
不过有一天,使用DW浏览文件,定位到文件,这时候发现了已同步图标。这就更让人疑惑了,但是最起码证明,图标文件没有丢失,只是因为某种原因,没办法显示出来,那就有可能是软件冲突了。
可是近期七七八八装了不少东西,到底是哪个的原因呢?
不明原因,所以,百度google之,发现还是挺多人遇到这情况的,现摘录如下:
“开始以为是TortoiseSVN坏了,于是重装,但结果还是一样。于是找了好多资料,终于发现症结所在--原来是Windows对覆盖图标类型的数据 限制的原因。Windows最多只允许15个覆盖图标,它自己又用了几个,结果给用户用的就11个左右了(这个限制一直都Windows 7都没有放宽,真不知微软是怎么想的)。TortoiseSVN标准会使用7个(普通图标、已修改图标、冲突指示图标、已删除图标、新增文件图标、忽略图 标、未版本化图标等),这样剩下可用的就少之又少了。如果再安装了网盘软件(如:快盘,Dropbox等),那就更惨了,它们各自又会使用3个左右的覆盖 图标,这样,覆盖图标当然远远不够用了。
那么,覆盖图标的设置保存在Windows的哪个地方呢?如果有超过11个的覆盖图标,Windows如何选择显示哪些屏蔽哪些呢?下面继续…
所有应用程序的覆盖图标都需要在注册表“HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionExplorerShellIconOverlayIdentifiers”下面增加一个项目,当需要显示覆盖图标 时,Windows会按照项目名称的字母顺利依次查询在这些项目里所指示的接口,以检测是否有覆盖图标,当检测到11个有效的接口后,Windows就会 自动停止继续向下检测,这样,后来的覆盖图标就不会显示了。
知道原理了,解决问题就好办了。我们可以分析一下在这个注册表项下的所有项目,看哪些覆盖图标是需要的,哪些是不需要的,把不需要的项目的名称改一下,前 面加个“z”,这样,这个表项按字母排序就自动排到最后面了。哪些是不需要的呢?比如:网盘的“正在同步图标”就没什么用,可以去掉。其它的,可以自己看 着办了。
如果你进行调整后,把TortoiseSVN的所有覆盖图标全部提前,但TortoiseSVN仍然不会显示忽略图标、未版本化图标。为什么呢?研 究了TortoiseSVN的源代码才发现,原来TortoiseSVN会自己分析在ShellIconOverlayIdentifiers中注册的覆 盖图标数,如果注册了太多,TortoiseSVN会自动屏蔽一些无关紧要的图标,目的是让别人软件的覆盖图标尽可能有机会显示。也就是说,如果你希望, 显示TortoiseSVN的这些它自己认为“无关紧要”的覆盖图标,你需要删除一些别的程序的图标,把覆盖图标的总数减小到13个以下,这 时,TortoiseSVN才会正常显示忽略图标、未版本化图标等无关紧要的图标。”
----------------------- 分割线 -------------------------------------------------------
对于我自己机器, 看了下注册表,ShellIconOverlayIdentifiers的目录树如下:
!!!BoxFlashSyncExt1
!!!BoxFlashSyncExt2
!!!BoxFlashSyncExt3
!!!BoxFlashSyncExt4
!IconOverlay_Conflict
!IconOverlay_ForbidSync
!IconOverlay_LargeFile
!IconOverlay_Synced
!IconOverlay_Syncing
.KLive_OverlayIcon_ForbidSync
.KLive_OverlayIcon_Synced
.KLive_OverlayIcon_Syncing
1TortoiseNormal
2TortoiseModified
360UDiskGuard Icon Overlay
3TortoiseConflict
4TortoiseLocked
5TortoiseReadOnly
...
...
怪不显示不出SVN的图标呢,在SVN要overlay icon前面有好多个野蛮的icon,酷盘、115 、快盘三个网盘也是想尽了千方百计让自己的overlay icon能够被显示出来。居然连感叹号,空格都用上了。
酷盘对应的overlayicon为:
!!!BoxFlashSyncExt1
!!!BoxFlashSyncExt2
!!!BoxFlashSyncExt3
!!!BoxFlashSyncExt4
115 对应的overlayicon为:
!IconOverlay_Conflict
!IconOverlay_ForbidSync
!IconOverlay_LargeFile
!IconOverlay_Synced
!IconOverlay_Syncing
快盘对应的overlayicon为:
.KLive_OverlayIcon_ForbidSync
.KLive_OverlayIcon_Synced
.KLive_OverlayIcon_Syncing
既然知道原理了,那就挨个把网盘干掉吧。
其中:115网盘属于半绿色安装,因为只有Sync115Ext.dll (在C:Users用户名AppDataRoaming115Box) 被注册,它正在shell overlay icon对应的dll,因此,只需要将它反注册一下就可以了:regsvr32 /u Sync115Ext.dll。
经过卸载,ShellIconOverlayIdentifiers的目录树终于干净了,目录树如下:
1TortoiseNormal
2TortoiseModified
360UDiskGuard Icon Overlay
3TortoiseConflict
4TortoiseLocked
5TortoiseReadOnly
...
...
最后,重启一下,或注销一下,SVN图标终于重建天日。
最后终极解决方案:
在网上有部分解决方案是更改SVN图标名称,让其排序靠前来解决此问题,但是在window xp下我通过此方法无法解决此问题,猜测应该是即使SVN图标排序靠前,但是SVN仍然会将自己的图标优先权让给其他软件,所以最有效的解决方案是删除所有其他软件的图标,只留下SVN的图标,但是此方法的弊端是360云盘、百度云盘等其他软件无法显示图标,所以具体如何解决此方案,还是大家自己权衡吧!
1、 到C:Windows文件夹下,打开regedit.exe
2、 Ctrl+F,搜索“ShellIconOverlayIdentifiers”
3、 把ShellIconOverlayIdentifiers下面的节点非SVN的全部删除即可。
最终效果如下图
3、删除完其他软件的节点后,可以重启电脑或者在任务管理器中结束explorer.exe进程(如下图),
然后在任务管理器中重新开启explorer.exe进程,如下图,单击任务管理器->文件->新建任务(运行...
然后进入下图窗口,
在打开中输入:C:WINDOWSexplorer.exe 单击确定即可!
完成上述操作,再次打开SVN客户端目录,刷新就可以看到图标了,祝你好运!
Win7 64位下TortoiseSVN的文件夹及文件SVN图标不显示正确解决方法
最近为了代码版本管理,安装了SVN服务端与客户端,安装TortoiseSVN之后,功能正常,但是就是文件夹或文件夹的左下角就是不显示SVN图标,之前在XP上是正常显示的。通过网络查找,发现以下方法可以解决问题。
Windows Explorer Shell 支持的 Overlay Icon 最多 15 个,Windows 自身使用了 4 个,只剩 11 个可扩展使用,可能这 11 个位置部分可能被其他的软件占用了,导致 TortoiseSVN的某些重要的图标不显示了。不过,可以重新命名以调整 Tortoise 图标名称的字母顺序,让SVN的排在前面,Windows 内部就是按图标名称的字母顺序来优先显示的。
第一:
输入:win+R,(开始->运行)输入regedit.exe,调出注册表管理器
(1)按下Ctrl+F,在注册表里搜索 ShellIconOverlayIdentifiers
(2)或是查找: HKEY_LOCAL_MACHINE -> SOFTWARE -> Microsoft -> Windows -> CurrentVersion -> Explorer -> ShellIconOverlayIdentifiers
第二:将TortoiseAdded、TortoiseConflict……TortoiseUnversioned 右键->重命名,如命名为:0TortoiseAdded、1TortoiseConflict……8TortoiseUnversioned。如下图:
第三: 重启或是注销电脑之后,最后文件夹连接服务器后有了图标
相关文章
电脑蓝屏代码memory_management怎么解决? 系统蓝屏原因
电脑突然蓝屏,显示memory management,上来就被这串英文镇住了,蓝屏memory management是什么?为什么会出现蓝屏memory management呢?,详细请看下文介绍2024-08-01如何解决wpcap.dll丢失? 电脑wpcap.dll文件破损的修复方法
如果文件wpcap.dll丢失有什么办法可以解决,出现wpcap.dll丢失的的原因又是因为什么呢?今天就大家了解一下wpcap.dll文件,希望能够你给在解决wpcap.dll文件的问题上有所帮2024-08-01pasmutility.dll缺失怎么办? 电脑pasmutility.dll丢失的修复技巧
如果你在打开某些程序或者游戏时遇到了“缺失pasmutility.dll”的错误提示,不要惊慌,这是一个非常普遍的问题,下面我们就来看看详细的教程2024-08-01svcapicall.dll丢失怎么解决? 电脑提示svcapicall.dll文件损坏的修复技
在使用电脑的过程中,有时会遇到各种各样的问题,其中之一就是dll文件丢失的情况,特别是当出现svcapicall.dll丢失的问题时,很多人可能会束手无策,,下面我们就来看看这个2024-07-30ser32.dll丢失怎么办? 电脑提示ser32.dll文件丢失破损的修复方法
如果出现user32.dll丢失的情况,可能会影响操作系统的正常运行,今天这篇文章本文将介绍电脑缺失user32.dll丢失的解决办法,详细说明解决步骤2024-07-30msstdfmt.dll文件损坏丢失怎么办? 快速的修复msstdfmt.dll丢失的方法
你是否曾经碰到过弄丢msstdfmt.dll文件的情况呢?如果你遇到此问题,不必惊慌,在本文中,将为您介绍几种修复msstdfmt.dll文件的方法,帮助您解决这一问题2024-07-30gdiplus.dll丢失怎么办? 电脑提示gdiplus.dll丢失损坏的多种修复方法
电脑提示gdiplus.dll 文件丢失,出现这个问题可能是某些应用程序无法正常运行,特别是那些依赖于图形和图像处理的应用程序,下面我们就来看看详细的解决办法2024-07-30gdi42.dll丢失怎么办? 电脑gdi42.dll丢失的多种修复方法
出现提示缺少dll文件问题的大部分原因是因该文件被木马病毒破坏导致系统程序找不到此文件,出现错误提示框,或程序无法运行,下面我们就来看看系统提示缺失gdi42.dll文件的2024-07-30Quarantine是什么文件 McAfee杀毒软件里的Quarantine文件是病毒库吗
今天在检查服务器的时候发现c盘根目录有一个Quarantine文件夹,里面的文件达到了20多G,本来c盘只剩下 2G左右了,经常如下操作解决了问题2024-07-10电脑插四根内存条无法开机怎么办? 主板插四根内存不能开机的解决办法
电脑主板插上四根内存条无法开机的原因可能是内存条不兼容、接触不良、电源问题或主板问题,当然还有其他原因,详细请看下文介绍2024-06-25
最新评论