@@ -257,29 +257,6 @@ public IEnumerable<BranchCommit> FindCommitBranchesWasBranchedFrom(IBranch branc
257257 . SelectMany ( tag => GetCurrentCommitSemanticVersions ( commit , tagPrefix , tag , format , handleDetachedBranch ) )
258258 . Max ( ) ;
259259
260- public IEnumerable < SemanticVersion > GetVersionTagsOnBranch ( IBranch branch , string ? tagPrefix , SemanticVersionFormat format )
261- {
262- branch = branch . NotNull ( ) ;
263-
264- if ( this . taggedSemanticVersionsOnBranchCache . TryGetValue ( branch , out var onBranch ) )
265- {
266- this . log . Debug ( $ "Cache hit for version tags on branch '{ branch . Name . Canonical } ") ;
267- return onBranch . Select ( element => element . Value ) ;
268- }
269-
270- using ( this . log . IndentLog ( $ "Getting version tags from branch '{ branch . Name . Canonical } '.") )
271- {
272- var semanticVersions = GetTaggedSemanticVersions ( tagPrefix , format ) ;
273- var tagsBySha = semanticVersions . Where ( t => t . Tag . TargetSha != null ) . ToLookup ( t => t . Tag . TargetSha , t => t ) ;
274-
275- var versionTags = ( branch . Commits . SelectMany ( c => tagsBySha [ c . Sha ] . Select ( t => t ) )
276- ?? Enumerable . Empty < SemanticVersionWithTag > ( ) ) . ToList ( ) ;
277-
278- this . taggedSemanticVersionsOnBranchCache . Add ( branch , versionTags ) ;
279- return versionTags . Select ( element => element . Value ) ;
280- }
281- }
282-
283260 public IReadOnlyList < SemanticVersionWithTag > GetTaggedSemanticVersions ( string ? tagPrefix , SemanticVersionFormat format )
284261 {
285262 if ( this . taggedSemanticVersionsCache != null )
@@ -359,93 +336,4 @@ private IEnumerable<SemanticVersion> GetCurrentCommitSemanticVersions(ICommit? c
359336 ? new [ ] { version }
360337 : Array . Empty < SemanticVersion > ( ) ;
361338 }
362-
363- public IEnumerable < SemanticVersionWithTag > GetSemanticVersions ( IGitVersionConfiguration configuration ,
364- IBranch currentBranch , ICommit currentCommit , bool trackMergeTarget , bool tracksReleaseBranches )
365- {
366- var olderThan = currentCommit ? . When ;
367-
368- IEnumerable < SemanticVersionWithTag > GetSemanticVersions ( )
369- {
370- var semanticVersions = GetTaggedSemanticVersions (
371- configuration . TagPrefix , configuration . SemanticVersionFormat
372- ) . ToList ( ) ;
373- var semanticVersionsByCommitLazy = new Lazy < ILookup < string , SemanticVersionWithTag > > (
374- ( ) => semanticVersions . ToLookup ( element => element . Tag . Commit . Id . Sha )
375- ) ;
376-
377- foreach ( var semanticVersion in GetSemanticVersionsCommon ( currentBranch , semanticVersionsByCommitLazy ) )
378- {
379- if ( semanticVersion . Tag . Commit . When <= olderThan ) yield return semanticVersion ;
380- }
381-
382- if ( trackMergeTarget )
383- {
384- foreach ( var semanticVersion in GetSemanticVersionsTrackMergeTarget ( currentBranch , semanticVersionsByCommitLazy ) )
385- {
386- if ( semanticVersion . Tag . Commit . When <= olderThan ) yield return semanticVersion ;
387- }
388- }
389-
390- if ( tracksReleaseBranches )
391- {
392- foreach ( var semanticVersion in GetSemanticVersionsTracksReleaseBranches ( configuration , semanticVersionsByCommitLazy ) )
393- {
394- yield return semanticVersion ;
395- }
396- }
397- }
398-
399- var alreadyReturnedValues = new HashSet < SemanticVersionWithTag > ( ) ;
400-
401- foreach ( var semanticVersion in GetSemanticVersions ( ) )
402- {
403- if ( alreadyReturnedValues . Add ( semanticVersion ) )
404- yield return semanticVersion ;
405- }
406- }
407-
408- private static IEnumerable < SemanticVersionWithTag > GetSemanticVersionsCommon (
409- IBranch currentBranch , Lazy < ILookup < string , SemanticVersionWithTag > > semanticVersionsByCommitLazy )
410- {
411- foreach ( var commit in currentBranch . Commits )
412- {
413- foreach ( var semanticVersion in semanticVersionsByCommitLazy . Value [ commit . Id . Sha ] )
414- {
415- yield return semanticVersion ;
416- }
417- }
418- }
419-
420- private static IEnumerable < SemanticVersionWithTag > GetSemanticVersionsTrackMergeTarget (
421- IBranch currentBranch , Lazy < ILookup < string , SemanticVersionWithTag > > semanticVersionsByCommitLazy )
422- {
423- var commitsOnCurrentBranch = currentBranch . Commits . ToArray ( ) ;
424- if ( ! commitsOnCurrentBranch . Any ( ) ) yield break ;
425-
426- var shaHashSet = new HashSet < string > ( commitsOnCurrentBranch . Select ( element => element . Id . Sha ) ) ;
427- foreach ( var semanticVersion in semanticVersionsByCommitLazy . Value . SelectMany ( element => element ) )
428- {
429- var parentCommits = semanticVersion . Tag . Commit . Parents ?? Array . Empty < ICommit > ( ) ;
430- if ( parentCommits . Any ( element => shaHashSet . Contains ( element . Id . Sha ) ) )
431- {
432- yield return semanticVersion ;
433- }
434- }
435- }
436-
437- private IEnumerable < SemanticVersionWithTag > GetSemanticVersionsTracksReleaseBranches (
438- IGitVersionConfiguration configuration , Lazy < ILookup < string , SemanticVersionWithTag > > semanticVersionsByCommitLazy )
439- {
440- foreach ( var mainBranch in FindMainlineBranches ( configuration ) )
441- {
442- foreach ( var commit in mainBranch . Commits ? . ToArray ( ) ?? Array . Empty < ICommit > ( ) )
443- {
444- foreach ( var semanticVersion in semanticVersionsByCommitLazy . Value [ commit . Id . Sha ] )
445- {
446- yield return semanticVersion ;
447- }
448- }
449- }
450- }
451339}
0 commit comments