从两个工作副本重新创建 svn 存储库

从两个工作副本重新创建 svn 存储库

这可能是这里的一个重复问题(重新创建 svn 存储库),但我想我应该再问一遍。

我没有最新的存储库备份,但有一个月前的备份。我有多个最近的工作副本。使用一个月前的备份,尝试更新时显示修订不存在,因为存储库的修订版本较旧。

对我来说最好的选择是什么?

我是否要重新创建一个新的存储库?我丢失了所有 svn 历史记录。但我必须手动合并两个工作副本。有人能列出步骤吗?

或者我是否可以使用一个月前的备份重新创建 svn 存储库。这样我就有一些历史记录,并且只丢失了上个月的历史记录。不确定这是否可行,但如果可行,请列出步骤。

非常感谢您的帮助。谢谢。

答案1

或者我是否可以使用一个月前的备份重新创建 svn 存储库。这样我就有一些历史记录,并且只丢失了上个月的历史记录。不确定这是否可行,但如果可行,请列出步骤。

这是我推荐的方法。您将得到一个包含所有旧历史记录的存储库和一个包含上个月发生的所有更改总和的单个大提交。

  1. 恢复一个月前的备份并重新设置您的 Subversion 服务器。
  2. 从这台恢复的服务器中取出一份工作副本。内容(显然)是一个月前的。(我们将其称为 WC1)
  3. 转到您在丢失服务器之前签出的工作副本之一...最新的副本。(我们将其称为 WC2)
  4. 手动将文件从您最近的工作副本 (WC2) 移动到 WC1 中的相应位置。不要移动目录,只移动文件。如果已创建目录,请使用 重新创建它们svn mkdir。如果文件已移动,请使用 移动它们svn mv。在此步骤中,您实际上是在手动重新创建一个月前的备份和最新工作副本之间的差异。
  5. 当您认为自己已经掌握了要点时,请svn diff反复检查这个巨大的提交。
  6. 提交更改
  7. 删除损坏的工作副本,因为其中的所有更改都已迁移回服务器上的 Subversion 存储库。

答案2

我很想使用git-svn拉入旧存储库。然后将工作副本中的任何数据添加到 git 存储库中。最后,创建一个新的干净的 svn 存储库并将所有内容从 git 推送进去。当然,任何使用该存储库的人都需要从新存储库进行新的签出。

我的想法是,它的工作原理与所描述的过程有些类似这里

相关内容