@@ -101,6 +101,15 @@ SemanticVersion FindMainlineModeVersion(BaseVersion baseVersion, GitVersionConte
101
101
ExcludeReachableFrom = baseVersion . BaseVersionSource ,
102
102
SortBy = CommitSortStrategies . Reverse
103
103
} ) . 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
+
104
113
var directCommits = new List < Commit > ( ) ;
105
114
106
115
// Scans commit log in reverse, aggregating merge commits
@@ -109,7 +118,14 @@ SemanticVersion FindMainlineModeVersion(BaseVersion baseVersion, GitVersionConte
109
118
directCommits . Add ( commit ) ;
110
119
if ( commit . Parents . Count ( ) > 1 )
111
120
{
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
+ }
113
129
}
114
130
}
115
131
0 commit comments