公众号旧文

为什么你的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

(前面加空格)

这样它会排到前面,抢到名额。

七、这个问题为什么很多人踩坑?

因为它有三个迷惑点:

  1. 重启无效(不是缓存问题)
  2. 功能正常但图标消失(误导排查方向)
  3. 系统没有任何报错提示

导致很多人折腾半天,甚至重装系统。

八、一句话总结

SVN 图标消失,不是坏了,而是“系统名额满了,被挤掉了”。

如果你也遇到过类似问题,可以顺手看看:

注册表里有没有一堆奇怪的 Overlay 项,

说不定你电脑里,还有更多“偷偷抢位置”的软件。


你可能感兴趣的其他文章:

人类为什么没有进化出生殖隔离?

尿液无菌,为什么小便后还要洗手?

当《荷塘月色》都被判定为AI,我们还该相信AIGC检测吗?

为什么我敢随便Kill进程?——幂等与可重入,普通人也能用上的工程哲学