如何在版本控制下跟踪和管理软件模块的依赖关系?
我正在构建几个网站,每个网站都使用特定的Apache配置,特殊的Django代码,共享的Python库和一些共享的Javascript。对于每个站点,这些部分是相互依赖的 - 如果服务器代码发生更改,Javascript可能会随之更改,反之亦然。
我可以把整件事放在一个项目下,但这看起来很笨拙。但是如果我将它们放在单独的项目中,那么我必须按版本跟踪元素的依赖性。 “DjangoStuff v.14与JavascriptStuff v.20一起使用,但不适用于v.21 .JavaScriptStuff v.21适用于DjangoStuff v.15。”
这里最好的方法是什么?我正在使用Subversion。 (我听说谣言不再酷,但它满足了我的需求,我现在更愿意坚持下去。)
答案 0 :(得分:4)
在Subversion中使用Externals,您可以让您的主项目引用所有依赖项目。默认情况下,Subversion中的外部引用是指当前版本的任何内容,但您可以添加引用另一个存储库的特定版本的外部引用(使用-r
表示法,如该页面上的“工具包”示例。)
答案 1 :(得分:1)
svn:externals
是您在目录上设置的属性,用于告知Subversion在检出该目录时引入其他材料。您可以指定: