Skip to content

Commit b5ac6eb

Browse files
committed
No need to do anything in TrackMergeTargetBaseVersionStrategy if TrackMergeTarget is disabled or
the currentBranchName is null or empty
1 parent 7919a46 commit b5ac6eb

File tree

2 files changed

+27
-16
lines changed

2 files changed

+27
-16
lines changed

src/GitVersionCore/VersionCalculation/BaseVersionCalculators/TaggedCommitVersionStrategy.cs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,6 @@ public class TaggedCommitVersionStrategy : BaseVersionStrategy
88
{
99
public override IEnumerable<BaseVersion> GetVersions(GitVersionContext context)
1010
{
11-
string currentBranchName = null;
12-
var head = context.Repository.Head;
13-
if (head != null)
14-
{
15-
currentBranchName = head.CanonicalName;
16-
}
17-
1811
var olderThan = context.CurrentCommit.When();
1912
var allTags = context.Repository.Tags
2013
.Where(tag => ((Commit)tag.PeeledTarget()).When() <= olderThan)
@@ -23,7 +16,7 @@ public override IEnumerable<BaseVersion> GetVersions(GitVersionContext context)
2316
.Commits
2417
.SelectMany(commit =>
2518
{
26-
return allTags.Where(t => IsValidTag(context, currentBranchName, t, commit));
19+
return allTags.Where(t => IsValidTag(t, commit));
2720
})
2821
.Select(t =>
2922
{
@@ -66,7 +59,7 @@ protected virtual string FormatSource(VersionTaggedCommit version)
6659
return string.Format("Git tag '{0}'", version.Tag);
6760
}
6861

69-
protected virtual bool IsValidTag(GitVersionContext context, string branchName, Tag tag, Commit commit)
62+
protected virtual bool IsValidTag(Tag tag, Commit commit)
7063
{
7164
return tag.PeeledTarget() == commit;
7265
}

src/GitVersionCore/VersionCalculation/BaseVersionCalculators/TrackMergeTargetBaseVersionStrategy.cs

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,40 @@
11
namespace GitVersion.VersionCalculation.BaseVersionCalculators
22
{
33
using System;
4+
using System.Collections.Generic;
45
using System.Linq;
56
using LibGit2Sharp;
67

78
public class TrackMergeTargetBaseVersionStrategy : TaggedCommitVersionStrategy
89
{
9-
protected override bool IsValidTag(GitVersionContext context, string branchName, Tag tag, Commit commit)
10+
public override IEnumerable<BaseVersion> GetVersions(GitVersionContext context)
1011
{
11-
if (!string.IsNullOrWhiteSpace(branchName))
12+
if(!context.Configuration.TrackMergeTarget)
1213
{
13-
if (context.Configuration.TrackMergeTarget)
14-
{
15-
return IsDirectMergeFromCommit(tag, commit);
16-
}
14+
yield break;
1715
}
1816

19-
return false;
17+
string currentBranchName = null;
18+
var head = context.Repository.Head;
19+
if (head != null)
20+
{
21+
currentBranchName = head.CanonicalName;
22+
}
23+
24+
if (string.IsNullOrWhiteSpace(currentBranchName))
25+
{
26+
yield break;
27+
}
28+
29+
foreach (var version in base.GetVersions(context))
30+
{
31+
yield return version;
32+
}
33+
}
34+
35+
protected override bool IsValidTag(Tag tag, Commit commit)
36+
{
37+
return IsDirectMergeFromCommit(tag, commit);
2038
}
2139

2240
protected override string FormatSource(VersionTaggedCommit version)

0 commit comments

Comments
 (0)