解决SVN文件不显示绿色小钩图标问题
- 1 相关知识
- 1.1 SVN基础
- 1.2 SVN有哪些优点和缺点
- 2 解决办法
- 2.1 方法一:修改状态缓存设置
- 2.2 方法二:修改注册表(好用)
1 相关知识
1.1 SVN基础
SVN是Subversion的缩写,是一个开放源代码的版本控制系统。这个系统主要管理随着时间而改变的数据,这些数据被保存在一个中央资料档案库(repository)中,就像一个普通的文件服务器,但不同的是它会记录每一次文件的变动。
这个系统主要用于多个人共同开发同一个项目,实现共享资源,最终实现集中式的管理。它不只可以管理程序源代码,还可以管理任何类型的文件,如:文本,图片,视频等等。
SVN的工作原理采取客户端/服务器模式。在服务器的版本库中保存项目文件的各个版本,所有参与协同开发的程序员在自己本地电脑保存一个工作副本。SVN支持程序员将副本更新到服务器端的最新版本,也支持将本地副本的最新改变更新到服务器端,而且后面的更新不会覆盖前面的更新,而作为一个新的版本保存下来——SVN甚至支持将本地工作副本恢复为服务器端保存的某一个历史版本。
1.2 SVN有哪些优点和缺点
SVN的优点主要包括:
- 集中式管理:SVN在服务端配置管理方式,客户端只需同步提交即可,使用方便,操作简单。
- 代码安全:在服务端统一控制访问权限,利用代码的安全管理。
- 代码一致性高:所有的代码以服务端为准,保证了代码的一致性。
- 项目备份方便:节省硬盘空间。
- 易于管理:集中式服务器更能保证安全性,管理方便,逻辑明确,适合一般人的思维习惯。
- 支持大文件:支持二进制文件,更容易处理大文件。
- 空目录支持:允许一个文件有任意多的可命名属性,会关注所有的文件类型。
SVN的缺点:
- 服务器性能要求高:所有操作都需要通过服务端进行同步,可能导致服务器性能要求比较高。如果服务器宕机了就无法提交代码了。
- 分支管理不灵活:svn分支是一个完整的目录,且这个目录拥有完整的实际文件,这些操作都是在服务端进行同步的,不是本地化操作,如果要删除分支,也是需要将远程的分支进行删除,这会导致大家都得同步。
- 需要联网:如果无法连接到服务器就无法提交代码。
- 数据库容量暴增:服务器容量太大,数据库容易暴增。
2 解决办法
2.1 方法一:修改状态缓存设置
原因:状态缓存设置问题造成的。
在SVN拉取的任意项目中,鼠标右键,选择TortoiseSVN—Settings(设置)进入。
改为以下的设置。
对照应为:选择图标叠加(Icon overlays),将状态缓存(Status cache)原先默认是Default的改成Shell即可,点击【应用】【确定】按钮,如图所示。
这种方案修改的效果比较弱,实现起来比较慢,如果这个方案不能解决,尽快使用第二种方案。
2.2 方法二:修改注册表(好用)
- 调出注册表
按住键盘windows+R
(键盘按键),输入:regedit
根据路径HKEY_LOCAL_MACHINE->SOFTWARE->Microsoft->Windows->CurrentVersion->Explorer->ShellIconOverlayIdentifiers
打开后发现Tortoise 系列(Tortoise1Normal,Tortoise2Modified等)前面有好多项,Tortoise系列排到最后,难怪不显示。现在的任务就是把它们提到前面了,修改一下它们的名字就好(第一项的前缀好多空格,说明空格的字符排序在数字前面),需要在Tortoise1Normal以及Tortoise2Modified等名称前面添加一串空格,按F5
保存,最后发现Tortoise系列跑到最前面了(我们想要的效果)。
修改之后的效果:
- 按住【F5】保存即可看到上图效果。
- 重启电脑即可发现,小绿标出来了。