最近遇到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客户端目录,刷新就可以看到图标了,祝你好运!

TortoiseSVN文件夹及文件图标不显示解决方法(兼容Window xp、window7)的更多相关文章

  1. TortoiseSVN文件夹及文件图标不显示解决方法

              由于自己的电脑是win7(64位)的,系统安装TortoiseSVN之后,其他的功能都能正常的使用,但是就是文件夹或文件夹的左下角就是不显示图标,这个问题前一段时间就遇到了(那个时 ...

  2. [转]TortoiseSVN文件夹及文件图标不显示解决方法

    FROM : http://blog.csdn.net/lishehe/article/details/8257545 由于自己的电脑是win7(64位)的,系统安装TortoiseSVN之后,其他的 ...

  3. TortoiseSVN文件夹及文件图标不显示解决方法(转发)

    地址:http://blog.csdn.net/lishehe/article/details/8257545 由于自己的电脑是win7(64位)的,系统安装TortoiseSVN之后,其他的功能都能 ...

  4. TortoiseSVN文件夹及文件图标不显示解决方法 [转]

    由于自己的电脑是win7(64位)的,系统安装TortoiseSVN之后,其他的功能都能正常的使用,但是就是文件夹或文件夹的左下角就是不显示图 标,这个问题前一段时间就遇到了(那个时候没找到合适的答案 ...

  5. TortoiseSVN文件夹及文件图标不显示解决方法---20150515

    由于自己的电脑是win7(64位)的,系统安装TortoiseSVN之后,其他的功能都能正常的使用,但是就是文件夹或文件夹的左下角就是不显示图标,这个问题前一段时间就遇到了(那个时候没找到合适的答案) ...

  6. 配置NGINX支持中文URL 中文文件名称或文件夹404无法訪问的解决方法

    NGINX不须要象apache那样要单独载入支持中文模块. # cat /etc/sysconfig/i18n  LANG="en_US.UTF-8" SYSFONT=" ...

  7. TortoiseSVN文件夹及文件状态图标不显示解决方法

    win8 64位系统,原本svn是好用的,安装了klive金山快盘后,svn图标都不显示了.最后通过修改注册表解决: win+R调出运行框,输入regedit,打开注册表编辑器. HKEY_LOCAL ...

  8. win10 tortoiseSVN文件夹及文件图标不显示解决方法

    对于SVN来说,因为每个图标都代表着不同的含义,预示着不同的状态,是指示灯的作用,如果没有正确的图标很可能造成数据的丢失等. 输入:win+R,输入regedit,调出注册表信息,按下Ctrl+F,在 ...

  9. Android studio移动项目到另外一个文件夹,结果不能安装的解决方法

    删除.gradle , .idea , build 三个文件夹即可

随机推荐

  1. ACM 五一杭电赛码"BestCoder"杯中国大学生程序设计冠军赛小记

    对于这项曾经热爱的竞赛,不得不说这是我最后一年参加ACM比赛了,所以要珍惜每一次比赛的机会. 五一去杭电参加了赛码"BestCoder"杯中国大学生程序设计冠军赛,去的队伍包括了今 ...

  2. div横排放置对齐问题;block,inline,inline-block区别

    1.左右两个div都设置为float:left,如果右边div没有设置宽度,右边div的宽度会根据div里的内容自动调整. 缺点:不易控制 2.只有左侧div设置为float:left,右侧div设置 ...

  3. javascript进阶修炼之一——javascript必备操做

    动态选择方法及属性 使用方括号操作符,比点操作符功能更强大.因为可以在[ ]方括号中使用任何代表成员名称的内容访问对象.包括字面量,保存着成员名称的变量,名称组合,三元操作符.所有这些内容都会被处理成 ...

  4. 卡诺模型(KANO Model)

    卡诺模型是一种研究影响顾客满意度因素的方法,在软件工程中可以用来辅助做需求分析和优化产品的质量. 作为一种方法,卡诺模型将某一种特性的存在程度作为横坐标,越大表示某个功能或特性做得越多,越小则表示做得 ...

  5. hadoop入门手册1:hadoop【2.7.1】【多节点】集群配置【必知配置知识1】

    问题导读 1.说说你对集群配置的认识?2.集群配置的配置项你了解多少?3.下面内容让你对集群的配置有了什么新的认识? 目的 目的1:这个文档描述了如何安装配置hadoop集群,从几个节点到上千节点.为 ...

  6. 给select增加placeholder技巧

    转自:http://stackoverflow.com/questions/5805059/how-do-i-make-a-placeholder-for-a-select-box/8442831 使 ...

  7. 《DSP using MATLAB》示例Example7.3

    由图上可以看出,与幅度谱对应的相位谱是分段线性函数,而与振幅谱对应的相位谱是真正线性函数. 幅度谱和振幅谱的区别也很明显.

  8. java 乐观锁CAS

    乐观锁是一种思想,本身代码里并没有lock或synchronized关键字进行修饰.而是采用一种version. 即先从数据库中查询一条记录得到version值,在更新这条记录时在where条件中对这 ...

  9. node 升级

    npm install -g n   npm update –g    

  10. bzoj4557侦查守卫

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4557 树形DP.和“河流”有点像,也有一个类似“承诺”的东西. 就是用 f 表示当前节点向下 ...