我的PC上安装了TortoiseSVN 1.8.7 + VisualSVN Server 2.7.7(Windows Server 2012)。最近我的同事在他尝试更新时告诉我," XML响应包含无效的XML"对话框列出了几个更新的文件后出现错误。当他再次更新时,工作副本被锁定并需要清理。
我使用与我的同事相同的存储库,但我可以毫无问题地更新和提交。
经过调查,我在事件查看器中发现了磁盘错误,当我打开日志时,我看不到早于6291的日志。我试图打开文件" project \ db \ rev \ 6290" ,10~15秒后,内容为空,事件查看器中出现更多磁盘错误。我将带有robocopy的所有文件复制到另一个磁盘,只有上面的文件失败。
我认为这些修订文件就像是差异文件,所以也许我可以使用工作副本(目前是r6295)和项目\ db \ 6291~6295到"反向合并"到6290?有可能吗?
答案 0 :(得分:3)
反向合并在这里没有帮助。
首先,确定您的同事得到的错误的根本原因是有意义的。你说你没有得到错误,所以它给我们带来了以下问题:
他的工作副本是否已损坏?对工作副本运行svn cleanup
并查看错误是否仍然存在。尝试用干净的工作副本再现错误也是有意义的,例如运行svn checkout
并查看是否收到错误。
存储库是否已损坏?对存储库运行svnadmin verify -q
并检查其输出。我想在您的情况下,存储库是健康的,但如果不是,那么最简单的解决方案是从备份中恢复存储库。
答案 1 :(得分:3)
在我公司的笔记本电脑上运行Kapersky Endpoint Security 10.0时,我在一分钟左右的时间内反复遇到这个错误,开始检查大型源分支。
暂时禁用Kapersky保护为我解决了这个问题。
答案 2 :(得分:0)
文件\ db \ revprops \ 6290仍然完好无损,所以我可以看到我输入的日志。它提醒我在该版本中只修改了1个文件。
所以我执行了以下步骤:
现在我的同事可以正常更新,如果我使用Repository Explorer并输入VisualSVN Server的URL(以https开头),我可以看到所有修订日志。
我在工作副本中看不到早于6291的日志。所以我检查了另一个目录并替换了.svn目录。它仍然只在开始时显示r6291~6295。但是几分钟后我再次尝试时显示正常。看起来旧的数据被缓存在某个地方。
所以它已经解决了。但是这些步骤仅在您记住在破坏的修订中修改的内容时才有用。
答案 3 :(得分:0)
我刚刚遇到这个问题,我设法解决了这个问题。 让我分享一下我的所作所为。
1)选择您的Workspace文件夹,然后右键单击选择
TortoiseSVN>>Settings
2)在设置窗口中选择Log Caching >> Cached Repositories
3)确保你的svn目录是正确的。最重要的是您只需要点击您的存储库URL并点击更新按钮即可完成直接清理您的工作区,方法是右键单击TortoiseSVN>>CleanUp
。
一切顺利......