在使用TortoiseSVN这个免费开源客户端的的过程中,用户常常会遇到很多使用问题,比如说,不少TortoiseSVN用户都会咨询与TortoiseSVN覆盖图标相关的问题,比如说:为什么没有覆盖图标,为什么图标只在本地磁盘上显示等,那么,跟随华军小编一起了解一下吧。
TortoiseSVN
TortoiseSVN覆盖图标相关问题与解决方法:
为什么没有覆盖图标?
你是否在安装之后重启电脑?你竟然现在都还没重启。TortoiseSVN是windows资源管理器的Shell扩展, 他将会和资源管理器一起启动。
去TSVN的设置界面然后至少要激活图标覆盖的修改驱动功能,安装程序会自动为当前用户激活图标覆盖功能(不会自动为其他用户激活……) 但是由于你不是通过安装用户来使用 TSVN,所以你需要手工激活图标覆盖功能。
不是所有的图标都被覆盖!
你或许会发现在你的系统上不是所有的图标都被使用,这是因为Windows只允许最多15个图标被覆盖。Windows使用了其中4个,剩下的11则被其他的应用程序所使用。如果你同事在使用 TortoiseCVS,那么就不会有足够的位置,那么TortoiseSVN设法做一个“好公民(TM)”?限制了图标的使用把更多的机会留给其他的应用。
一般来说,修改和冲突总是被加载和可看见的。
如果可能,删除会被加载,但如果没有足够的位置会使用修改状态。
如果可能,只读会被加载,但如果没有足够的位置会使用一般状态。
只有少于加载13个图标覆盖,锁定才会被加载。否则会使用一般状态。
只有少于加载14个图标覆盖,添加才会被加载。否则会使用修改状态
为什么图标只在本地磁盘上显示,而不能在网络磁盘上显示?
Go to the Settings -》 Look and Feel -》 Icon Overlays 为你想看到的覆盖图标检查驱动器类型。要注意到,使用图标覆盖会使整个系统都慢下来,不仅仅是TortoiseSVN。
为什么图标覆盖会在SUBSTed驱动器上被弄乱?
如果你的工作拷贝在SUBST驱动器上,图标可能会被弄乱。
出现这个错误是因为缓存会设法在同一时间在两个不同位置读取状态。但是这些位置事实上却是相同的,所以在同一时间的相同工作拷贝读取了两个状态。
有一个简单的办法解决这一问题:只需要在显示覆盖图标的位置排除掉原始目录(settings-》icon overlays-》exclude paths)。
比如说,如果你映射stationfolderwc到g: ,将位置“stationfolderwc*”加入到排除模式中。
为什么图标覆盖显示错误状态?
有些时候你发现图标覆盖并不能反映文件或者文件夹的正确状态。通常,敲 F5 就可以使图标回到正确的状态(你可能需要等上几秒,直到缓存重新找到正确的状态)。
资源管理器左边的树状图完全是另外一回事。它不会更新图标,不管你敲多少次F5。这是因为资源管理器并不能让TortoiseSVN访问。
一个简单的说明:树状图的显示始终来自于整个资源管理器,包括网路驱动器和其他的命名空间的扩展,由于这些会非常缓慢(比如一个慢的网络驱动器),资源管理器不能一直请求图标覆盖更新图标,即使你告诉资源管理器文件夹已经修改,应该依照图标覆盖来更新图标,它仍然不会工作。首先检查文件夹是否真的已经修改,如果资源管理器认为文件夹真的已经修改,才会更新这些图标。
现在,由于文件夹的Subversion状态和它自身状态没有关系,文件夹自身并没有被真正的修改(修改的是一些在.svn文件夹里的文件),因此资源管理器并不能更新图标。
这里有一些让资源管理器甚至是资源管理器左侧的文件树刷新图标的小技巧和应急方案,但这些技巧和应急方案显然不能实施可可都工作。
一个通常使用的小技巧,但是它很慢,TortoiseSVN也不能立刻使用,它将使得整个系统缓慢许多。但是你可以通过工作拷贝管理员账号使用‘cleanup’命令手动激活。当清除命令执行完成以后,你不得不等待几秒让目录树更新这些图标。
为什么图标覆盖有时会变成一个随机图案?
Windows图标缓存有很多bug。可以使用下面的方法解决这个问题:
安装Microsoft的TweakUI 通过选项来重新创建图标。
或者增加图标缓存。到HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionExplorer 增加一个新的字符串 Max Cached Icons。他的默认值为500 - 尝试增加到2048(见微软知识库的Q132668)。
或者在Windows目录下删除ShellIconCache文件,然后重启计算机。
TortoiseSVN 1.3.0以后的版本,你可以在命令行调用TortoiseProc重建图标缓存,TortoiseProc.exe /command:rebuildiconcache