问题描述
我的电脑是win7(64位)安装配置svn客户端软件之后,从服务端更新了最新的软件,但是发现在更新的工程中新建的文件(暂时还没有进行版本管理)、锁定的文件、被设置忽视的文件等没有显示相应的覆盖图标,现象截图如下:
从截图中我们看到中间几个文件上没有显示任何的覆盖图片。
解决方法
下面罗列了两种解决方法,大家按照先后顺序,可以先测试确认方法1,如果方法1无法解决问题,就用方法2。
1.按“win+R”快捷键,在打开的“运行”中输入“regedit”,调出注册表信息,然后按“Ctrl+F”快捷键打开搜索弹出框,输入搜索的内容“ShellIconOverlayIdentifiers”,查看Overlay相关注册表信息,我的电脑搜索之后显示如下:
在我的电脑上Tortoise1Normal等Tortoise的都排在前面,如果你的电脑上,这几个不是排在前面,那就重命名一下,在每个选项名字前面加空格或者数字(一定要确保Tortoise的排在前面,因为Windows支持的Overlay Icon是有限的,并且是按照先后顺序来优先显示的),然后重启电脑,再看看之前没显示的覆盖图标是否能正常显示。
2.就像我上面说的,在我的电脑上Tortoise的图标已经排在了前面,但是仍然显示不出来,这个时候,我们再去看一下TortoiseSVN客户端的配置,发现有如下截图的提示:
在Overlay Handlers中的英文已经提示了Unversionde、Needs-lock、Ignored和Locked的overlays将不会显示,在它上面也说明了原因,相应的注册表中有太多的overlay handler,我们点击“Start registry editor”可以直接打开Tortoise注册表相关部分,在打开的注册表列表中将Tortoise除外的用不到的都删掉,删除之后截图如下:
然后,我们重启下电脑再看看之前未显示的图标是否正常显示。通过实测,可以正常显示,截图如下:
我们再来看一下TortoiseSVN客户端的配置,截图如下:
从上面的截图中,我们可以看到,在我们删除了那些不用的多余的注册表信息之后,上面不再提示有Tortoise的图标无法显示了,这样就可以正常使用了。
题外:
这个问题的排查解决过程耗费了一定的时间,遇到这个问题的时候,首先也想到了去检查TortoiseSVN的Setting的配置,但是因为当时有些急躁,只看了Icon Overlays和Icon Set的配置,却落下了Overlay Handlers。其间,在网上也搜了不少的资料,但是都没有解决问题,随着时间的流逝,心里反而更急躁,导致没有办法静下来去分析问题。后来,平静了一下,仔细看了Setting里面的配置,才发现其实在Overlay Handlers里面已经给了充分的提示。
说了些跟此问题无关的内容,也是希望如果大家在以后的工作学习中碰到了什么问题,千万千万不要急躁,静下心来先仔细的分析问题,然后再根据自己分析的结果去查找问题的解决办法,切忌心浮气躁,问题既然出现,就冷静面对,终归会有解决办法!