【问题标题】:Restoring a subversion repository to workcopy revision将 subversion 存储库恢复为工作副本修订
【发布时间】:2015-08-25 10:28:03
【问题描述】:

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

我遇到的问题是我恢复的存储库是修订版 60,但我的 PC 上的工作副本是 66。当我尝试提交我的工作副本时,我收到以下错误消息。

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

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

【问题讨论】:

    标签: svn version-control


    【解决方案1】:

    我认为您的旧工作副本不能“教”新的 SVN 服务器有关缺少的修订 (61-66)。

    我建议:

    1. 查看新的工作副本
    2. SVN 将您的旧工作副本导出到新工作副本,从而使用您的更改更新文件
    3. SVN 提交更改

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

    【讨论】:

      【解决方案2】:

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

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

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

      如果有很多不同之处,例如新文件和已删除文件,svn_load_dirs.pl 可能会有所帮助。

      【讨论】:

        【解决方案3】:

        如果没有备份,这种方法比让结帐恢复并运行的公认方法要快得多。此外,rsync 不是 Windows 操作系统的本机。

        1. (可选)创建“损坏”结帐的备份副本。
        2. 删除损坏的 SVN 结帐顶层的 .svn 文件夹
        3. 对损坏的结帐运行 SVN Checkout。
        4. (可选)SVN 提交更改

        使用 SQLLite 读取 SVN .db 文件并手动更新修订号可能是一种替代解决方案。

        参考:How can I create SVN versioning on top of an existing project?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-06-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-14
          • 2012-01-28
          • 2014-03-25
          相关资源
          最近更新 更多