特征分支仍然(或曾经)被认为是一种不好的做法吗?

dan*_*yim 8 git continuous-integration branch dvcs

来自TFS世界并且刚刚和Git一起感到舒服,我即将向我的团队建议我们应该结合Gitflow工作流程,正如Vincent Dressen着名文章所指出的那样.

几乎所有围绕分支策略的现代文献都表达了Gitflow工作流程的有效性,Gitflow工作流程是功能分支的扩展版本,但是来自有影响力的工程师的日期文章,例如Martin Fowler的Feature Branch文章(2009),在一般情况下使用了分支功能.赞成持续整合.

他的一些批评者表示,福勒对功能分支的反对部分是因为他使用SVN作为他的VCS,这是一种无效的合并工具,因此导致福勒推荐一种分支反模式"合并偏执狂".

Fowler在2011年回应说DVCS系统可能使合并更容易,但它们仍然无法解决语义冲突.现在在2014年,我们拥有语言识别合并工具,例如Semantic Merge,它可以完全解决这个问题.

我的问题是

  1. 功能分支和持续集成是否相互排斥?

  2. Fowler在现代开发中的文章有多相关,特别是我们可以访问SourceTree,Git,Jenkins等工具,以及其他能够更容易实现功能分支等的代码审查软件?

Sui*_*med 1

如果您查看有关持续集成的维基百科文章(今天),您会发现它是关于与单个主线每日合并的。基于此,我想说你的第一个问题的答案是肯定的,但这并不排除使用功能分支策略。

对于你的第二个问题,我认为答案并不那么直接,但根据我的经验,创建分支很容易,而在熵之后合并它们则不然。我仍然认为福勒的文章是准确的。