@@ -48,69 +48,18 @@ static bool Inner(Commit mergeCommit, out string versionPart)
48
48
return false ;
49
49
}
50
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
- if ( message . StartsWith ( "Merge tag '" ) )
59
- {
60
- var suffix = message . Replace ( "Merge tag '" , "" ) ;
61
-
62
- if ( suffix . Contains ( "-" ) )
63
- {
64
- suffix = suffix . Split ( '-' ) [ 1 ] ;
65
- }
66
- return TryGetPrefix ( suffix , out versionPart , "'" ) ;
67
- }
68
-
69
- {
70
- var suffix = message . Substring ( prefix . Length ) ;
71
- return TryGetPrefix ( suffix , out versionPart , "'" ) ;
72
- }
73
- }
74
-
75
- if ( message . StartsWith ( "Merge branch '" ) )
76
- {
77
- var suffix = message . Replace ( "Merge branch '" , "" ) ;
78
-
79
- if ( suffix . Contains ( "-" ) )
51
+ var version = mergeCommit
52
+ . Message . Split ( '/' , '-' , '\' ' , '"' , ' ' )
53
+ . Select ( part =>
80
54
{
81
- suffix = suffix . Split ( '-' ) [ 1 ] ;
82
- }
83
- return TryGetPrefix ( suffix , out versionPart , "'" ) ;
84
- }
85
-
86
- if ( message . StartsWith ( "Merge pull request #" ) )
87
- {
88
- var split = message . Split ( new [ ]
89
- {
90
- "/"
91
- } , StringSplitOptions . RemoveEmptyEntries ) ;
92
- if ( split . Length != 2 )
93
- {
94
- versionPart = null ;
95
- return false ;
96
- }
97
- return TryGetSuffix ( split [ 1 ] , out versionPart , "-" ) ;
98
- }
55
+ SemanticVersion v ;
56
+ return SemanticVersion . TryParse ( part , "" , out v ) ? v : null ;
57
+ } ) . FirstOrDefault ( v => v != null )
58
+ ;
99
59
100
- if ( message . StartsWith ( "Finish Release-" ) ) //Match Syntevo SmartGit client's GitFlow 'release' merge commit message formatting
101
- {
102
- versionPart = message . Replace ( "Finish Release-" , "" ) ;
103
- return true ;
104
- }
105
-
106
- if ( message . StartsWith ( "Finish " ) ) //Match Syntevo SmartGit client's GitFlow 'hotfix' merge commit message formatting
107
- {
108
- versionPart = message . Replace ( "Finish " , "" ) ;
109
- return true ;
110
- }
60
+ versionPart = version != null ? version . ToString ( ) : null ;
111
61
112
- versionPart = null ;
113
- return false ;
62
+ return versionPart != null ;
114
63
}
115
64
116
65
static bool TryGetPrefix ( string target , out string result , string splitter )
0 commit comments