【问题标题】:Recovering from a slightly out of date subversion repository backup从稍微过时的 Subversion 存储库备份中恢复
【发布时间】:2010-09-08 13:32:57
【问题描述】:

我不久前遇到的一个问题,我从来没有找到一个好的解决方案......

假设您有一个从修订版 7500 的 subversion 签出的工作副本,并且保存当前存储库的磁盘死了。你有一个版本库的备份,比如说,修订版 7450。恢复存储库备份很容易,但是任何尝试使用工作副本来处理它都会出错,指出版本库中不存在修订版 7500。

签入一个巨大的修订以使存储库的内容与工作副本的内容相匹配并使工作副本恢复到功能状态的最佳方法是什么?

(理想情况下,我想要比检查一个全新的工作副本然后手动复制所有文件更容易的东西 - 我认为当时工作副本用于配置管理服务器,所以这是一个真正的不得不检查干净的工作副本很痛苦)

【问题讨论】:

  • 看起来你的提交加倍了,可能想拍下这张!

标签: svn version-control backup sysadmin


【解决方案1】:

您可以在某处查看 rev.7450 副本,然后导出您的 7500 副本(以删除 .svn 文件夹)。将导出的副本(最新副本)拖到 7450 副本上。所有新文件都应该简单地覆盖旧文件,使 .svn 文件夹保持不变。

Subversion 会假设您刚刚对 7450 进行了一系列更改,下一次签入会将其设置为 7451。

【讨论】:

    【解决方案2】:

    重新签出到不同的文件夹,然后使用差异程序创建补丁。将补丁应用到您的新工作副本。

    【讨论】:

      【解决方案3】:

      如果您确定您的目录中有最新版本,请执行以下操作:

      1. 从存储库中删除项目
      2. 从您的副本中删除 SVN 引用
      3. 将您的代码作为新副本签入。
      4. 查看您刚刚签入的代码

      【讨论】:

        【解决方案4】:

        您可以通过加载包含一堆空修订的转储文件来填充缺少的修订号。在How can I change the revision number of a repository 上有讨论如何执行此操作的答案。以这种方式加载除一个修订版之外的所有修订版,然后您可以将所有更改签入最后一个巨型修订版。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-04-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多