7

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

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

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

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

4

4 回答 4

6

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

Subversion 会假设你刚刚对 7450 做了一些更改,下一次签入会将它设置为 7451。

于 2008-09-11T13:41:59.777 回答
5

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

于 2008-09-11T13:39:15.290 回答
1

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

  1. 从存储库中删除项目
  2. 从您的副本中删除 SVN 引用
  3. 将您的代码作为新副本签入。
  4. 查看您刚刚签入的代码
于 2008-09-11T13:51:16.930 回答
1

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

于 2010-07-20T22:38:35.547 回答