在git中构建相关组件

时间:2011-09-06 14:49:11

标签: git

我的团队正在考虑从大约二十二个颠覆回购转变为git回购。我们试图解决的是,目前,每个人都有自己的subversion repo为他们的每个产品组件。我想做的是尽量减少我们的扩张,并帮助建立一条明确的前进道路。

我正在寻找有关如何构建回购的建议。一个关键点是如何对相关项目进行分组。我们有两种产品。每个产品都有一组Web服务代码(php),android客户端代码(java),iphone客户端代码(obj c),ipad代码(obj c)和网站客户端代码(php + js)。目前,每个所有者的组件都在一个单独的svn仓库中。

我的想法是尝试将这些组件组合成一个回购,但我不知道这是否是git的好习惯。这是否比单独的回购提供任何真正的好处?由于共同的可见性,这似乎可以促进更好的社会契约,以获得检查的质量,但我们是否会以其他方式为此付出代价?

3 个答案:

答案 0 :(得分:5)

在一个“组件”(这里是一个Git repo)中组合不同文件集的标准是它们各自的开发生命周期(它们在标记和分支方面的演变方式):

  • 你可以在php或java模块上进行演化,而不必对其他模块进行任何修改(比如obj c)吗?
  • 你能否在一个分支中隔离一些进化/修复,这些改进/修复只针对那些模块的一个而不是其他模块?
  • 您可以在多个项目中重复使用其中一个模块的特定版本吗?

如果是,基于组件的方法最好(即每个模块一个git repo),而不是一个包含其中所有内容的repo(system approach)。
例如,请参阅“Component based web project directory layout with git and symlinks”。

组件代表“一致的文件集”,最好在自己的Git仓库中进行管理。

答案 1 :(得分:3)

您至少有两个选择:

如果你的项目大多是私人的,我建议你坚持前者。阅读文档,这很容易。

答案 2 :(得分:1)

我对Git工作流程知之甚少,但我知道你至少有三个选择:

  1. 对每个项目自己的回购,可能是最安全的选择。标签和好的测试工具是你的朋友。
  2. 每个项目组分开分支,分别为每个项目分支。在执行此操作之前,请务必备份所有内容。请参阅空分支上的Scott Chacon's video。我之前没有这样做,但Github的gh-pages分支是一个现实的例子。
  3. 子模即可。每个项目都有自己的git repo,在git repo中自己。可能是最好的想法。