Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 将subversion存储库还原到workcopy修订版_Svn_Version Control - Fatal编程技术网

Svn 将subversion存储库还原到workcopy修订版

Svn 将subversion存储库还原到workcopy修订版,svn,version-control,Svn,Version Control,前几天,我的subversion虚拟机死机(主机硬件融化),我不得不恢复vmware服务器映像的备份副本。恢复进行得很顺利,VM在新主机上再次运行 我的问题是,我恢复的存储库版本为60,但我在电脑上的工作副本版本为66。当我尝试提交我的工作副本时,会收到以下错误消息 svn: Commit failed (details follow): svn: No such revision 61 强制提交并将subversion升级到与我的工作副本相同版本的最佳方法是什么?我认为您的旧工作副本无法“教

前几天,我的subversion虚拟机死机(主机硬件融化),我不得不恢复vmware服务器映像的备份副本。恢复进行得很顺利,VM在新主机上再次运行

我的问题是,我恢复的存储库版本为60,但我在电脑上的工作副本版本为66。当我尝试提交我的工作副本时,会收到以下错误消息

svn: Commit failed (details follow):
svn: No such revision 61

强制提交并将subversion升级到与我的工作副本相同版本的最佳方法是什么?

我认为您的旧工作副本无法“教导”新SVN服务器缺少的版本(61-66)

我建议:

  • 查看新的工作副本
  • SVN将旧工作副本导出到新工作副本上,从而使用更改更新文件
  • SVN提交更改

  • 此时,新的SVN服务器将是最新的。

    从恢复的存储库重新签出。将现有工作副本中的更改复制到新签出,然后提交

    您不想复制.svn目录。像rsync这样的工具可以帮助同步到两个目录

    rsync --del --exclude=".svn"
    

    如果存在很多差异,例如新文件和已删除文件,则可能会有所帮助。

    如果没有备份,这种方法比公认的备份和运行签出的方法快得多。此外,rsync不是windows操作系统的本机

  • (可选)创建“损坏”签出的备份副本
  • 删除损坏的svn签出的顶层的.svn文件夹
  • 对损坏的签出运行SVN签出
  • (可选)SVN提交更改
  • 另一种解决方案可能是使用SQLLite读取SVN.db文件并手动更新修订号

    参考: