是否可以通过反向合并恢复某些SVN修订?

是否可以通过反向合并恢复某些SVN修订?,svn,tortoisesvn,visualsvn-server,Svn,Tortoisesvn,Visualsvn Server,我的电脑上安装了OrtoiseSVN 1.8.7+VisualSVN服务器2.7.7(Windows Server 2012)。最近,我的同事告诉我,当他尝试更新时,在对话框列出几个更新的文件后出现了“XML响应包含无效XML”错误。当他再次更新时,工作副本被锁定,需要清理 我和我的同事使用相同的存储库,但我可以毫无问题地进行更新和提交 经过调查,我在事件查看器中发现磁盘错误,当我打开日志时,我无法看到早于6291的日志。我试图打开文件“project\db\rev\6290”,10~15秒后,

我的电脑上安装了OrtoiseSVN 1.8.7+VisualSVN服务器2.7.7(Windows Server 2012)。最近,我的同事告诉我,当他尝试更新时,在对话框列出几个更新的文件后出现了“XML响应包含无效XML”错误。当他再次更新时,工作副本被锁定,需要清理

我和我的同事使用相同的存储库,但我可以毫无问题地进行更新和提交

经过调查,我在事件查看器中发现磁盘错误,当我打开日志时,我无法看到早于6291的日志。我试图打开文件“project\db\rev\6290”,10~15秒后,内容为空,事件查看器中出现更多磁盘错误。我用robocopy将所有文件复制到另一个磁盘,只有上面的文件失败


我认为这些修订文件类似于diff文件,所以也许我可以使用工作副本(当前为r6295)和project\db\6291~6295“反向合并”到6290?可能吗?

反向合并在这里没有帮助

首先,确定同事所犯错误的根本原因是有意义的。你说你没有得到这个错误,所以它给我们带来了以下问题:

  • 他的工作副本是否已损坏?对工作副本运行
    svn cleanup
    ,查看错误是否仍然存在。尝试用干净的工作副本再现错误也是有意义的,例如运行
    svn checkout
    ,查看是否出现错误

  • 存储库是否已损坏?对存储库运行
    svnadmin verify-q
    ,并检查其输出。我猜在您的情况下,存储库是健康的,但如果不是,那么最简单的解决方案就是从备份中恢复存储库


文件\db\revprops\6290仍然完好无损,因此我可以看到我键入的日志。它提醒我,在该版本中只修改了1个文件

因此,我执行了以下步骤:

  • 将修订版6290~6295的文件从\db\revprops和\db\revs移动到另一个位置进行备份
  • 修改\当前版本并将最新版本设置为6289
  • 再次修改最初在r6290中修改的文件并提交,这样\db\revprops和\db\revs中都会有新的文件6290
  • 将步骤1中备份的文件移回\db\revprops和\db\revs。文件\db\revprops\6290被覆盖,因此原始提交日期也会恢复
  • 修改\当前版本并将最新版本设置回6295
  • 现在,如果我使用Repository Explorer并输入VisualSVN服务器的URL(以https开头),我的同事可以正常更新,并且可以看到所有修订日志

    在我的工作副本中,我看不到早于6291的日志。所以我签出到另一个目录并替换了.svn目录。它仍然只在开始时显示r6291~6295。但几分钟后我再次尝试时,它显示正常。看起来旧数据被缓存在某个地方


    所以问题解决了。但是,这些步骤只有在您还记得在不完整的修订中修改了什么时才有用。

    我刚才遇到了这个问题,我设法解决了这个问题。 让我分享我所做的

    1) 选择您的工作区文件夹,然后右键单击“选择”
    陆龟vn>>设置

    2) 在设置窗口中,选择
    日志缓存>>缓存的存储库

    3) 确保你的svn目录是正确的。最重要的是,你只需要点击你的存储库URL并点击更新按钮。完成后,右键点击清理即可清理你的工作空间


    最好的..

    在我公司的笔记本电脑上运行Kapersky Endpoint Security 10.0时,在启动一个大型源分支的签出的一分钟左右时间内,我反复遇到了这个错误

    暂时禁用Kapersky保护为我解决了问题。

    他的工作副本是否已损坏?不,svn清理没有帮助。存储库是否已损坏?是的,r6290坏了。缺少文件“project\db\rev\6290”的内容。我尝试了“svn验证”,发现r2289也已损坏,并从备份中恢复。但是,我没有r6290的备份。