我在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在重新启动后运行,这让我感到紧张。

为什么会发生这种情况或如何避免呢?

评论

CHKDSK的输出是什么?您可能会遇到更严重的问题。

您甚至如何安装它?它在安装过程中崩溃并烧毁。 :-(

我也遇到了这个问题-我的病毒扫描程序是McAfee VirusScan Enterprise 8.7.0i。有趣的是,它似乎并不取决于病毒扫描程序的确切品牌:在Web上,可以为使用Microsoft Security Essentials和[Kaspersky] [2]的用户找到类似的错误报告。 [2]:forum.kaspersky.com/…

Blech,我有同样的问题,并且排除svn + TortoiseSVN进程和svn工作目录没有帮助。如果我没有完全关闭实时监视,则会不断损坏.svn目录。糟透了。

我们商店中所有运行Win 7 64位的开发人员都遇到相同的问题。

#1 楼

这是Window 7中的一个已知错误,计划在SP 1中修复:

http://subversion.wandisco.com/blogs/windows-7-bogus-errorfilecorrupt-error-.html

现在有可用的修补程序:

http://support.microsoft.com/kb/982927/en-ushttp://support.microsoft.com/kb/ 2498472 / zh-cn

评论


我遇到了同样的问题,并尝试安装HotFix。它没有解决我的问题。但是,禁用我的防病毒软件可以解决此问题。

– Brian Bacy
10-10-25在20:07

+1。修补程序为我解决了问题-事先禁用AV无法解决问题。

–约书亚·麦金农
2010-10-27 22:46

显然,此修补程序的链接已损坏。

–坦率的V
2011-3-7在19:55

...而且它似乎在SP1中对我来说不是固定的。有人听说过此事吗?

–詹姆斯·克劳利(James Crowley)
2011年3月24日23:45

由于某种原因,他们更改了KB号。我更新了OP的答案以反映新位置。

– SiegeX
2011年4月11日23:40

#2 楼

我遇到了同样的问题(使用MS Security Essentials)。我“认为”这可能与监视程序活动的AV程序有关。看来MS SE“认为”一个恶意脚本正在运行并将其停止。

我尝试在“实时保护”中禁用“计算机上的监视文件和程序活动”,解决问题的方法。 TortoiseSVN \ bin \ TortoiseProc.exe“”“ C:\ Program Files \ TortoiseSVN \ bin \ TSVNCache.exe”

到目前为止,这两种方法都对我有用。 (自从我更改了选项以来,我就能够始终进行较大的签出。)我更喜欢第二种,因此MS SE无论如何仍会监视潜在的恶意活动。

评论


不,请参见tinyurl.com/w7corrupt

–马特·麦克亨利(Matt McHenry)
2010-2-11在13:38

非常感谢。我在Windows XP中拥有卡巴斯基安全软件,您的解决方案也对我有用。

–samir105
2011年12月2日,下午6:32

#3 楼

这就是Windows Indexing Service的全部工作。请参阅SVN:TortoiseSVN无法移动。文件或目录已损坏且无法读取(Windows 7)。

评论


我删除了AV实时保护,但偶尔还是得到了。这有帮助。

–orip
2010年2月1日于16:16

是。另请参阅Cragly的答案以获取简洁的逐步修复。

–克里斯托弗·布伦斯(Christopher Bruns)
2011-2-13在15:45

#4 楼

我遇到了同样的问题,但是使用32位TortoiseSVN(在Win7 x64上为1.6.6)。

禁用/更改防病毒功能没有帮助。降级到TortoiseSVN 1.5.10都没有(这只是导致无法再读取已检出的存储库目录的结果。

帮助配置Windows Indexing Service使其不为我的SVN /源代码目录。我在这里找到了提示:http://schleichermann.wordpress.com/2009/12/09/svn-tortoisesvn-cant-move-the-file-or-directory-is-corrupted-and-unread- Windows-7 /

评论


我尝试禁用我的卡巴斯基,但没有帮助。但是,为我的工作副本禁用索引服务可以解决此问题。

–哈希
2010年1月3日15:45

#5 楼

这是我发现的一种解决方案,可以像对待对待一样工作。这是SVN的摘录:TortoiseSVN无法移动..文件或目录已损坏且不可读(Windows 7)。


单击开始菜单按钮,然后在文本框中单击开始搜索。
键入“ Windows索引”
单击搜索中应出现的“索引选项”(如果将“查看方式”更改为“也可以在控制面板中找到”)大号或小号图标。不过,我不确定它的类别是什么。
出现“索引选项”框时,单击“修改”按钮。这将弹出“索引位置”对话框,您应该在其中看到一些“位置”列表,其中的硬盘驱动器在列表中。
将所需的硬盘驱动器扩展到目录的根文件夹。您正在使用SVN的文件,并确保未选中该框。即使我在上一篇文章中描述了文件夹选项,也已在这里为我检查了它。另请注意,即使将其展开,硬盘驱动器也很可能会折叠起来,并且未选中其复选框。文件夹和此处的每个文件夹都在“索引位置”对话框中进行了检查。取消选中此处的适当文件夹(这是我的SVN项目的工作副本所在的位置)后,一切似乎都按我期望的方式工作。问题。

#6 楼

文章“在移动文件时获取ERROR_FILE_CORRUPT ...结果:重新启动时出现Chkdsk(可复制并确认)”解释了为什么会发生这种情况,并且其中的示例程序准确地显示了如何在Windows 7上获得此错误。找到解决此问题的方法。

[更新]
此问题已在Windows 7 Service Pack 1和Windows Server 2008R2 Service Pack 1中得到解决。

#7 楼

这是问题“文件或目录已损坏且无法读取。” Windows 7或Vista即将推出,因为您已打开索引服务。

要解决此问题,请打开svn目录或其父目录的索引服务

暂时关闭索引编制:
这是怎么做?
1)转到控制面板-索引编制选项
2)单击暂停。默认情况下,这会在接下来的15分钟内暂停索引编制。
3)现在执行提交。您大声承诺接下来的15分钟

