有一段时间以前,我们将Subversion存储库移动到一个新服务器(“B”),预计旧服务器(“A”)将被停用。然而,服务器/存储库A实际上从未被停用,并且在我不知情的情况下,许多源代码控制项目中的一个项目没有更新其工作副本引用。换句话说,该项目(仅此项目)的所有更改都已提交到旧服务器。在新服务器上,该特定项目根本没有任何更新,因此实际源代码中不存在任何冲突。但是,显然,修订号将不一致。是否可以将提交到存储库A的更改合并到存储库B中?基本上,我要问的问题与此问题类似:如何将来自两个不同存储库的两个分支合并为单个存储库?。除了这是针对Subversion而不是git,并且实际上没有任何分支,只有一个错误地提交到主干的更改集合。我不需要持续同步,这只是在旧存储库最终真正停用之前的一次操作。我更喜欢将涉及的整个修订历史记录带过来,即不仅将最新版本作为一个大修订提交。为了防止问题不太清楚,这是一个可视化的解释:
Repository A
Project X: Rev 1 -> Rev 2 -> Rev 3
Project Y: Rev 4 -> Rev 5 -> Rev 6
Repository B:
Project X: Rev 1 -> Rev 2 -> Rev 3 -> Rev 4 -> Rev 5 -> Rev 6
| | |
Expected outcome for Repository A: v v v
Project X: Rev 1 -> Rev 2 -> Rev 3 -> Rev 7 -> Rev 8 -> Rev 9
Project Y: Rev 4 -> Rev 5 -> Rev 6
我希望将A仓库中某一部分的所有版本记录(仅限此部分)复制到B的代码库中,同时保留其他内容不变。如果必要的话,我可以接受X的版本记录在B上看起来像新的版本记录。
有解决方案吗?
--drop-empty-revs
选项给 svndumpfilter,否则您将得到大量空修订版本。 - Aaronaught