扩展单个项目的多个项目的版本控制

时间:2010-02-04 05:29:04

标签: svn version-control maven-2 tortoisesvn

我目前正在处理一系列项目,这些项目都是他们自己的通用核心项目的特定分支/扩展,我正在寻找一种方法来管理项目的协作方式。

我理解以下内容有点模糊,我对版本控制只有一点经验,超出了单个项目的基本需求。我正在寻找的是,如果有人之前遇到过这样的事情,如果有的话,他们是如何解决的? (即使用了哪些技术/功能,还是仅仅是创建良好实践的问题?)

我处于幸运的位置,被允许完全取消SVN并转移到其他地方,如果它更合适。

我们有

  • 接收更新的核心Subversion源树(通用树)。
  • 许多特定于域的subversion源树,它们将使用文件,修改现有文件并将新文件添加到核心源代码树以生成最终产品。

我们的流程

  • 核心源树中的更改手动合并到域特定树
  • 有时候域特定树的变化被认为是“通用的”/足够好,可以并入核心树(最终所有其他特定于域的树)

我们想要的是一种可以

的技术(或技术)
  • 允许每个特定于域的树根据核心树中的特定修订进行构建(即构建过程将获取特定的核心修订,然后在其顶部应用所有特定于域的更改以生成最终产品)
  • 允许每个特定于域的树更改要构建的核心的特定修订版(这可能会引入构建错误,但只要更改过程相对简单易用)。
  • 为特定于域的树提供一种方法,以便将更改提交回核心存储库。
  • 由于通用核心树是开源的,但特定于域的树不是,我们需要在最终解决方案的某些部分放置某种形式的访问控制。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我会将它们视为您的版本控制系统中的单独项目。

然后使用像Ant这样的构建系统来构建特定于域的项目。让构建脚本导出核心项目的特定修订或标记,并将其放入特定于域的项目的目录中。 (该目录应从版本控制中排除。)

或者您可以使用svn:externals,以便SVN在您签出特定于域的项目时自动检出您的核心项目版本。