Skip to content

Commit a6bc4f9

Browse files
author
Mark Rydstrom
committed
Initial fix for issues around merging to a feature branch and back to master
1 parent 01cf01e commit a6bc4f9

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

src/GitVersionCore/VersionCalculation/NextVersionCalculator.cs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,15 @@ SemanticVersion FindMainlineModeVersion(BaseVersion baseVersion, GitVersionConte
101101
ExcludeReachableFrom = baseVersion.BaseVersionSource,
102102
SortBy = CommitSortStrategies.Reverse
103103
}).Where(c => c.Sha != baseVersion.BaseVersionSource.Sha).ToList();
104+
105+
var firstParentLog = context.Repository.Commits.QueryBy(new CommitFilter
106+
{
107+
IncludeReachableFrom = context.CurrentBranch,
108+
ExcludeReachableFrom = baseVersion.BaseVersionSource,
109+
SortBy = CommitSortStrategies.Reverse,
110+
FirstParentOnly = true
111+
}).Where(c => c.Sha != baseVersion.BaseVersionSource.Sha).ToList();
112+
104113
var directCommits = new List<Commit>();
105114

106115
// Scans commit log in reverse, aggregating merge commits
@@ -109,7 +118,14 @@ SemanticVersion FindMainlineModeVersion(BaseVersion baseVersion, GitVersionConte
109118
directCommits.Add(commit);
110119
if (commit.Parents.Count() > 1)
111120
{
112-
mainlineVersion = AggregateMergeCommitIncrement(context, commit, directCommits, mainlineVersion);
121+
if (firstParentLog.Contains(commit))
122+
{
123+
mainlineVersion = AggregateMergeCommitIncrement(context, commit, directCommits, mainlineVersion);
124+
}
125+
else
126+
{
127+
directCommits.Remove(commit);
128+
}
113129
}
114130
}
115131

0 commit comments

Comments
 (0)