我目前正在开发一个包含perl,.NET,C / C ++和Java组件的项目。这些组件是相互关联的,但不依赖于相同的发布计划。由于构建/测试环境要求非常不同,将它们全部集中到同一个/ bin / src / lib / etc / tests层次结构中有点笨拙。
在处理这种性质的项目时,在源代码管理中使用哪些好的组织层次结构?我目前倾向于每种语言都有自己的分支:
回购/ PROJECT1 / perl的/主/...
回购/ PROJECT1 / .NET /主/...
回购/ PROJECT1 /爪哇/主/...
如果DID具有绑定的发布计划,您的建议层次结构会如何变化?
答案 0 :(得分:2)
我认为你所提出的是在线。如果您将项目作为一个整体发布所有组件而不是单独释放每个组件,那么我可能会使用svn:externals来处理不同的repo位置或完全不同的存储库,然后只需将构建通过外部与组件的最新兼容标记版本相关联。 或者如果使用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/
确切的结构取决于工作流程以及组件的确切集成方式,但您明白了这一点。