0

我们有以下分支设置:

  • master 和 release/1.0 分支。
  • master,标记为 1.0 并生产 1.0.1、1.0.2 版本。
  • 从 master 创建的 release/1.0 分支,然后 master 标记为 2.0。

期望两个分支都产生“稳定”版本,因此没有预发布标签。

在这些分支上运行 GitVersion 时,发布分支生成版本 1.0.3,主分支生成版本 2.0.1。到目前为止一切顺利,这是我们所期望的。

现在我们的一位同事从发布分支创建了一个新的功能分支,然后他们将 master 合并到该分支中。然后通过拉取请求将功能分支合并回发布分支。完成拉取请求后,GitVersion 现在在发布分支上提供 2.0.X,而不是 1.0.X。

为了尝试解决这个问题,我们将发布分支标记为 1.0.4。然而,随着每个新提交到发布分支,问题又回来了。这迫使使用手动标记每个提交到发布分支,以提供我们想要的版本号。

我们在主线模式下使用 GitVersion 4.0.0-beta0014。

配置如下:

mode: mainline
assembly-versioning-scheme: MajorMinorPatch
continuous-delivery-fallback-tag: ''
commit-message-incrementing: Disabled
branches:
  master:
    tag: ''
  feature:
    regex: features?[/-]
    tag: unstable.{BranchName}
  release:
    tag: ''
    is-mainline: true
  bugfix:
    regex: bugfix[/-]
    tag: unstable.{BranchName}
ignore:
  sha: []

有人知道如何摆脱这种情况吗?

卢博斯

4

1 回答 1

1

我认为您正在寻找“防止合并分支增量选项” - 这里有一些文档:

https://gitversion.net/docs/configuration#prevent-increment-of-merged-branch-version

基本上,您只需在 gitversion.yml 中将其设置为 true,如下所示:

mode: mainline
assembly-versioning-scheme: MajorMinorPatch
continuous-delivery-fallback-tag: ''
commit-message-incrementing: Disabled
branches:
  master:
    tag: ''
  feature:
    regex: features?[/-]
    tag: unstable.{BranchName}
  release:
    tag: ''
    is-mainline: true
  bugfix:
    regex: bugfix[/-]
    tag: unstable.{BranchName}
ignore:
  sha: []
prevent-increment-of-merged-branch-version: true
于 2018-11-12T21:03:15.270 回答