TortoiseSVN中的Windows资源管理器图标需要很长时间才能刷新到正确的状态


69

提交文件后,图标将停留在修改状态或等待提交很长时间。有什么方法可以强制刷新以确保我看到的图标是文件的正确状态?


9
F5不起作用。。。
leora

11
我从未观察到Windows资源管理器中的F5 /刷新和此后的图标及时更新之间存在一致的关联。有时,它可以工作,但不超过没有刷新就出现正确图标状态的时间。但这并不能阻止我习惯性地打F5徒劳……
Rex Miller 2010年

3
原因是F5刷新了您的显示,但是对实际更新SVN缓存绝对没有任何作用。F5会更新覆盖图的唯一原因是在两次F5按压之间是否已更新SVN缓存。显然,我也太强迫地按下它了,只是说:)
goldenratio

有趣的是,使用svn cleanup "C:\myfolder"它有时不会刷新任何内容,并且在上下文菜单上使用Tortoise cleanup时,它总是可以工作。:-/
JuniorMayhé,2011年

Answers:


58

常见问题解答中所述:尝试运行清理。


原始问题中的立即提交后场景不是问题,但值得提醒的是,清理将还原未提交的本地更改。
凯文·康登

15
对不起,不行。清理不会还原未提交的本地更改。除非您在清除对话框中明确选中该框。
Stefan

1
很抱歉,即使在Tortoise 1.8.6中,清理仍需要很长时间才能刷新外壳覆盖物。我必须进行F5清理,转到父文件夹,然后再次进入。然后,一些次后图标覆盖正确显示
迪欧蓬

即使Dry Run选中该框也可以工作-谢谢!
2015年

36

您可以尝试以下方法:

TortoiseSVN->设置->图标叠加,将状态缓存设置为“外壳”而不是“默认”

参考 到帮助。

外壳程序缓存直接在外壳程序扩展DLL文件中完成,但仅适用于当前可见的文件夹。每次导航到另一个文件夹时,都会再次获取状态信息。

优点:仅需要很少的内存(大约1 MB RAM),并且可以实时显示状态。

缺点:由于仅缓存一个文件夹,因此叠加层不会递归显示状态。对于大型工作副本,与使用默认缓存相比,在资源管理器中显示文件夹可能需要更多时间。该mime-type列也不可用。


7
“不要递归显示状态。”表示它几乎变得无用:我的意思是我位于包含已修改文件并显示为绿色的文件夹的图标上,我必须进入该文件夹才能找到它。虽然svn状态使我在不到一秒钟的时间内就获得了整个树中所有修改过的文件
user1708042

@ user1708042可以,但是如果没有其他所有失败,那么它不是没有图标的,它是唯一的选择。
Jason C

如果切换到“外壳”,请关闭“设置”窗口,然后再切换回“默认”,图标叠加层将返回。
亚伦

13

我在这里发布了类似的答案但是为您省去了打开链接的麻烦,我在这里引用它:

我不确定这是否与您的问题完全相关,但我发现TortoiseSVN在处理其中包含大量文件的存储库时有时会非常慢。这在占用大量内存的tsvncache.exe进程中表现出来。tsvncache.exe进程扫描文件和文件夹,并将熟悉的图标与它们相关联,以表示已更改/忽略的文件。

一个解决方法是告诉Tortoise SVN仅缓存您正在使用的文件夹,而忽略其他文件夹。为此,右键单击项目文件夹,然后选择TortoiseSVN-> Settings-> Icon Overlays。我将“排除”路径设置为c:*和d:*(基本上忽略所有固定驱动器),并将“包含”路径设置为我的项目文件夹。


2
这应该是公认的答案,因为它确实可以解决问题,而不仅仅是修补问题。
安德烈·菲格雷多

6

最近偶然发现了这个问题。找到了一个简短而肮脏的解决方法,已证明是100%有效的。

右键单击并选择“新建”->“文本文档”,在希望刷新图标的文件夹中创建一个空文本文件。图标应该可以神奇地刷新。当然,请删除空文本文件。


4

关闭Windows资源管理器窗口并重新打开帮助。大多数情况下,图标停留在Windows资源管理器的树状部分。

而且没有-清理F5没有帮助。我想这与资源管理器有关,与TortoiseSVN没有关系。


