2010-04-26 42 views
4

乌龟会让我在同一个仓库中混合仓库吗?我想将代码,配置和二进制文件存储在单独的存储库中。在乌龟中混合存储库

+0

拉塞斯已经告诉你如何做到这一点,我会重新考虑这一点。我只会使用外部的代码来共享不同的存储库。如果你配置和二进制文件(为什么二进制文件,BTW?如果它们可以从源重新创建,不检查它们!)属于这些,只有这些来源,为什么不把它们放在一起?它对你有什么好处? – sbi 2010-04-26 08:13:07

+0

原因是我想编写我的生产服务器来每天拿起新鲜的二进制文件。我试图插入这个离开的安全漏洞,我相信这里还有一个很好的ftp解决方案。我很快就会拥有SSL,但暂时来看,这似乎是一个不错的解决方案。我有不同的存储库。生产二进制文件的存储库实际上位于生产服务器上,使我可以拥有不同的用户和防火墙设置。此外,我希望分支和标签能让我拥有不同的生产,测试和开发版本。续... – Martin 2010-04-26 09:04:50

+0

...我没有想到这100%,你可以看到。这是一个有趣的讨论。也许我会开始一个新的线程。 – Martin 2010-04-26 09:05:23

回答

4

你应该看看外部,使用svn:externals属性,这将允许你有一个存储库,外部引用到其他存储库。

举例来说,你可以这样做:

trunk/       <-- repository A 
    config/      <-- repository B 
    binaries/     <-- repository C 
    code/      <-- repository A 

你不能,但是,在一个混合使用不同的存储库文件时复制,但可以使用的外部,从检查出你的工作拷贝子目录不同的储存库。

有关外部的更多信息,请查看svnbook:Externals Definitions

+0

完美! <填写字符> – Martin 2010-04-26 08:58:05

0

如果您的意思是一次结帐是否可以包含来自多个存储库的内容,则不需要。您应该为子代码库使用一个存储库,以获取代码,配置和二进制文件。

3

Subversion允许几乎所有的混合工作副本。您可以结合不同的版本,存储库中的不同位置甚至不同的存储库。

你提到的功能与的外部完成:

http://svnbook.red-bean.com/en/1.5/svn.advanced.externals.html

然而,结合不同来源的这些混合工作副本可能难以应付。当你做出改变时,你必须记住这个事实,并为每个来源做不同的结账。而且你不能在不同的存储库之间合并东西,所以你不会有适当的历史记录。

老实说,我没有理由把一个单一的项目拆分成三个不同的回购协议。

+0

你得出结论。试用后,它可以工作,但让它被认为它可能不值得。在我的情况下,这是出于安全原因,但有一个更好的办法。 – Martin 2010-04-26 08:46:09