相互依赖模块的版本控制

时间:2009-11-25 19:21:38

标签: svn version-control svn-externals

如何在版本控制下跟踪和管理软件模块的依赖关系?

我正在构建几个网站,每个网站都使用特定的Apache配置,特殊的Django代码,共享的Python库和一些共享的Javascript。对于每个站点,这些部分是相互依赖的 - 如果服务器代码发生更改,Javascript可能会随之更改,反之亦然。

我可以把整件事放在一个项目下,但这看起来很笨拙。但是如果我将它们放在单独的项目中,那么我必须按版本跟踪元素的依赖性。 “DjangoStuff v.14与JavascriptStuff v.20一起使用,但不适用于v.21 .JavaScriptStuff v.21适用于DjangoStuff v.15。”

这里最好的方法是什么?我正在使用Subversion。 (我听说谣言不再酷,但它满足了我的需求,我现在更愿意坚持下去。)

2 个答案:

答案 0 :(得分:4)

在Subversion中使用Externals,您可以让您的主项目引用所有依赖项目。默认情况下,Subversion中的外部引用是指当前版本的任何内容,但您可以添加引用另一个存储库的特定版本的外部引用(使用-r表示法,如该页面上的“工具包”示例。)

答案 1 :(得分:1)

svn:externals是您在目录上设置的属性,用于告知Subversion在检出该目录时引入其他材料。您可以指定:

  • 相同或不同的存储库
  • 拉入的特定修订
  • Subversion抓住它们后放置材料的位置