Skip to content

Commit c582c87

Browse files
author
Dmitry Zhelnin
committed
ReleaseManager: do not reset VersionHeightOffset if equals to -1
1 parent 39e8085 commit c582c87

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed

src/NerdBank.GitVersioning/ReleaseManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ private void UpdateVersion(LibGit2Context context, SemanticVersion oldVersion, S
280280

281281
if (!EqualityComparer<SemanticVersion>.Default.Equals(versionOptions.Version, newVersion))
282282
{
283-
if (versionOptions.VersionHeightPosition.HasValue && SemanticVersion.WillVersionChangeResetVersionHeight(versionOptions.Version, newVersion, versionOptions.VersionHeightPosition.Value))
283+
if (versionOptions.VersionHeightOffset != -1 && versionOptions.VersionHeightPosition.HasValue && SemanticVersion.WillVersionChangeResetVersionHeight(versionOptions.Version, newVersion, versionOptions.VersionHeightPosition.Value))
284284
{
285285
// The version will be reset by this change, so remove the version height offset property.
286286
versionOptions.VersionHeightOffset = null;

test/Nerdbank.GitVersioning.Tests/ReleaseManagerTests.cs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -638,6 +638,44 @@ public void PrepareRelease_ResetsVersionHeightOffset()
638638
Assert.Equal(expectedReleaseVersionOptions, releaseVersion);
639639
}
640640

641+
[Fact]
642+
public void PrepareRelease_DoesNotResetNegativeVersionHeightOffset()
643+
{
644+
// create and configure repository
645+
this.InitializeSourceControl();
646+
647+
var initialVersionOptions = new VersionOptions
648+
{
649+
Version = SemanticVersion.Parse("1.0-beta"),
650+
VersionHeightOffset = -1,
651+
};
652+
653+
var expectedReleaseVersionOptions = new VersionOptions
654+
{
655+
Version = SemanticVersion.Parse("1.0"),
656+
VersionHeightOffset = -1,
657+
};
658+
659+
var expectedMainVersionOptions = new VersionOptions
660+
{
661+
Version = SemanticVersion.Parse("1.1-alpha"),
662+
VersionHeightOffset = -1,
663+
};
664+
665+
// create version.json
666+
this.WriteVersionFile(initialVersionOptions);
667+
668+
var releaseManager = new ReleaseManager();
669+
releaseManager.PrepareRelease(this.RepoPath);
670+
671+
this.SetContextToHead();
672+
VersionOptions newVersion = this.Context.VersionFile.GetVersion();
673+
Assert.Equal(expectedMainVersionOptions, newVersion);
674+
675+
VersionOptions releaseVersion = this.GetVersionOptions(committish: this.LibGit2Repository.Branches["v1.0"].Tip.Sha);
676+
Assert.Equal(expectedReleaseVersionOptions, releaseVersion);
677+
}
678+
641679
[Theory]
642680
[InlineData("1.0-beta", "{0} Custom commit message pattern", "1.0 Custom commit message pattern")]
643681
[InlineData("1.0-beta", "Custom commit message pattern - {0} custom message", "Custom commit message pattern - 1.0 custom message")]

0 commit comments

Comments
 (0)