azure-devops - 为什么 GitVersion 在合并拉取请求以开发时会增加我的主要版本号?

标签 azure-devops git-flow gitversion

我们有master,开发分支。 Master 当前版本为 1.0.0。

从develop,我分出了一个新的分支,做了一些小改动,把next-version属性改成了1.0.0。当我发出拉取请求时,我希望 GitVersion 将它计算为 1.0.1 或类似的东西,但由于某种原因,它总是将它撞到 2.0.0。

我尝试过使用 +semver: major 而同时拥有 next-version 0.0.1,但这并没有将它从 0.9.0 提升到 1.0.0 .

我试过使用下一个版本 0.9.9。 GitVersion 将其增加到 0.10.0

我试过使用下一个版本 1.0.0。 GitVersion 将其升级为 2.0.0。

我的猜测是,问题出在我的 GitVersion.yml 中,或者我如何使用 GitVersion...

next-version: 1.0.1
branches:
  master:
    regex: master
    mode: ContinuousDelivery
    tag: ''
    increment: Minor
    prevent-increment-of-merged-branch-version: true
    track-merge-target: false
    tracks-release-branches: false
    is-release-branch: false
  release:
    regex: release(s)?[/-]
    mode: ContinuousDelivery
    tag: beta
    increment: Minor
    prevent-increment-of-merged-branch-version: true
    track-merge-target: false
    tracks-release-branches: false
    is-release-branch: true
  feature:
    regex: feature(s)?[/-]
    mode: ContinuousDelivery
    tag: alpha.{BranchName}
    increment: Inherit
    prevent-increment-of-merged-branch-version: false
    track-merge-target: false
    tracks-release-branches: false
    is-release-branch: false
  pull-request:
    regex: (pull|pull\-requests|pr)[/-]
    mode: ContinuousDelivery
    tag: PullRequest
    increment: Inherit
    prevent-increment-of-merged-branch-version: false
    tag-number-pattern: '[/-](?<number>\d+)[-/]'
    track-merge-target: false
    tracks-release-branches: false
    is-release-branch: false
  develop:
    regex: dev(elop)?(ment)?$
    mode: ContinuousDeployment
    tag: alpha
    increment: Minor
    prevent-increment-of-merged-branch-version: false
    track-merge-target: true
    tracks-release-branches: true
    is-release-branch: false

我曾预计它会以某种方式发展到类似... 1.0.1 或 1.1.0 或类似的东西。

相反,我得到的只是到 2.0.0 的重大突破。

这是我最新尝试的输出,使用下一版本 1.0.0:

