原文 http://blog.csdn.net/woyaowenzi/article/details/7538053
TortoiseSVN覆盖图标消失及寻回方法
最近发现TortoiseSVN的覆盖图标消失了,打开资源管理器,怎么都看不到已经同步的文件夹显示已同步图标。到SVN的设置面板,也找不到任何相关的解决办法。
不过有一天,使用DW浏览文件,定位到文件,这时候发现了已同步图标。这就更让人疑惑了,但是最起码证明,图标文件没有丢失,只是因为某种原因,没办法显示出来,那就有可能是软件冲突了。
可是近期七七八八装了不少东西,到底是哪个的原因呢?
不明原因,所以,百度google之,发现还是挺多人遇到这情况的,现摘录如下:
“开始以为是TortoiseSVN坏了,于是重装,但结果还是一样。于是找了好多资料,终于发现症结所在--原来是Windows对覆盖图标类型的数据限制的原因。Windows最多只允许15个覆盖图标,它自己又用了几个,结果给用户用的就11个左右了(这个限制一直都Windows 7都没有放宽,真不知微软是怎么想的)。TortoiseSVN标准会使用7个(普通图标、已修改图标、冲突指示图标、已删除图标、新增文件图标、忽略图标、未版本化图标等),这样剩下可用的就少之又少了。如果再安装了网盘软件(如:快盘,Dropbox等),那就更惨了,它们各自又会使用3个左右的覆盖图标,这样,覆盖图标当然远远不够用了。
那么,覆盖图标的设置保存在Windows的哪个地方呢?如果有超过11个的覆盖图标,Windows如何选择显示哪些屏蔽哪些呢?下面继续…
所有应用程序的覆盖图标都需要在注册表“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers”下面增加一个项目,当需要显示覆盖图标时,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\用户名\AppData\Roaming\115\Box) 被注册,它正在shell overlay icon对应的dll,因此,只需要将它反注册一下就可以了:regsvr32 /u Sync115Ext.dll。
经过卸载,ShellIconOverlayIdentifiers的目录树终于干净了,目录树如下:
1TortoiseNormal
2TortoiseModified
360UDiskGuard Icon Overlay
3TortoiseConflict
4TortoiseLocked
5TortoiseReadOnly
...
分享到:
相关推荐
操作失误导致桌面图标变成SVN图标,运行此文件即可解决!
eclipse插件svn图标详细含义 eclipse插件svn图标是svn插件在eclipse中的图标表示法,用于表示svn版本控制系统中的文件状态。这些图标可以帮助开发者快速了解文件的版本控制状态,避免不必要的提交和更新操作。 1. ...
这可以通过`svn cleanup`命令完成,它能解除锁定、恢复损坏的文件,并清除其他可能导致问题的状态。在命令行中,进入你的工作副本目录,然后运行`svn cleanup`。 删除SVN图标关联: Windows系统中,某些文件类型...
svn把代码当道到桌面上 发现桌面其他软件图标 被svn感染 可用此脚本在桌面上执行下 去除svn占用
在提供的"TortoiseSVN ICons SVN 图标全集"压缩包中,包含的"Icons"文件夹很可能是这些SVG或者PNG格式的图标集合,便于开发者或系统管理员自定义他们的环境,以统一视觉风格或增强可读性。通过解压并导入这些图标,...
svn图标含义 SVN图标是Subversion版本控制系统中的一种图形化表示方式,用于表示文件或文件夹的状态。了解这些图标的含义对于开发者来说非常重要,可以快速地了解文件或文件夹的状态,从而提高开发效率。 灰色向右...
### Eclipse SVN 图标详解 Eclipse 是一款非常流行的开源集成开发环境(IDE),它支持多种插件以增强其功能,其中 SVN(Subversion)插件就是其中之一。SVN 是一个集中式的版本控制系统,用于管理软件项目的源代码...
版本控制
然而,有时用户可能会遇到svn同步图标消失的问题,这通常意味着Eclipse中的svn插件或者相关配置出现了问题。本文将深入探讨这个问题,并提供可能的解决方案。 首先,svn图标消失可能是因为Eclipse的svn插件,如...
自己编写的Tortoise SVN CVS 图标修复软件,可以恢复资源管理器上的SVN,CVS图标显示问题。
软件开发SVN的使用方法和注意事项-Eclipse中SVN图标含义 在软件开发中,SVN(Subversion)是一种非常流行的版本控制系统,它可以帮助开发者们更好地管理代码、协作开发和追踪变更。Eclipse 是一个流行的集成开发...
### SVN同步图标含义详解 #### 一、SVN同步图标基本含义 SVN(Subversion)是一款非常流行的版本控制系统,在...此外,当遇到SVN图标显示异常时,根据上述方法进行排查和解决,可以帮助我们及时恢复正常的工作流程。
软件开发SVN的使用方法和注意事项-Eclipse中SVN图标含义实用.pdf
- 如果在 Myeclipse 或 Eclipse 中使用 SVN 插件作为版本控制器,并且突然有一天 project 下的 files 的版本号和提示图标都不见了,可以尝试以下步骤解决: 1. 删除 workspace 下的 `.metadata` 文件夹,然后重新...
svn 图标不显示的解决方案 svn 图标不显示是 TortoiseSVN 软件中常见的一个问题,本文将提供四种解决方案,并最终找到了成功的解决方法。 解决方法一:升级最新版本 升级 TortoiseSVN 到最新版本,以解决可能存在...
如果你的SVN中的文档被误删除了,那么你可以通过下面的方法进行恢复。 1.首先我们在文件夹内创建一个演示用的文档。 2.在文件夹内单击鼠标右键点击“SVN commit...”,弹出commit to确认对话框,选择要提交的文件...
【myEclipse svn配置及使用图标的说明】 myEclipse是一款强大的Java集成开发环境,而Subversion(简称svn)是一种版本控制系统,用于管理代码版本,便于团队协作开发。myEclipse集成了svn功能,使得开发者可以方便...
### SVN备份与恢复知识点 #### 一、SVN备份与恢复概述 Subversion(简称SVN)是一种广泛使用的版本控制系统,用于管理软件开发过程中的源代码版本控制。SVN通过创建项目的不同版本来帮助开发者追踪代码的变化历史...
本文将深入探讨Oracle数据库的备份与恢复策略以及如何进行SVN的备份恢复。 首先,让我们关注Oracle数据库备份。Oracle提供了多种备份方法,包括物理备份和逻辑备份。物理备份通常涉及使用RMAN(恢复管理器)工具,...