复制版本控制存储库的最佳方法是什么?

时间:2020-03-05 18:40:42  来源:igfitidea点击:

这是我的情况。我在一个位置(A)中有一个CVS存储库,我想复制它并使其与另一个位置(B)中的存储库保持同步。这将是从A到B的单向同步。执行此操作的最佳方法是什么?如果在CVS中确实不可行,那么我们建议使用哪个源代码控制系统来完成此工作?谢谢

解决方案

回答

使用CVS时,除了文件同步外,我不知道有其他工具可以做到这一点。我们可以使用rsync(Unix)或者xcopy/robocopy(Windows)之类的工具来实现。

如果我们打算迁移到Subversion,它提供了一个名为svnsync的工具,该工具可以从另一个库中同步存储库。

回答

我建议我们从CVS迁移到适当的分布式版本控制系统,例如git,它将很自然地提供这种功能。

Subversion还提供了svnsync,它执行相同的操作。

回答

如果确实使用CVS的rsync / filecopy方法,则仅在没有活动提交时才同步文件,这一点很重要。否则,存储库的锁定文件将被复制,并且我们将无法在目标端检出/更新,直到下一次同步。

单凭这个原因,可能会使CVS成为错误的选择。从CVS到Subversion的迁移过程非常顺利,并且有一些工具可以将完整的CVS存储库(包括历史记录)导入Subversion。

如果我们想获得真正的分布式版本控制,请考虑使用Git或者Mercurial,但这听起来对于满足"只读"需求而言可能是过大的选择。

回答

最好的(也许是最昂贵的)方式是Clearcase Multisite

但是,如果我们正在寻找开放源代码,那么Git将会迅速取代svn。