我们在CentOS Linux 6.3之上的SVN 1.6.11上运行了大约5个不同的SVN存储库。上周我被要求将我们的SVN服务器迁移到一个新的服务器上。我们有一个cron作业,每周对每个回购进行一次完整备份,每隔一天晚上我们通过以下方式进行增量备份:svnadmin dump -r 100-200 --incremental repo |gzip -9 > incremental_100_200.svn.gz
(其中repo是回购的名称,100是自上次备份以来最老的版本,200是本次备份时最年轻的版本)
我将上次的完整备份完全恢复到新服务器,创建了一个几乎最新的仓库副本。整个星期,我计划将增量备份从旧服务器恢复到新服务器,以保持它们同步,然后在星期五切换到新服务器。
不幸的是,我一定错过了几个仓库的增量恢复,不知何故没有注意到,然后我们切换到新的服务器,人们继续添加文件并进行修改,向仓库添加新的修订。问题是,由于有几个版本库中缺少一些版本,现在新的版本已经包含了这些版本号,所以我不能从旧的版本库中获取增量数据并将其加载到新的版本库中,因为现在有其他数据占用了这些版本。我该怎么办?
将两个存储库转换为Git存储库,将它们导入到同一个项目中,使用git rebase
将新更改移动到旧更改的顶部,然后将存储库从Git推回SVN。