我在 64 位 Windows 7 Professional 上使用 64 位 TortoiseSVN。签出或更新时常会失败,并出现如下错误消息。
Error: Can't move
Error: '[...]\\.svn\tmp\entries'
Error: to
Error: '[...]\\.svn\entries':
Error: The file or directory is corrupted and unreadable.
然后重启后 CHKDSK 运行,这让我很紧张。
为什么会发生这种情况或者我该如何避免这种情况?
答案1
这是 Windows 7 中的一个已知错误,计划在 SP 1 中修复:
http://subversion.wandisco.com/blogs/windows-7-bogus-errorfilecorrupt-error-.html
现在有一个可用的修补程序:
http://support.microsoft.com/kb/982927/en-us
http://support.microsoft.com/kb/2498472/en-us
答案2
我遇到了同样的问题(使用 MS Security Essentials)。我“认为”这可能与 AV 程序监控程序活动有关。似乎 MS SE“认为”有恶意脚本正在运行,并阻止了它。
我尝试在“实时保护”中禁用“监控计算机上的文件和程序活动”,似乎解决了这个问题。
从那里,我做了一些其他测试,发现我可以保留该选项,并且通过配置“排除的进程”以包含“C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe”“C:\Program Files\TortoiseSVN\bin\TSVNCache.exe”仍然可以成功签出
到目前为止,这两种方法似乎对我都有效。(自从我更改了选项后,我就能够持续进行大额结账。)我更喜欢第二种方法,这样 MS SE 仍然可以监控潜在的恶意活动。
答案3
这都是 Windows 的功劳索引服务。 看SVN:TortoiseSVN 无法移动..文件或目录已损坏且无法读取(Windows 7)。
答案4
以下是我找到的解决这个问题的方法,效果非常好。摘自SVN:TortoiseSVN 无法移动..文件或目录已损坏且无法读取(Windows 7)。
- 单击开始菜单按钮,然后单击文本框开始搜索。
- 输入“windows index”
- 单击搜索中出现的“索引选项”(如果您更改了查看方式到大的或者小图标。不过我不确定它属于哪一类)
- 当索引选项框出现时,单击调整按钮。这将弹出一个“索引位置”对话框,您将在其中看到一些“位置”的列表,其中您的硬盘驱动器位于列表中。
- 展开所需的硬盘,一直到使用 SVN 的文件的根文件夹,并确保未选中该框。这里已为我选中,尽管文件夹选项与我在上一篇文章中描述的一样。还请注意,硬盘很可能已折叠,并且其框未选中,即使您展开它,您可能会发现已选中的框。
例如,我的项目位于我的C:\Users\Name\Documents\VS2008\Projects\
文件夹中,并且这里的每个文件夹都在“索引位置”对话框中进行了检查。取消选中此处的相应文件夹(这是我的 SVN 项目工作副本所在的文件夹)后,一切似乎都按我预期的方式运行。
我希望这能帮助那些仍然受此严重问题困扰的人。