【发布时间】:2012-03-05 18:41:28
【问题描述】:
我们的项目已经converted从svn到git。开发人员现在使用git-svn,但希望
继续利用引擎盖下的更多力量。愿望清单:
- 强大的分支,例如主题/功能分支
- 主线和暂存版本之间的隔离,有时是多个并行。
- 精简、平均且稳定的 Jenkins-CI 设置 - 最少的维护(与每次发布后更改作业配置相比)
- 短迭代,开发团队每 2 周向 QA 发布一次;不一定在外面
- 多个产品 (P1..P3) 从相同来源构建,独立发布;压力变化
- 在“大团队”中有更多休闲的非 git 用户......他们是 S&U:).. 但我们必须让他们 svn 访问至少 1 个分支(主干)。他们的贡献被限制在几个目录中,所以这里没有太大的冲突风险。
以下策略会奏效吗?
- develop:进行开发的主线分支,a'la git-flow
- 稳定的产品分支:product1 .. product3。其中一个或多个将在开发版本发布时从主线合并。似乎类似于 git flow 中的“发布开始 1.4.3”,但这些将是永久分支。版本将在此处标记,然后合并回开发。这一点就稳定了,就像git-flow中的master一样,就几个。
- 停止直接使用 git-svn - 改为推/拉镜像。如果需要,还可以使用功能分支
- 合并 svn/trunk -> 开发。 Svn 会得到偶尔和孤立的签入;因此计划通过 Jenkins 作业将其自动化,如果失败则通知人们以便可以手动合并
- 合并开发->svn/trunk:定期(例如每天),以批处理模式。这可能是最不稳定的部分(至少对于新手来说)。计划类似rebase or some reset wizardy
- CI 设置很简单,例如测试和开发从主线构建,官方产品从他们自己的产品分支构建
Git-Flow 很诱人——主要是因为它被很好地描述和自动化。但这似乎并不适合我的情况。主要是由于潜在的并行发布、多个产品线和CI aspects。
任何知情意见将不胜感激。
【问题讨论】:
标签: git continuous-integration git-svn configuration-management git-flow