1
或上/下一个文件夹,然后再返回。
Finglas'2

2

如果要检查是否已完成所有操作,则有“ svn检查修改”菜单选项。如果按F5,它将进行更新并向您显示真相。如果让您烦恼的是文件夹图标已过时,则可以将其关闭。


1

我不知道是否相关,但是 F5似乎有帮助...有时。

我对TortoiseSVN的经验是,性能以某种方式直接与已检出目录的数量相关。您可以设置某些TortoiseSVN属性中必须包含/排除的目录,以加快此过程。


1

Windows的“刷新”(F5)最适合我(好吧,我也很强迫地按下它),但是有时窗口根本没有任何图标覆盖。在这些情况下,无论选择哪种选项,包括“刷新Shell叠加层”,“清理”都无济于事。

我遵循了gekowa的提示:

TortoiseSVN->设置->图标叠加,将状态缓存设置为“外壳”而不是“默认”

下次我打开窗口时,覆盖层是正确的。窗口打开花费了几秒钟,但是之后一切都变得正确了。我将状态缓存重新设置为“ Shell”,并且时间间隔也消失了。

以前,我已将状态缓存设置为“无”,但这无济于事。


1

我有一个类似的问题。我创建了一个新分支,然后签出到新的工作副本。新的工作副本没有应有的图标覆盖。什么都没出现。仅在TSVNCache.exe通过Windows任务管理器终止进程后,图标才正确显示。


似乎是一个很好的(如果很脏)的解决方法。通过将缓存设置为Shell,您不会失去性能,同时,您可以通过杀死随时刷新图标TSVNCache.exe
Haroldo_OK 2012年

这已删除了所有的乌龟图标,而不是使它们变成绿色。
2013年

1

转到要在其下更新图标的目录。用鼠标右键单击该目录,然后在SVN上下文浏览器菜单中选择“清理”,然后按F5。它应该为您刷新该目录下的所有SVN图标。它对我有用。

我正在处理一个包含数千个文件的大型项目,并且在计算机上运行SVN的“清理”非常快,因此大部分时间都是在根级别进行的,因此刷新了所有图标。对于较慢的计算机,如果没有足够的内存,则可能需要一段时间才能对大型项目进行完全清理。在这种情况下,您可以仅刷新所需的目录。

上面有人说,“清理”将还原您的本地更改,但这不一定是正确的。它不会为我恢复...此外,我不认为这是您应该启用的选项。有时您的本地SVN缓存被损坏,清理会为您修复它们……这通常是进行提交等的必要。

希望能帮助到你。

PS。我的Tortoise SVN版本是:TortoiseSVN 1.6.16,内部版本21511-64位


1

F5也不适合我,但我发现了一种有效的F5方法。

假设您有一个名为projects的文件夹,并且有一个名为mysubversionedproject的文件夹。如果您展开资源管理器树,您将看到

  • 专案
    • 我的颠覆项目

如果您现在按,F5它可能不起作用,正如许多人所注意到的那样。

但是,如果您关闭此树以便仅看到

  • 专案

(并确保您还单击了项目,以便实际选择了它)
F5,然后再次 按然后再展开树,则它可能会起作用。

对我来说,mysubversionedproject现在具有应有的覆盖图标。


0

一个解决方法是告诉Tortoise SVN仅缓存您正在使用的文件夹,而忽略其他文件夹。为此,右键单击项目文件夹,然后选择TortoiseSVN-> Settings-> Icon Overlays。我将“排除”路径设置为c:*和d:*(基本上忽略所有固定驱动器),并且将“包含”路径设置为我的项目文件夹。

我所做的基本上与Malice相同,但是我取消了对固定驱动器的检查,并将C:\ Users \ YOURNAMEHERE \ Documents *添加到了include目录。对我来说效果很好,因为我所有的项目都在此文件夹下。


0

以noodle7的答案为基础:另一个选择是更改:

TortoiseSVN->设置->图标叠加,将状态缓存设置为“默认”而不是“外壳”

这对我有用。TortoiseSVN 1.9。


0

因此...在所有这些答案/技巧/解决方案中,老实说,您要做的就是使用下拉菜单切换到另一个现有分支-右键单击> Git分支,然后再切换回您正在使用的分支,以便查看状态图标已更新。瞧!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.