公众号旧文
为什么你的TortoiseSVN绿色对勾会消失?

正常情况下,TortoiseSVN的图标左下角,会有绿色对勾,或者红色感叹号,展示文件状态,官方名称叫图标重载。
图标重载(Icon Overlays)通常指在文件或文件夹图标上叠加小图标以显示其特定状态,例如 TortoiseSVN 的版本控制状态。

但有的时候,你会突然发现,图标重载莫名其妙的就消失了!
早在十年前,我就曾见到过这一现象,当时以为是BUG,于是就直接重启电脑,或者继续凑合用,直到今天这一现象再次出现,重启电脑没用,我才决定一探究竟。
一、问题的本质:不是 SVN 坏了
很多人第一反应是:是不是 SVN 挂了?
完全不是,右键菜单一切正常,提交、更新都能用。
SVN 本身是正常的,它只是被禁止显示图标了。
而真正的限制,来自 Windows 本身。
二、一个鲜为人知的系统限制
在 Windows 中,有一个几乎没人知道的规则:
系统最多只允许 15 个图标重载(Overlay Icons)同时生效。
也就是说:
- 绿色勾 ✔
- 红色叹号 ❗
这些都属于“Overlay 图标”,而系统最多只显示15种。
一旦超过,后面的直接不显示。
三、谁在偷偷抢位置?
最常见的两个凶手是:
- OneDrive
- 各种 IDE / 同步工具(比如 WorkspaceExt)
这些软件为了显示“同步中”“已同步”等状态,会注册一大堆 Overlay 图标。
例如:
- OneDrive:能占 5~7 个
- 某些开发工具:再占 5~7 个
很快就超过 15 个上限。
四、为什么偏偏是 SVN 消失?
这里有一条很阴险的规则:
Windows 按注册表名称排序,只取前15个。
也就是说:
.WorkspaceExt*
OneDrive*
Tortoise*
👉 排在前面的先用
👉 排在后面的(比如以T开头的SVN)直接没资格显示
这也是为什么:
- SVN 明明没问题
- 但图标就是不见了
五、最简单粗暴的解决办法
因为我不用OneDrive,于是我直接删除 OneDrive 的 Overlay 注册项。
路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
删除:
OneDrive1
OneDrive2
...
然后重启资源管理器。
✔ 图标立刻恢复
六、更优雅一点的做法(不删也能解决)
如果你不想删,也可以给 SVN 的项插队。
比如把:
Tortoise1Normal
改成:
Tortoise1Normal
(前面加空格)
这样它会排到前面,抢到名额。
七、这个问题为什么很多人踩坑?
因为它有三个迷惑点:
- 重启无效(不是缓存问题)
- 功能正常但图标消失(误导排查方向)
- 系统没有任何报错提示
导致很多人折腾半天,甚至重装系统。
八、一句话总结
SVN 图标消失,不是坏了,而是“系统名额满了,被挤掉了”。
如果你也遇到过类似问题,可以顺手看看:
注册表里有没有一堆奇怪的 Overlay 项,
说不定你电脑里,还有更多“偷偷抢位置”的软件。
你可能感兴趣的其他文章: