我正在寻找最新的知识/最佳实践/建议。
我们正在考虑发展单仓库。我们将Scrum与Stories / Epics / Sprints结合使用(我并不完全了解所有术语……我已经老了,有些新事物似乎只不过是旧事物……只是名字不同而已)。 >
我们理解为开发人员定义小型工作单元的必要性,但是通常情况下,多个单元具有一定程度的相互依赖性,但它们是针对系统的不同部分的。
开发人员可以简单地同时进行多个工作,因为这样可以提高效率(并使任务更容易实现),但是任务是独立的,每个任务都需要自己审查。
我们希望能够对代码的当前功能分支进行“检出”(我正在使用git术语,就像我们目前正在使用的那样),允许开发人员进行编码,在本地运行测试,如果满意,将具体更改提交到不同的分支。因此,例如,迁移更改转到迁移任务的分支,API建模/映射更改转到相应任务的分支,等等。
每个任务都针对故事设置了适当的阻塞,因此发布管理器可以按正确的顺序发布所有内容(即,您无法发布数据存储区中不存在的列的UI更改)。
使用git实现类似的事情非常麻烦。
对于我们来说,功能分支适用于故事(即,客户希望能够允许其客户更改预订的会话时间(假设存在),发出退款或要求进一步付款(如果需要)的能力)。要实现这个故事,需要完成各种任务(新数据,UI / UX工作,API工作等)。这些都是为故事定义的任务。每个都有自己的分支机构。
还有更好的选择吗?
如果没有,是否有任何人可以推荐的更好的做法?
答案 0 :(得分:0)
您可能要为Mercurial寻找 gitflow (对于git)或 hgflow 。
这些是分支工作流程,似乎旨在解决您提出的组织问题。
gitflow:
创建/倡导by Vincent Driessen。尽管此模型是在考虑git的情况下创建的,但在大多数情况下,它并不是特定于git的。
中央仓库拥有两个主要分支,并且寿命无限:
掌握开发
我们认为master是HEAD源代码的主要分支 总是反映生产就绪状态。
我们认为开发是反映状态的主要分支 最新交付的开发更改。有人会称之为 “整合分支”。
develop分支中的源代码达到稳定点时, 准备发布,所有更改应合并回 然后用发行号标记
在主要分支旁边,我们使用支持分支来辅助并行 团队成员之间的开发,简化功能跟踪,准备 用于生产发行并协助快速修复现场 生产问题。
我们可以使用的不同类型的分支机构是:
功能分支发布分支修补程序分支
每个分支都有特定的目的,并且必须严格遵守 规则...
汞流量:
这与gitflow的Mercurial等效。
hgflow是受git-flow启发的Hg开源extension 并以Vincent Driessen受欢迎的分支模型为基础。在 本质上,它使围绕Driessen模型的工作流程正式化,并且 提供用于分支和合并功能,发行版和 该模型中的修补程序。
...
Hgflow不应对标准来源造成任何根本性的改变 控制工作流程,它只是引入了更正式的词汇表 描述分支并将一个好的模型应用于流程。在之上 它增加了很多自动化功能,甚至可以与汞一起使用 更有趣。
此外,如果您尚未研究类似 github 的网站如何允许您使用拉取请求之类的功能来管理功能,那么考虑一下可能会很有用。据我了解,github本质上提供了一些工具来帮助制定/管理工作流,例如Driesen分支模型。