Skip to content

Commit df2c347

Browse files
committed
Added test around commit message bumping and fixed test
1 parent 52d2050 commit df2c347

File tree

3 files changed

+26
-12
lines changed

3 files changed

+26
-12
lines changed

src/GitVersionCore.Tests/Helpers/GitTestExtensions.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ public static class GitTestExtensions
88
{
99
static int pad = 1;
1010

11-
public static Commit MakeACommit(this IRepository repository)
11+
public static Commit MakeACommit(this IRepository repository, string commitMessage = null)
1212
{
13-
return CreateFileAndCommit(repository, Guid.NewGuid().ToString());
13+
return CreateFileAndCommit(repository, Guid.NewGuid().ToString(), commitMessage);
1414
}
1515

1616
public static void MergeNoFF(this IRepository repository, string branch)
@@ -33,7 +33,7 @@ public static Commit[] MakeCommits(this IRepository repository, int numCommitsTo
3333
.ToArray();
3434
}
3535

36-
public static Commit CreateFileAndCommit(this IRepository repository, string relativeFileName)
36+
public static Commit CreateFileAndCommit(this IRepository repository, string relativeFileName, string commitMessage = null)
3737
{
3838
var randomFile = Path.Combine(repository.Info.WorkingDirectory, relativeFileName);
3939
if (File.Exists(randomFile))
@@ -47,7 +47,7 @@ public static Commit CreateFileAndCommit(this IRepository repository, string rel
4747

4848
repository.Stage(randomFile);
4949

50-
return repository.Commit(string.Format("Test Commit for file '{0}'", relativeFileName),
50+
return repository.Commit(string.Format("Test Commit for file '{0}' - {1}", relativeFileName, commitMessage),
5151
Constants.SignatureNow(), Constants.SignatureNow());
5252
}
5353

src/GitVersionCore.Tests/IntegrationTests/VersionBumpingScenarios.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,22 @@ public void AppliedPrereleaseTagCausesBump()
2323
fixture.AssertFullSemver("1.0.0-pre.2+1");
2424
}
2525
}
26+
27+
[Test]
28+
public void CanUseCommitMessagesToBumpVersion()
29+
{
30+
using (var fixture = new EmptyRepositoryFixture(new Config()))
31+
{
32+
fixture.Repository.MakeACommit();
33+
fixture.MakeATaggedCommit("1.0.0");
34+
fixture.Repository.MakeACommit("+semver:minor");
35+
36+
fixture.AssertFullSemver("1.1.0+1");
37+
38+
fixture.Repository.MakeACommit("+semver:major");
39+
40+
fixture.AssertFullSemver("2.0.0+2");
41+
}
42+
43+
}
2644
}

src/GitVersionCore/IncrementStrategyFinder.cs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public static class IncrementStrategyFinder
5454
return null;
5555
}
5656

57-
var commits = GetIntermediateCommits(context.Repository, baseVersion.BaseVersionSource, context.CurrentCommit, context.CurrentBranch);
57+
var commits = GetIntermediateCommits(context.Repository, baseVersion.BaseVersionSource, context.CurrentCommit);
5858

5959
if (context.Configuration.CommitMessageIncrementing == CommitMessageIncrementMode.MergeMessageOnly)
6060
{
@@ -79,16 +79,15 @@ public static class IncrementStrategyFinder
7979
return null;
8080
}
8181

82-
private static IEnumerable<Commit> GetIntermediateCommits(IRepository repo, Commit baseCommit, Commit headCommit, Branch currentBranch)
82+
private static IEnumerable<Commit> GetIntermediateCommits(IRepository repo, Commit baseCommit, Commit headCommit)
8383
{
8484
if (baseCommit == null) yield break;
8585

86-
if (intermediateCommitCache == null || intermediateCommitCache.Last() != currentBranch.Tip)
86+
if (intermediateCommitCache == null || intermediateCommitCache.LastOrDefault() != headCommit)
8787
{
8888
var filter = new CommitFilter
8989
{
90-
Since = currentBranch.Tip,
91-
Until = baseCommit,
90+
Since = headCommit,
9291
SortBy = CommitSortStrategies.Topological | CommitSortStrategies.Reverse
9392
};
9493

@@ -103,9 +102,6 @@ private static IEnumerable<Commit> GetIntermediateCommits(IRepository repo, Comm
103102

104103
if (found)
105104
yield return commit;
106-
107-
if (commit.Sha == headCommit.Sha)
108-
yield break;
109105
}
110106
}
111107

0 commit comments

Comments
 (0)