@@ -78,47 +78,27 @@ public override async Task<bool> Sure()
7878 }
7979
8080 private Models . MergeMode AutoSelectMergeMode ( )
81- {
82- return
83- GetGitConfigBranchMergeOptions ( ) // Branch
84- ?? GetSettingsPreferredMergeMode ( ) // Repository
85- ?? GetGitConfigMergeFF ( ) ; // Global
86- }
87-
88- private Models . MergeMode GetGitConfigBranchMergeOptions ( )
8981 {
9082 var config = new Commands . Config ( _repo . FullPath ) . GetAsync ( $ "branch.{ Into } .mergeoptions") . Result ;
91- return config switch
83+ var mode = config switch
9284 {
93- null or "" => null ,
9485 "--ff-only" => Models . MergeMode . FastForward ,
9586 "--no-ff" => Models . MergeMode . NoFastForward ,
9687 "--squash" => Models . MergeMode . Squash ,
9788 "--no-commit" or "--no-ff --no-commit" => Models . MergeMode . DontCommit ,
98- _ => null
89+ _ => null ,
9990 } ;
100- }
10191
102- private Models . MergeMode GetSettingsPreferredMergeMode ( )
103- {
92+ if ( mode != null )
93+ return mode ;
94+
10495 var preferredMergeModeIdx = _repo . Settings . PreferredMergeMode ;
10596 if ( preferredMergeModeIdx < 0 || preferredMergeModeIdx > Models . MergeMode . Supported . Length )
106- return null ;
97+ return Models . MergeMode . Default ;
10798
10899 return Models . MergeMode . Supported [ preferredMergeModeIdx ] ;
109100 }
110101
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-
122102 private readonly Repository _repo = null ;
123103 private readonly string _sourceName ;
124104 }
0 commit comments