3
我们的项目从svn到git一直是converted。开发人员现在使用git-svn
,但希望 继续开发以利用更多的权力。心愿:在发布主线和分期工作之间拥有多个稳定分支的Git工作流程,与svn同步
- 强大的分支,e.g话题/特性分支
- 隔离,有时多个并行。
- 瘦&平均和稳定詹金斯-CI设置 - 最少的维护(VS改变每一个版本后的工作配置)
- 短迭代,开发团队发布到每2周QA;不一定在外部
- 多个产品(P1..P3)由相同来源构建,独立发布;随着变化的压力
- 有更多的休闲,非Git用户在“更大的团队”...他们S&U :) ..但我们必须让他们svn访问至少1分支(干线)。他们的贡献限制了几个目标,所以这里没有太多的风险。
以下策略会起作用吗?
- 发展:主线分支那里发展情况,网HRS欧洲混帐流
- 稳定的产品分支:产品1 ..产品3。其中一个或多个将在dev发布时从主线合并。似乎在Git流程中类似于'release start 1.4.3' - 但这些将是永久分支。发布会在此标记,然后合并回来开发。这一点它会很稳定,就像git-flow中的主人一样,其中只有几个。
- 直接停止使用git-svn - 代之以推/拉镜子。也可以使用功能分支,如果需要
- merge svn/trunk - > develop。 Svn会得到偶尔和孤立的检查;所以计划通过Jenkins的工作自动化它,通知人们是否失败,以便可以手动合并
- 合并develop-> svn/trunk:定期(例如每天),以批处理模式。这可能是最动人的部分(至少对于新手来说)。规划类似rebase or some reset wizardy
- CI设置将会是直接的,如测试和开发建立关主线,产品正式建立了他们自己的产品分支
Git-Flow是诱人的 - 主要是因为它很好地描述和自动化。但它似乎不适合我的情况;主要是由于潜在的并行版本,多个产品线和CI aspects。
任何知情意见将不胜感激。
On svn-> git syncing(point 4),again:听起来很简单:简单的合并。另一种方式(#5)则不那么重要 - 需要将历史记录线性化。它基本上与git-svn(我曾经在其中进行复杂合并)相同,只是在团队级别。关键,恕我直言,是定期和一贯地做到这一点。你会期望什么样的痛苦 - 除了政治? (即使我同意人们应该乐于学习,他们可以争辩说,现在没有时间了,我宁愿逐步推出,也不要混合政治)。 – inger 2012-03-05 22:07:02
感谢您分享您的工作流,级联发布分支和瀑布合并很有趣,即使不适用于我的上下文。在你的情况下,版本分支似乎是为了维护目的,在我的版本中,它们更多的是平行推出/硬化+以提供清晰的,以产品为中心的历史。 – inger 2012-03-05 22:17:16
如果你的分支是真正平行的,那么尽可能考虑使用特征分支,并列出哪些特征需要进入哪些产品分支等。 – 2012-03-05 22:22:31