SVN是否重新定位了一个安全选项,以便将代码与两个subversion存储库同步?

时间:2010-10-28 22:42:48

标签: svn repository switch-statement

这个问题的变种已被多次询问,但没有一个答案澄清了我感兴趣的内容:

我希望(显然...... :)将我的本地工作副本与两个不同服务器上的两个存储库同步。如果我将svn switch--relocate选项一起使用,是否可以(并且相当安全)与两个存储库保持同步(必要时手动合并更改)以及有哪些警告?

背景:一台服务器托管我的私有svn,另一台是“官方”svn,有几个人可以访问并提交更改。

在我的私有svn中保留代码的附加副本的主要动机是

  1. 我可以执行“脏”(未经测试)提交,
  2. 我有其他代码依赖于我私人svn中常见svn的代码,所以如果官方svn有一天会消失,我svn的所有代码历史将变得无用。

1 个答案:

答案 0 :(得分:2)

简答:不。

svn switch用于切换到相同存储库的新网址。 Subversion无法在具有不同内容的两个存储库之间切换。

具体来说,svn检查存储库UUID以防止您意外切换到其他存储库。如果您绕过该检查(通过使用相同的UUID创建两个repos,比方说),然后在执行“脏”提交后切换到“官方”仓库,svn仍然知道如何做正确的事。可能只会认为其工作副本已损坏并拒绝再执行commitupdate次操作。

您要求的功能正是分布式版本控制系统的设计目标。其中一些可以与svn合作,以便您可以使用git作为您的私有存储库并将其与官方svn存储库同步。