评论


索引服务器不会导致此问题。任何监视更改的应用程序目录都可能导致此问题。

–伯特·赫伊本
2011年9月13日上午10:16

#8 楼

我们遇到了同样的问题。如果您安装了病毒扫描程序,则可能是引起此问题的原因。尝试在结帐之前禁用扫描。

http://groups.google.com/group/tortoisesvn/browse_thread/thread/4d8bdcea4fd14fce?pli=1

对于我们,我们只遇到了很大的更新/签出问题。平均或较小的更新都可以正常工作。我不知道为什么会这样,但是我完全可以看到与病毒扫描程序相关的问题以这种方式不一致。

评论


可能会的。我通过TortoiseSVN和命令行SVN遇到了问题。此外,无论是小型提交还是大型更新,我都经历过。有趣的是,通常在遇到此错误后,我可以重复执行完全相同的操作,并且该操作将毫无问题地完成。

–David Alpert
09-10-29在20:10

#9 楼

我在McAfee 8.7i上也遇到了同样的问题。

#10 楼

我得到的是完全相同的错误,但更新时又遇到了另一个错误(“找不到指定的文件”)。 >我已将文件从“地图”重命名为“地图”并提交。提交工作正常,但检出失败,出现“目录已损坏”错误。

就我而言,已通过进入Repo-Browser并删除文件“ map”进行了修复。因此,我仍然在版本控制中保留了原始的未重命名文件(“地图”)。从那时起,结帐工作正常。

#11 楼

我正在运行Panda Cloud Anti-Virus并收到此错误-如上所述,禁用此错误后,该错误完全消失了。

#12 楼

不知道您是否仍然遇到此问题,但是我发现我的Google搜索中没有找到解决方案。我在博客上发布了具体说明。希望这可以帮助。

#13 楼

我有一个目录-C:\ Users \\ workspace \-在这里签出项目。

我发现,如果我进入Windows 7中的索引选项,然后单击“修改”,出现一个新的弹出窗口。从此弹出窗口中,我可以看到C驱动器以及展开和折叠箭头。我只是取消选中了我的工作区目录。大概应该禁用该目录的索引。

我仍然遇到错误,但是我认为这可能是解决方案的有用信息。注意:无论如何我都会因索引暂停而出现错误,因此可能还有另一个因素。

评论


我终于解决了我的问题。这种方法似乎有所帮助,但是我发现在提交单个模块目录(在项目中提交Drupal模块)时出现的错误更少。有一些离群值只是拒绝提交。我在这里的方法是将这些模块目录从项目SVN(即已签出的项目)中导出,将目录从项目中删除,进行提交,然后将导出的模块复制回并再次提交。尽管我的版本历史记录因此丢失/中断,但是这停止了错误。

–亚伦·牛顿
2010-6-5 15:07



#14 楼

您可以使用Tortoise SVN中的“清理”从此问题中恢复。找到给您带来问题的目录,然后深入其中。您将看到标记为未版本控制的文件。如果在包含目录中运行cleanup命令,它将暂时解决该问题。谢谢你!