##[section]Starting: GitVersion
==============================================================================
Task         : GitVersion Task
Description  : Easy Semantic Versioning (http://semver.org) for projects using Git
Version      : 4.0.3
Author       : GitVersion Contributors
Help         : See the [documentation](http://gitversion.readthedocs.org/en/latest/) for help
==============================================================================
[command]C:\ProgramData\Chocolatey\bin\GitVersion.exe D:\a\1\s /output buildserver /nofetch /updateassemblyinfo true
INFO [08/30/19 14:41:06:51] Working directory: D:\a\1\s
INFO [08/30/19 14:41:06:54] IsDynamicGitRepository: False
INFO [08/30/19 14:41:07:07] Returning Project Root from DotGitDirectory: D:\a\1\s\.git - D:\a\1\s
INFO [08/30/19 14:41:07:07] Running on Windows.
INFO [08/30/19 14:41:07:07] Applicable build agent found: 'VsoAgent'.
INFO [08/30/19 14:41:07:07] Branch from build environment: refs/pull/31377/merge
INFO [08/30/19 14:41:07:08] Begin: Normalizing git directory for branch 'refs/pull/31377/merge'
  INFO [08/30/19 14:41:07:16] One remote found (origin -> '<foobar>').
  INFO [08/30/19 14:41:07:18] Skipping fetching, if GitVersion does not calculate your version as expected you might need to allow fetching or use dynamic repositories
  INFO [08/30/19 14:41:07:62] Creating local branch refs/heads/pull/31377/merge pointing at 04339992208324c21a1ebcb5f2abbdd9f3d7906e
  INFO [08/30/19 14:41:07:67] Creating local branch from remote tracking 'refs/remotes/origin/create-application-without-manifest'.
  INFO [08/30/19 14:41:07:70] Creating local branch from remote tracking 'refs/remotes/origin/develop'.
  INFO [08/30/19 14:41:07:70] Creating local branch from remote tracking 'refs/remotes/origin/feature/some-branch-name'.
  INFO [08/30/19 14:41:07:70] Creating local branch from remote tracking 'refs/remotes/origin/master'.
  INFO [08/30/19 14:41:07:71] HEAD points at branch 'refs/heads/pull/31377/merge'.
  INFO [08/30/19 14:41:07:71] End: Normalizing git directory for branch 'refs/pull/31377/merge' (Took: 628.41ms)
  INFO [08/30/19 14:41:07:71] IsDynamicGitRepository: False
  INFO [08/30/19 14:41:07:71] Returning Project Root from DotGitDirectory: D:\a\1\s\.git - D:\a\1\s
  INFO [08/30/19 14:41:07:71] Project root is: D:\a\1\s
  INFO [08/30/19 14:41:07:71] DotGit directory is: D:\a\1\s\.git
  INFO [08/30/19 14:41:07:71] IsDynamicGitRepository: False
  INFO [08/30/19 14:41:07:71] Returning Project Root from DotGitDirectory: D:\a\1\s\.git - D:\a\1\s
  INFO [08/30/19 14:41:07:73] Begin: Loading version variables from disk cache
    INFO [08/30/19 14:41:07:73] Cache file D:\a\1\s\.git\gitversion_cache\CE0AE3C9137253E65D3608329BB0061CFF5305C7.yml not found.
  INFO [08/30/19 14:41:07:73] End: Loading version variables from disk cache (Took: 0.00ms)
  INFO [08/30/19 14:41:07:73] IsDynamicGitRepository: False
  INFO [08/30/19 14:41:07:73] Returning Project Root from DotGitDirectory: D:\a\1\s\.git - D:\a\1\s
  INFO [08/30/19 14:41:07:92] Using latest commit on specified branch
  INFO [08/30/19 14:41:07:92] Begin: Attempting to inherit branch configuration from parent branch
    INFO [08/30/19 14:41:07:93] HEAD is merge commit, this is likely a pull request using feature/some-branch-name as base
    INFO [08/30/19 14:41:07:93] Begin: Finding branch source of 'feature/some-branch-name'
      INFO [08/30/19 14:41:07:96] Begin: Finding merge base between 'feature/some-branch-name' and 'develop'.
        INFO [08/30/19 14:41:07:96] Found merge base of 6072f970bd748d1464f04314e290bd67c1b41f4d
        INFO [08/30/19 14:41:07:98] Merge base of feature/some-branch-name' and 'develop is 6072f970bd748d1464f04314e290bd67c1b41f4d
      INFO [08/30/19 14:41:07:98] End: Finding merge base between 'feature/some-branch-name' and 'develop'. (Took: 15.62ms)
      INFO [08/30/19 14:41:07:98] Begin: Finding merge base between 'feature/some-branch-name' and 'master'.
        INFO [08/30/19 14:41:07:98] Found merge base of 335272315abebd4b71d7891ce34010a9462075bb
        INFO [08/30/19 14:41:07:98] Merge base of feature/some-branch-name' and 'master is 335272315abebd4b71d7891ce34010a9462075bb
      INFO [08/30/19 14:41:07:98] End: Finding merge base between 'feature/some-branch-name' and 'master'. (Took: 0.00ms)
      INFO [08/30/19 14:41:07:98] Begin: Finding merge base between 'feature/some-branch-name' and 'origin/develop'.
        INFO [08/30/19 14:41:07:98] Found merge base of 6072f970bd748d1464f04314e290bd67c1b41f4d
        INFO [08/30/19 14:41:07:98] Merge base of feature/some-branch-name' and 'origin/develop is 6072f970bd748d1464f04314e290bd67c1b41f4d
      INFO [08/30/19 14:41:07:98] End: Finding merge base between 'feature/some-branch-name' and 'origin/develop'. (Took: 0.00ms)
      INFO [08/30/19 14:41:07:98] Begin: Finding merge base between 'feature/some-branch-name' and 'origin/master'.
        INFO [08/30/19 14:41:07:98] Found merge base of 335272315abebd4b71d7891ce34010a9462075bb
        INFO [08/30/19 14:41:07:98] Merge base of feature/some-branch-name' and 'origin/master is 335272315abebd4b71d7891ce34010a9462075bb
      INFO [08/30/19 14:41:07:98] End: Finding merge base between 'feature/some-branch-name' and 'origin/master'. (Took: 0.00ms)
      INFO [08/30/19 14:41:07:99] Multiple source branches have been found, picking the first one (develop).
This may result in incorrect commit counting.
Options were:
 develop, origin/develop, master, origin/master
    INFO [08/30/19 14:41:07:99] End: Finding branch source of 'feature/some-branch-name' (Took: 62.50ms)
    INFO [08/30/19 14:41:07:99] Begin: Getting branches containing the commit '6072f970bd748d1464f04314e290bd67c1b41f4d'.
      INFO [08/30/19 14:41:07:99] Trying to find direct branches.
      INFO [08/30/19 14:41:07:99] Direct branch found: 'develop'.
    INFO [08/30/19 14:41:07:99] End: Getting branches containing the commit '6072f970bd748d1464f04314e290bd67c1b41f4d'. (Took: 0.00ms)
    INFO [08/30/19 14:41:07:99] Found possible parent branches: develop
  INFO [08/30/19 14:41:07:99] End: Attempting to inherit branch configuration from parent branch (Took: 78.13ms)
  INFO [08/30/19 14:41:07:99] Running against branch: pull/31377/merge (04339992208324c21a1ebcb5f2abbdd9f3d7906e)
  INFO [08/30/19 14:41:08:01] Begin: Calculating base versions
    INFO [08/30/19 14:41:08:02] Fallback base version: 0.1.0 with commit count source 8f456208b87a07033ecd5db42257c5162f8d054f (Incremented: None)
    INFO [08/30/19 14:41:08:10] NextVersion in GitVersion configuration file: 1.0.0 with commit count source External Source (Incremented: None)
    INFO [08/30/19 14:41:08:20] Base version used: NextVersion in GitVersion configuration file: 1.0.0 with commit count source 8f456208b87a07033ecd5db42257c5162f8d054f (Incremented: None)
  INFO [08/30/19 14:41:08:20] End: Calculating base versions (Took: 188.65ms)
  INFO [08/30/19 14:41:08:21] 73 commits found between 8f456208b87a07033ecd5db42257c5162f8d054f and 04339992208324c21a1ebcb5f2abbdd9f3d7906e
  INFO [08/30/19 14:41:08:21] Begin: Getting version tags from branch 'refs/heads/pull/31377/merge'.
  INFO [08/30/19 14:41:08:21] End: Getting version tags from branch 'refs/heads/pull/31377/merge'. (Took: 0.00ms)
  INFO [08/30/19 14:41:08:23] Begin: Creating dictionary
  INFO [08/30/19 14:41:08:24] End: Creating dictionary (Took: 15.60ms)
  INFO [08/30/19 14:41:08:24] Begin: Storing version variables to cache file D:\a\1\s\.git\gitversion_cache\CE0AE3C9137253E65D3608329BB0061CFF5305C7.yml
  INFO [08/30/19 14:41:08:31] End: Storing version variables to cache file D:\a\1\s\.git\gitversion_cache\CE0AE3C9137253E65D3608329BB0061CFF5305C7.yml (Took: 62.48ms)
  INFO [08/30/19 14:41:08:31] Applicable build agent found: 'VsoAgent'.
Executing GenerateSetVersionMessage for 'VsoAgent'.
Executing GenerateBuildLogOutput for 'VsoAgent'.
  INFO [08/30/19 14:41:08:32] Updating assembly info files
  INFO [08/30/19 14:41:08:32] Found 2 files
##[section]Async Command Start: Update Build Number
Update build number to 2.0.0-PullRequest31377.73 for build 151740
##[section]Async Command End: Update Build Number
##[section]Finishing: GitVersion

最佳答案

My guess is, that the issue lies somewhere in my GitVersion.yml, or how I use GitVersion...

不,您的 GitVersion.yml 没有错误。一切都成功了,并使用你的 GitVersion.yml 完成了我的 GitVersion 任务:

enter image description here

注意:我刚刚修改了next-version的值:next-version: 1.0.0

您收到的问题似乎是由您正在使用的任务引起的。

根据您的详细日志,我注意到您使用的 GitVersion 任务版本是 4.0.3。事实上,这个任务已经修复了一些错误并更新到5.0.1,这也是我用来测试并成功的。此外,另一个不寻常的事情是你只是从 some-branch-namedevelop 发出拉取请求,但在你的日志中你可以看到 processloopsome-branch-namemaster/original master 之间:

enter image description here

要解决此问题,请尝试使用版本 5.* 的任务。

enter image description here

如果您无法从任务下拉列表中选择 5.*,只需卸载此扩展并重新安装即可获取并使用最新版本的 GitVersion 任务。

关于azure-devops - 为什么 GitVersion 在合并拉取请求以开发时会增加我的主要版本号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57729078/

相关文章:

c# - TFS REST API - 获取字段的允许值

azure-devops - 如何在 Azure Devops 构建管道中用串联版本变量替换 token

Git 流和 Github

git - git-flow 是否在某些分支上强制执行线性历史

gitversion - 试图了解 GitVersion.yml 中的 "next-version"属性是如何工作的

azure-devops - Gitversion 在 devops 构建中使用日期作为主要版本

Azure DevOps Pipeline - YAML 格式错误?

entity-framework - 使用 .net 项目在 Visual Studio Online VSO 中构建和部署期间参数化数据库连接

azure-devops - 如何从 Azure DevOps 中的 .vdproj 构建安装项目?

git - 应该在哪个分支中标记测试版?