@@ -31,75 +31,26 @@ public override BaseVersion GetVersion(GitVersionContext context)
31
31
32
32
static bool TryParse ( Commit mergeCommit , EffectiveConfiguration configuration , out SemanticVersion semanticVersion )
33
33
{
34
- string versionPart ;
35
- if ( Inner ( mergeCommit , out versionPart ) )
36
- {
37
- return SemanticVersion . TryParse ( versionPart , configuration . GitTagPrefix , out semanticVersion ) ;
38
- }
39
- semanticVersion = null ;
40
- return false ;
34
+ semanticVersion = Inner ( mergeCommit , configuration ) ;
35
+ return semanticVersion != null ;
41
36
}
42
37
43
- static bool Inner ( Commit mergeCommit , out string versionPart )
38
+ private static SemanticVersion Inner ( Commit mergeCommit , EffectiveConfiguration configuration )
44
39
{
45
40
if ( mergeCommit . Parents . Count ( ) < 2 )
46
41
{
47
- versionPart = null ;
48
- return false ;
49
- }
50
-
51
- var message = mergeCommit . Message . TrimToFirstLine ( ) ;
52
-
53
- var knownMergePrefixes = new [ ] { "Merge branch 'hotfix-" , "Merge branch 'hotfix/" , "Merge branch 'release-" , "Merge branch 'release/" } ;
54
-
55
- foreach ( var prefix in knownMergePrefixes )
56
- {
57
- if ( message . StartsWith ( prefix ) )
58
- {
59
- var suffix = message . Substring ( prefix . Length ) ;
60
- return TryGetPrefix ( suffix , out versionPart , "'" ) ;
61
- }
62
- }
63
-
64
- if ( message . StartsWith ( "Merge branch '" ) )
65
- {
66
- var suffix = message . Replace ( "Merge branch '" , "" ) ;
67
-
68
- if ( suffix . Contains ( "-" ) )
69
- {
70
- suffix = suffix . Split ( '-' ) [ 1 ] ;
71
- }
72
- return TryGetPrefix ( suffix , out versionPart , "'" ) ;
42
+ return null ;
73
43
}
74
44
75
- if ( message . StartsWith ( "Merge pull request #" ) )
76
- {
77
- var split = message . Split ( new [ ]
45
+ return mergeCommit
46
+ . Message . Split ( '/' , '-' , ' \' ' , '"' , ' ' )
47
+ . Select ( part =>
78
48
{
79
- "/"
80
- } , StringSplitOptions . RemoveEmptyEntries ) ;
81
- if ( split . Length != 2 )
82
- {
83
- versionPart = null ;
84
- return false ;
85
- }
86
- return TryGetSuffix ( split [ 1 ] , out versionPart , "-" ) ;
87
- }
88
-
89
- if ( message . StartsWith ( "Finish Release-" ) ) //Match Syntevo SmartGit client's GitFlow 'release' merge commit message formatting
90
- {
91
- versionPart = message . Replace ( "Finish Release-" , "" ) ;
92
- return true ;
93
- }
94
-
95
- if ( message . StartsWith ( "Finish " ) ) //Match Syntevo SmartGit client's GitFlow 'hotfix' merge commit message formatting
96
- {
97
- versionPart = message . Replace ( "Finish " , "" ) ;
98
- return true ;
99
- }
49
+ SemanticVersion v ;
50
+ return SemanticVersion . TryParse ( part , configuration . GitTagPrefix , out v ) ? v : null ;
51
+ } ) . FirstOrDefault ( v => v != null )
52
+ ;
100
53
101
- versionPart = null ;
102
- return false ;
103
54
}
104
55
105
56
static bool TryGetPrefix ( string target , out string result , string splitter )
0 commit comments