@@ -127,7 +127,7 @@ SemanticVersion FindMainlineModeVersion(BaseVersion baseVersion, GitVersionConte
127
127
mainlineVersion = IncrementForEachCommit ( context , directCommits , mainlineVersion ) ;
128
128
mainlineVersion . BuildMetaData = metaDataCalculator . Create ( findMergeBase , context ) ;
129
129
// Only increment if head is not a merge commit, ensures PR's and forward merges end up correct.
130
- if ( mergedHead . Parents . Count ( ) == 1 )
130
+ if ( mergedHead . Parents . Count ( ) == 1 )
131
131
{
132
132
Logger . WriteInfo ( string . Format ( "Performing {0} increment for current branch " , branchIncrement ) ) ;
133
133
mainlineVersion = mainlineVersion . IncrementVersion ( branchIncrement ) ;
@@ -146,7 +146,7 @@ SemanticVersion FindMainlineModeVersion(BaseVersion baseVersion, GitVersionConte
146
146
147
147
SemanticVersion AggregateMergeCommitIncrement ( GitVersionContext context , Commit commit , List < Commit > directCommits , SemanticVersion mainlineVersion )
148
148
{
149
- // Merge commit, process all merged commits as a batch
149
+ // Merge commit, process all merged commits as a batch
150
150
var mergeCommit = commit ;
151
151
var mergedHead = GetMergedHead ( mergeCommit ) ;
152
152
var findMergeBase = context . Repository . ObjectDatabase . FindMergeBase ( mergeCommit . Parents . First ( ) , mergedHead ) ;
@@ -183,8 +183,14 @@ static Commit GetMainlineTip(GitVersionContext context)
183
183
seenMainlineTips . Add ( b . Tip . Sha ) ;
184
184
return true ;
185
185
} )
186
- . GroupBy ( b => context . Repository . ObjectDatabase . FindMergeBase ( b . Tip , context . CurrentCommit ) . Sha )
187
- . ToDictionary ( b => b . Key , b => b . ToList ( ) ) ;
186
+ . Select ( b => new
187
+ {
188
+ MergeBase = context . Repository . ObjectDatabase . FindMergeBase ( b . Tip , context . CurrentCommit ) ,
189
+ Branch = b
190
+ } )
191
+ . Where ( a => a . MergeBase != null )
192
+ . GroupBy ( b => b . MergeBase . Sha , b => b . Branch )
193
+ . ToDictionary ( b => b . Key , b => b . ToList ( ) ) ;
188
194
189
195
var allMainlines = mainlineBranches . Values . SelectMany ( branches => branches . Select ( b => b . FriendlyName ) ) ;
190
196
Logger . WriteInfo ( "Found possible mainline branches: " + string . Join ( ", " , allMainlines ) ) ;
@@ -217,7 +223,7 @@ private static SemanticVersion IncrementForEachCommit(GitVersionContext context,
217
223
directCommit
218
224
} ) ?? VersionField . Patch ;
219
225
mainlineVersion = mainlineVersion . IncrementVersion ( directCommitIncrement ) ;
220
- Logger . WriteInfo ( string . Format ( "Direct commit on master {0} incremented base versions {1}, now {2}" ,
226
+ Logger . WriteInfo ( string . Format ( "Direct commit on master {0} incremented base versions {1}, now {2}" ,
221
227
directCommit . Sha , directCommitIncrement , mainlineVersion ) ) ;
222
228
}
223
229
return mainlineVersion ;
@@ -231,8 +237,8 @@ private static VersionField FindMessageIncrement(
231
237
IncludeReachableFrom = mergedHead ,
232
238
ExcludeReachableFrom = findMergeBase
233
239
} ;
234
- var commits = mergeCommit == null ?
235
- context . Repository . Commits . QueryBy ( filter ) . ToList ( ) :
240
+ var commits = mergeCommit == null ?
241
+ context . Repository . Commits . QueryBy ( filter ) . ToList ( ) :
236
242
new [ ] { mergeCommit } . Union ( context . Repository . Commits . QueryBy ( filter ) ) . ToList ( ) ;
237
243
commitLog . RemoveAll ( c => commits . Any ( c1 => c1 . Sha == c . Sha ) ) ;
238
244
return IncrementStrategyFinder . GetIncrementForCommits ( context , commits ) ?? VersionField . Patch ;
0 commit comments