6

我目前正在开发一个包含 perl、.NET、C/C++ 和 Java 组件的项目。这些组件是相互关联的,但不依赖于相同的发布时间表。由于非常不同的构建/测试环境要求,将它们全部归入相同的 /bin /src /lib /etc /tests 层次结构有点笨拙。

在处理这种性质的项目时,可以在源代码控制中使用哪些好的组织层次结构?我目前倾向于每种语言都有自己的分支:

回购/project1/perl/main/...

回购/project1/.NET/main/...

回购/project1/Java/main/...

如果他们确实有一个捆绑的发布时间表,你推荐的层次结构将如何变化?

4

1 回答 1

2

我认为你所布置的内容已经上线。如果您将项目作为一个整体与所有组件一起发布,而不是单独发布每个组件,那么我可能会使用 svn:externals 到不同的 repo 位置或完全不同的存储库,然后只需通过 external 将构建与组件的最新兼容标记版本相关联. 或者如果使用 git 然后使用子模块来做同样的事情。

/repo/project1
  trunk/
    svn:external .Net /repo/project1/components/.Net
    svn:external perl /repo/project1/components/perl
    svn:external Java /repo/project1/components/Java
    -- other integration code or what have you --
  tags/
  branches/
  components/
    .Net/
      trunk/
      tags/
      branches/
    Java/
      trunk/
      tags/
      branches/
    perl/
      trunk/
      tags/
      branches/

确切的结构将取决于工作流程以及组件的确切集成方式,但您明白了。

于 2010-02-02T16:58:49.557 回答