Skip to content

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

Open
@beatcracker

Description

@beatcracker

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions