@@ -78,47 +78,27 @@ public override async Task<bool> Sure()
78
78
}
79
79
80
80
private Models . MergeMode AutoSelectMergeMode ( )
81
- {
82
- return
83
- GetGitConfigBranchMergeOptions ( ) // Branch
84
- ?? GetSettingsPreferredMergeMode ( ) // Repository
85
- ?? GetGitConfigMergeFF ( ) ; // Global
86
- }
87
-
88
- private Models . MergeMode GetGitConfigBranchMergeOptions ( )
89
81
{
90
82
var config = new Commands . Config ( _repo . FullPath ) . GetAsync ( $ "branch.{ Into } .mergeoptions") . Result ;
91
- return config switch
83
+ var mode = config switch
92
84
{
93
- null or "" => null ,
94
85
"--ff-only" => Models . MergeMode . FastForward ,
95
86
"--no-ff" => Models . MergeMode . NoFastForward ,
96
87
"--squash" => Models . MergeMode . Squash ,
97
88
"--no-commit" or "--no-ff --no-commit" => Models . MergeMode . DontCommit ,
98
- _ => null
89
+ _ => null ,
99
90
} ;
100
- }
101
91
102
- private Models . MergeMode GetSettingsPreferredMergeMode ( )
103
- {
92
+ if ( mode != null )
93
+ return mode ;
94
+
104
95
var preferredMergeModeIdx = _repo . Settings . PreferredMergeMode ;
105
96
if ( preferredMergeModeIdx < 0 || preferredMergeModeIdx > Models . MergeMode . Supported . Length )
106
- return null ;
97
+ return Models . MergeMode . Default ;
107
98
108
99
return Models . MergeMode . Supported [ preferredMergeModeIdx ] ;
109
100
}
110
101
111
- private Models . MergeMode GetGitConfigMergeFF ( )
112
- {
113
- var config = new Commands . Config ( _repo . FullPath ) . GetAsync ( "merge.ff" ) . Result ;
114
- return config switch
115
- {
116
- "false" => Models . MergeMode . NoFastForward ,
117
- "only" => Models . MergeMode . FastForward ,
118
- _ => Models . MergeMode . Default
119
- } ;
120
- }
121
-
122
102
private readonly Repository _repo = null ;
123
103
private readonly string _sourceName ;
124
104
}
0 commit comments