GitVersion
GitVersion copied to clipboard
[ISSUE]: gitversion 6.10.0 (and 6.5.0 as well) hangs for a while when calculating version
Prerequisites
- [x] I have written a descriptive issue title
- [x] 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).
Is it possible to create a repository somehow to get it reproduceable? Or a integration test. What makes your repository so special beside the fact that you have a lot of tags.
Can I somehow collect anonymous logs from gitversion to be able to provide it here? I don't think I would be able to re-create similar public repository to provide if for you.
@HHobeck do you have ideas how I can provide additional information without exposing my repository?
@HHobeck do you have ideas how I can provide additional information without exposing my repository?
Maybe writing a tool which uses your repository and randomize/anonymize the commit history including branches and tags?
Hi @HHobeck can I enable verbose logging or create any kinds of logs that might help you with investigations?
This issue has been automatically marked as stale because it has not had recent activity. After 30 days from now, it will be closed if no further activity occurs.
This issue was closed because it has been stalled for 30 days with no activity. Thank you for your contributions
:tada: This issue has been resolved in version 6.5.0 :tada: The release is available on:
Your GitReleaseManager bot :package::rocket: