GitVersion icon indicating copy to clipboard operation
GitVersion copied to clipboard

[Bug] If -diag switch is specified first, -config is ignored

Open beatcracker opened this issue 4 years ago • 2 comments

Describe the bug

If -diag switch is specified first in commandline arguments, the -config switch is ignored.

Expected Behavior

Order of arguments should not matter.

Actual Behavior

Position of -diag switch affects argument parsing: -config switch is ignored.

Steps to Reproduce

mkdir repro
cd repro
dotnet tool install --global GitVersion.Tool
echo wtf > GitVersion.yml
echo next-version: 3.2.1 > custom.yml
git init
git commit -m "FooBar" --allow-empty
dotnet-gitversion -config custom.yml -diag
dotnet-gitversion -diag -config custom.yml

First GitVersion invocation (dotnet-gitversion -config custom.yml -diag) will run succefuly and return:

{
  "Major": 3,
  "Minor": 2,
  "Patch": 1,
  // ...
}

The second invocation will fail, since -diag switch is specified first and it'll ignore config file specified via -config and will try to read GitVersiion.yml.

YamlDotNet.Core.YamlException: (Line: 1, Col: 1, Idx: 0) - (Line: 1, Col: 4, Idx: 3): Exception during deserialization

Context

It's very hard to try various configurations when order of switches affects result. Related: #2848

Your Environment

  • Operating System and version: Windows 10
  • GitVesion: 5.7.0+Branch.main.Sha.8d177c6d666c8eeb1c6a6a2c71fd4b78741137d2

beatcracker avatar Sep 21 '21 14:09 beatcracker

Seems like we don't have a test for -diag at all. I suppose the bug may be that -config is parsed as a value for -diag somehow. It should be fairly easy to test and fix. Are you up for submitting a PR?

asbjornu avatar Sep 21 '21 20:09 asbjornu

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.

github-actions[bot] avatar Sep 29 '23 11:09 github-actions[bot]