Skip to content

[ISSUE]: gitversion 6.10.0 (and 6.5.0 as well) hangs for a while when calculating version #4409

Open
@simonachmueller

Description

@simonachmueller

Prerequisites

  • I have written a descriptive issue title
  • I have searched issues to ensure it has not already been reported

GitVersion package

GitVersion.Tool, gittools/actions, AzureDevops task

GitVersion version

6.10.0

Operating system

Linux, Windows

What are you seeing?

We are using git flow and mark specific commits on the release branch with a tag (looks like vX.X.X, v1.2.3 for example) and then run a Azure Devops build pipeline selecting that tag. Here is the GitVersion.yml

assembly-informational-format: "{FullSemVer}"
branches:
  develop:
    label: develop
  release:
    label: release
    is-release-branch: true
  hotfix:
    label: hotfix
ignore:
  sha: []
merge-message-formats: {}

Relevant release pipeline:

  - checkout: self
    clean: true
    fetchDepth: 0
  - task: gitversion/setup@3
    displayName: gitversion/setup
    inputs:
      versionSpec: 6.0.x
  - task: gitversion/execute@3
    displayName: gitversion/execute

We just updated from gitversion 5.12.0 to 6.0.5 and the gitversion/execute task takes now 1.5 hours for a first run and 3.5 hours a week later.
v5.12.0 finishes within a minute.
I can reproduce that behavior locally, by checking out our repository on a specific tag.

Gitversion starts as /opt/hostedtoolcache/GitVersion.Tool/6.0.5/dotnet-gitversion --roll-forward Major /home/vsts/work/1/s /output json /l console on the azure hosted build agent.
I can't provide the full output, but some findings:

Azure build agent reports memory and CPU warnings Agent environment resources - Disk: / Available 18306.55 MB out of 74244.74 MB, Memory: Used 6846.00 MB out of 6921.00 MB, CPU: Usage 94.92%

Gitversion runs fast in the beginning on tags with the output like Begin: Finding merge base between 'tags/v2.17.0' and 'origin/release/2.9.0'. etc
Then it stops for like 50 minutes and start to work on branches Begin: Finding merge base between 'hotfix/2.15.1' and 'master'.

Our repo has around a 100 active tags and somewhat about 15 active branches.

What is expected?

Gitversion finishes within few minutes

Steps to Reproduce

Run on a repo when a tag is checked out?

RepositoryFixture Test

No response

Output log or link to your CI build (if appropriate).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions