Skip to content

Commit afbb8a4

Browse files
authored
Merge pull request #2423 from pysco68/feature/repo-dirty-flag
Implemented the Dirty flag
2 parents 8a97f47 + 5e53806 commit afbb8a4

File tree

36 files changed

+129
-18
lines changed

36 files changed

+129
-18
lines changed

docs/input/docs/more-info/variables.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ Running `GitVersion.exe` in your repo will show you what is available. For the
3939
"VersionSourceSha":"950d2f830f5a2af12a6779a48d20dcbb02351f25",
4040
"CommitsSinceVersionSource":1,
4141
"CommitsSinceVersionSourcePadded":"0001",
42-
"CommitDate":"2014-03-06"
42+
"CommitDate":"2014-03-06",
43+
"UncommittedChanges": 0
4344
}
4445
```
4546

src/GitVersionCore.Tests/Core/GitVersionExecutorTests.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ public void CacheFileExistsOnDisk()
148148
CommitsSinceVersionSource: 19
149149
CommitsSinceVersionSourcePadded: 0019
150150
CommitDate: 2015-11-10
151+
UncommittedChanges: 0
151152
";
152153

153154
var stringBuilder = new StringBuilder();
@@ -208,6 +209,7 @@ public void CacheFileExistsOnDiskWhenOverrideConfigIsSpecifiedVersionShouldBeDyn
208209
CommitsSinceVersionSource: 19
209210
CommitsSinceVersionSourcePadded: 0019
210211
CommitDate: 2015-11-10
212+
UncommittedChanges: 0
211213
";
212214

213215
using var fixture = new EmptyRepositoryFixture();
@@ -294,6 +296,7 @@ public void ConfigChangeInvalidatesCache()
294296
CommitsSinceVersionSource: 19
295297
CommitsSinceVersionSourcePadded: 0019
296298
CommitDate: 2015-11-10
299+
UncommittedChanges: 0
297300
";
298301

299302
using var fixture = new EmptyRepositoryFixture();
@@ -357,6 +360,7 @@ public void NoCacheBypassesCache()
357360
CommitsSinceVersionSource: 19
358361
CommitsSinceVersionSourcePadded: 0019
359362
CommitDate: 2015-11-10
363+
UncommittedChanges: 0
360364
";
361365

362366
using var fixture = new EmptyRepositoryFixture();

src/GitVersionCore.Tests/Helpers/TestableVersionVariables.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ public TestableVersionVariables(
1414
string weightedPreReleaseNumber = "", string informationalVersion = "", string commitDate = "",
1515
string nugetVersion = "", string nugetVersionV2 = "", string nugetPreReleaseTag = "",
1616
string nugetPreReleaseTagV2 = "", string versionSourceSha = "", string commitsSinceVersionSource = "",
17-
string commitsSinceVersionSourcePadded = "") : base(
17+
string commitsSinceVersionSourcePadded = "", string uncommittedChanges = "") : base(
1818
major, minor, patch, buildMetaData, buildMetaDataPadded, fullBuildMetaData, branchName, escapedBranchName,
1919
sha, shortSha, majorMinorPatch, semVer, legacySemVer, legacySemVerPadded, fullSemVer,
2020
assemblySemVer, assemblySemFileVer, preReleaseTag, weightedPreReleaseNumber, preReleaseTagWithDash,
2121
preReleaseLabel, preReleaseNumber, informationalVersion, commitDate, nugetVersion, nugetVersionV2,
22-
nugetPreReleaseTag, nugetPreReleaseTagV2, versionSourceSha, commitsSinceVersionSource, commitsSinceVersionSourcePadded)
22+
nugetPreReleaseTag, nugetPreReleaseTagV2, versionSourceSha, commitsSinceVersionSource, commitsSinceVersionSourcePadded, uncommittedChanges)
2323
{
2424
}
2525
}

src/GitVersionCore.Tests/IntegrationTests/OtherScenarios.cs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1+
using System.Globalization;
2+
using System.IO;
13
using System.Linq;
24
using GitTools.Testing;
35
using GitVersionCore.Tests.Helpers;
46
using LibGit2Sharp;
57
using NUnit.Framework;
8+
using Shouldly;
69

710
namespace GitVersionCore.Tests.IntegrationTests
811
{
@@ -94,5 +97,40 @@ public void DoNotBlowUpWhenDevelopAndFeatureBranchPointAtSameCommit()
9497
fixture.InitializeRepo();
9598
fixture.AssertFullSemver("1.1.0-alpha.1");
9699
}
100+
101+
[TestCase(true, 1)]
102+
[TestCase(false, 1)]
103+
[TestCase(true, 5)]
104+
[TestCase(false, 5)]
105+
public void HasDirtyFlagWhenUncommittedChangesAreInRepo(bool stageFile, int numberOfFiles)
106+
{
107+
using var fixture = new EmptyRepositoryFixture();
108+
fixture.Repository.MakeACommit();
109+
110+
for (int i = 0; i < numberOfFiles; i++)
111+
{
112+
var tempFile = Path.GetTempFileName();
113+
var repoFile = Path.Combine(fixture.RepositoryPath, Path.GetFileNameWithoutExtension(tempFile) + ".txt");
114+
File.Move(tempFile, repoFile);
115+
File.WriteAllText(repoFile, $"Hello world / testfile {i}");
116+
117+
if (stageFile)
118+
Commands.Stage(fixture.Repository, repoFile);
119+
}
120+
121+
var version = fixture.GetVersion();
122+
version.UncommittedChanges.ShouldBe(numberOfFiles.ToString(CultureInfo.InvariantCulture));
123+
}
124+
125+
[Test]
126+
public void NoDirtyFlagInCleanRepository()
127+
{
128+
using var fixture = new EmptyRepositoryFixture();
129+
fixture.Repository.MakeACommit();
130+
131+
var version = fixture.GetVersion();
132+
var zero = 0;
133+
version.UncommittedChanges.ShouldBe(zero.ToString(CultureInfo.InvariantCulture));
134+
}
97135
}
98136
}

src/GitVersionCore.Tests/Model/CommitDateTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public void CommitDateFormatTest(string format, string expectedOutcome)
2424
var formatValues = new SemanticVersionFormatValues(
2525
new SemanticVersion
2626
{
27-
BuildMetaData = new SemanticVersionBuildMetaData("950d2f830f5a2af12a6779a48d20dcbb02351f25", 0, "master", "3139d4eeb044f46057693473eacc2655b3b27e7d", "3139d4eeb", new DateTimeOffset(date, TimeSpan.Zero)), // assume time zone is UTC
27+
BuildMetaData = new SemanticVersionBuildMetaData("950d2f830f5a2af12a6779a48d20dcbb02351f25", 0, "master", "3139d4eeb044f46057693473eacc2655b3b27e7d", "3139d4eeb", new DateTimeOffset(date, TimeSpan.Zero), 0), // assume time zone is UTC
2828

2929
},
3030
new EffectiveConfiguration(

src/GitVersionCore.Tests/VersionCalculation/Approved/JsonVersionBuilderTests.Json.approved.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,6 @@
2929
"VersionSourceSha":"versionSourceSha",
3030
"CommitsSinceVersionSource":5,
3131
"CommitsSinceVersionSourcePadded":"0005",
32+
"UncommittedChanges":0,
3233
"CommitDate":"2014-03-06"
3334
}

src/GitVersionCore.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranch.approved.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,6 @@
2929
"VersionSourceSha":"versionSourceSha",
3030
"CommitsSinceVersionSource":5,
3131
"CommitsSinceVersionSourcePadded":"0005",
32+
"UncommittedChanges":0,
3233
"CommitDate":"2014-03-06"
3334
}

src/GitVersionCore.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForFeatureBranchWithCustomAssemblyInfoFormat.approved.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,6 @@
2929
"VersionSourceSha":"versionSourceSha",
3030
"CommitsSinceVersionSource":5,
3131
"CommitsSinceVersionSourcePadded":"0005",
32+
"UncommittedChanges":0,
3233
"CommitDate":"2014-03-06"
3334
}

src/GitVersionCore.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreRelease.approved.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,6 @@
2929
"VersionSourceSha":"versionSourceSha",
3030
"CommitsSinceVersionSource":5,
3131
"CommitsSinceVersionSourcePadded":"0005",
32+
"UncommittedChanges":0,
3233
"CommitDate":"2014-03-06"
3334
}

src/GitVersionCore.Tests/VersionCalculation/Approved/VariableProviderTests.ProvidesVariablesInContinuousDeliveryModeForPreReleaseWithPadding.approved.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,6 @@
2929
"VersionSourceSha":"versionSourceSha",
3030
"CommitsSinceVersionSource":5,
3131
"CommitsSinceVersionSourcePadded":"0005",
32+
"UncommittedChanges":0,
3233
"CommitDate":"2014-03-06"
3334
}

0 commit comments

Comments
 (0)