如何定期复制一个SVN信息库而不丢失目标标签和分支?

我们希望下载(导出,签出)一个完整的存储库,并定期导入到不同的存储库(包含所有提交消息),这样我们就可以实现一个标签/分支策略。

背景:我们的承包商只是承诺干线,他拒绝 (让我们保持技术)创build标签来版本每个新的库(所以我们可以跟上变更pipe理)。

所以我们每天都要把他们的图书馆导入我们的行李箱,并根据我们的政策创build标签和分支机构。

有没有人有过这种情况发生?

SO问题中有许多可行的解决scheme如何同步两个Subversion版本库 。

看起来像这样的选项可能适用于你,build议使用基本上是svn的分散版本的SVK 。

虽然这是非常规的,我相信你应该能够在svnadmin的帮助下做到这一点。

在承包商的存储库上,可以运行以下命令:

 svnadmin dump --incremental -r <LOWER REVISION>:<UPPER REVISION> /path/to/bad_repo > dumpfile 

然后在您的存储库:

 svnadmin load --parent contractors_stuff/ /path/to/your/repository < dumpfile 

这将逐步将承包商存储库中的修订版本添加到实际存储库中的contractors_stuff目录中。 正如我所说,它应该在理论上工作,但这绝对不是这个function的预期用途。 testing在非生产系统中首先是必需的,如果您在真实存储库的那部分中进行了更改,testing可能会中断。

理想情况下,你会告诉你的承包商采取行动,并制定法律。

另一种技术解决scheme是使用不同的版本控制系统,如Mercurial,Git或其他DCVS,这样可以更好地支持这种工作stream程。