从稍微过时的subversion存储库备份中恢复

时间:2008-09-11 13:38:17

标签: svn version-control backup sysadmin

我遇到的一个问题我从来没有找到一个很好的解决方案......

假设您在版本7500处从subversion检出了工作副本,并且持有当前存储库的磁盘已经死亡。您可以在修订版7450中获得存储库的备份。恢复存储库备份很容易,但是任何尝试使用工作副本都会出现错误,说明存储库中不存在修订版7500。 / p>

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

(理想情况下,我想要查看一个全新的工作副本,然后手动复制所有文件更容易 - 我认为当时工作副本用于配置管理服务器,所以它是真实的必须检查清洁工作副本的痛苦)

4 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:5)

在另一个文件夹中进行新的结帐,然后使用diff程序创建一个补丁。将补丁应用于新的工作副本。

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

您可以通过加载包含大量空修订的转储文件来填写缺少的修订号。有人在How can I change the revision number of a repository讨论如何解决这个问题的答案。以这种方式加载除一个修订版之外的所有版本,然后您可以在最后一个巨型版本中检入所有更改。