Windows 7 上的 64 位 TortoiseSVN 显示“文件或目录已损坏且无法读取”,然后运行 ​​chkdsk

Windows 7 上的 64 位 TortoiseSVN 显示“文件或目录已损坏且无法读取”,然后运行 ​​chkdsk

我在 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

答案4

以下是我找到的解决这个问题的方法,效果非常好。摘自SVN:TortoiseSVN 无法移动..文件或目录已损坏且无法读取(Windows 7)

  1. 单击开始菜单按钮,然后单击文本框开始搜索。
  2. 输入“windows index”
  3. 单击搜索中出现的“索引选项”(如果您更改了查看方式大的或者小图标。不过我不确定它属于哪一类)
  4. 当索引选项框出现时,单击调整按钮。这将弹出一个“索引位置”对话框,您将在其中看到一些“位置”的列表,其中您的硬盘驱动器位于列表中。
  5. 展开所需的硬盘,一直到使用 SVN 的文件的根文件夹,并确保未选中该框。这里已为我选中,尽管文件夹选项与我在上一篇文章中描述的一样。还请注意,硬盘很可能已折叠,并且其框未选中,即使您展开它,您可能会发现已选中的框。

例如,我的项目位于我的C:\Users\Name\Documents\VS2008\Projects\文件夹中,并且这里的每个文件夹都在“索引位置”对话框中进行了检查。取消选中此处的相应文件夹(这是我的 SVN 项目工作副本所在的文件夹)后,一切似乎都按我预期的方式运行。

我希望这能帮助那些仍然受此严重问题困扰的人。

相关内容