在开发过程中如何处理提交多个分支?

时间:2018-11-14 14:46:06

标签: git version-control mercurial dvcs monorepo

我正在寻找最新的知识/最佳实践/建议。

我们正在考虑发展单仓库。我们将Scrum与Stories / Epics / Sprints结合使用(我并不完全了解所有术语……我已经老了,有些新事物似乎只不过是旧事物……只是名字不同而已)。 >

我们理解为开发人员定义小型工作单元的必要性,但是通常情况下,多个单元具有一定程度的相互依赖性,但它们是针对系统的不同部分的。

开发人员可以简单地同时进行多个工作,因为这样可以提高效率(并使任务更容易实现),但是任务是独立的,每个任务都需要自己审查。

我们希望能够对代码的当前功能分支进行“检出”(我正在使用git术语,就像我们目前正在使用的那样),允许开发人员进行编码,在本地运行测试,如果满意,将具体更改提交到不同的分支。因此,例如,迁移更改转到迁移任务的分支,API建模/映射更改转到相应任务的分支,等等。

每个任务都针对故事设置了适当的阻塞,因此发布管理器可以按正确的顺序发布所有内容(即,您无法发布数据存储区中不存在的列的UI更改)。

使用git实现类似的事情非常麻烦。

对于我们来说,功能分支适用于故事(即,客户希望能够允许其客户更改预订的会话时间(假设存在),发出退款或要求进一步付款(如果需要)的能力)。要实现这个故事,需要完成各种任务(新数据,UI / UX工作,API工作等)。这些都是为故事定义的任务。每个都有自己的分支机构。

还有更好的选择吗?

如果没有,是否有任何人可以推荐的更好的做法?

1 个答案:

答案 0 :(得分:0)

您可能要为Mercurial寻找 gitflow (对于git)或 hgflow

这些是分支工作流程,似乎旨在解决您提出的组织问题。


gitflow:

创建/倡导by Vincent Driessen。尽管此模型是在考虑git的情况下创建的,但在大多数情况下,它并不是特定于git的。

  

中央仓库拥有两个主要分支,并且寿命无限:

     

掌握开发

     

我们认为master是HEAD源代码的主要分支   总是反映生产就绪状态。

     

我们认为开发是反映状态的主要分支   最新交付的开发更改。有人会称之为   “整合分支”。

     

develop分支中的源代码达到稳定点时,   准备发布,所有更改应合并回   然后用发行号标记

     

在主要分支旁边,我们使用支持分支来辅助并行   团队成员之间的开发,简化功能跟踪,准备   用于生产发行并协助快速修复现场   生产问题。

     

我们可以使用的不同类型的分支机构是:

     

功能分支发布分支修补程序分支

     

每个分支都有特定的目的,并且必须严格遵守   规则...

Text source


汞流量:

这与gitflow的Mercurial等效。

  

hgflow是受git-flow启发的Hg开源extension   并以Vincent Driessen受欢迎的分支模型为基础。在   本质上,它使围绕Driessen模型的工作流程正式化,并且   提供用于分支和合并功能,发行版和   该模型中的修补程序。

     

...

     

Hgflow不应对标准来源造成任何根本性的改变   控制工作流程,它只是引入了更正式的词汇表   描述分支并将一个好的模型应用于流程。在之上   它增加了很多自动化功能,甚至可以与汞一起使用   更有趣。

hgflow home page

text source


此外,如果您尚未研究类似 github 的网站如何允许您使用拉取请求之类的功能来管理功能,那么考虑一下可能会很有用。据我了解,github本质上提供了一些工具来帮助制定/管理工作流,例如Driesen分支模型。

相关问题