gpt4 book ai didi

tfs - 一个项目的多个发布版本的 Gitflow 策略

转载 作者:行者123 更新时间:2023-12-01 12:27:13 24 4
gpt4 key购买 nike

我正在为我的项目设计分支和合并策略(我们使用 TFS)。项目计划有多个发布版本。目前我们正在测试 v1.0alpha 并在 v2.0 中工作

计划是:

  • 在测试人员立即批准后,v1.0 版 将发布给一位客户。
  • 版本 v1.1(已在开发中)将部署到 5-6 个客户端
  • 版本 v1.2 将安装到数十个客户端。
  • 等等

我们将尝试强制将旧客户端升级到最新版本,但由于项目和市场的性质,客户端升级可能需要数月(数年?)。

我们想使用标准的 gitflow,但似乎更适合使用单一版本。我设计了一个简化的gitflow: Git Flow simplification

方法是:

  • 如果客户想要修复错误,我们将在他的版本的发布分支中修复它,他必须升级到他的版本的最新修订版。例如,v1.0 中存在错误的客户端必须升级到 v1.0.5。如果错误发生在其他版本中,我们将在那里修复它。
  • 如果客户想要新功能,我们将开发最新版本,并在他们需要时强制他们升级。例如 v1.0.5 中的客户端想要新版本将必须升级到 v1.2
  • 如果给定版本的所有客户端都升级,我们将删除该版本分支。比如v1.0的客户端升级时我们会烧掉v1.0 Release分支。

所以我的问题按重要性排序是:

  1. 我的方法行得通吗?您能看到任何问题吗?
  2. git-flow 是否有针对这种“多版本场景”的任何模式?
  3. Gitflow 有一个 Master 分支。没有 Master 分支可以吗?我们可以将不同的发布分支视为“主”吗?
  4. 您将如何命名 Dev 和 Releases 分支?

最佳答案

  1. 您的方法应该有效。 GitFlow 没有什么神奇之处,可以满足您的需求。 Git 本身对于不同的工作流程没有问题。一个很好的例子是 Github 流程,看看 http://scottchacon.com/2011/08/31/github-flow.html .

您可以考虑的一些事项:

a) “最小惊喜原则”:尽量保持接近标准。这意味着您 i) 将开发人员指向网络上可用的文档,而不是将所有内容都写下来 ii) 让新开发人员更容易进入或只是使用您的项目。因此,你应该保留 master 分支,不是因为它是必需的——它不是,而是因为当它不存在时它可能会让人们感到困惑,而且你将不得不在未来几年解释这一点。git 中的分支“只是”名称(好吧,多一点,但你明白我的意思),所以将它们命名为相同的唯一原因是约定 - 让人们更容易。

b) 有多少开发人员在从事这些项目?如果有很多,可以考虑将Dev分支作为集成分支,将master分支作为稳定分支。拥有一个允许不稳定的开发分支可能会解决许多开发人员的许多问题。两个团队提交,一个来自功能,一个来自修补程序,构建变红,团队互相指责,第三个团队试图推出一个新的发布分支,但不能。拥有一个稳定的、始终绿色的构建主分支,您甚至可以通过拉取请求来保护它,这非常好,并且可以营造更轻松的环境。

2) 基本 Gitflow 以发布为中心,所以不完全是。您同时拥有多个版本。所以你快到了,但是标准工具,比如 [Jakob Ehn 的] ( https://github.com/jakobehn ) Gitflow extention to Visual Studio - 这太棒了 - 会让你在被允许打开一个新版本之前尝试关闭一个版本。让 Jakob 放松一下,该工具将为您工作。否则,只需遵循惯例,但手动执行 - 这也有效。

3) 请参阅上面关于 master 的第 1 点以及为什么没有它可能不是一个好主意。但是当然,您可以将发布分支视为某种大师,但在您的描述中它们并不是那样的。如果是这样,哪个才是真正的大师,您从中创建功能分支的那个,以及您认为是最新的那个?有一个稳定的主人可以解决很多没有的问题。

4) Dev 或 Develop,那么 features 应该有一个尽可能接近其功能的名称,例如 Dev/NewHelpPage 或 Feature/NewHelpPage(更接近 gitflow 约定)。发布分支,看起来你已经遵循语义版本控制(http://semver.org)原则,那么为什么不使用它:Release/V1.0、Release/V1.1 等等。然后一个修补程序分支是 Release/V1.0.1 。
命名应该让开发人员很容易理解它是什么,最好不需要问周围的任何人。

保持简单,尽可能遵循惯例,它往往会奏效。 Git 本身几乎适用于任何分支方案。

[编辑]刚刚与 Jakob 进行了快速交谈,他说他有支持支持分支机构的请求,这可能是您真正想要的。他还指着this excellent post在不同的 gitflow 场景中,底部有支持分支的流程。

关于tfs - 一个项目的多个发布版本的 Gitflow 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38129366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com