1- using System . Threading . Tasks ;
1+ using System ;
2+ using System . Threading . Tasks ;
23
34namespace SourceGit . ViewModels
45{
@@ -7,13 +8,11 @@ public class Merge : Popup
78 public string Source
89 {
910 get ;
10- private set ;
1111 }
1212
1313 public string Into
1414 {
1515 get ;
16- private set ;
1716 }
1817
1918 public Models . MergeMode SelectedMode
@@ -27,7 +26,7 @@ public Merge(Repository repo, string source, string into)
2726 _repo = repo ;
2827 Source = source ;
2928 Into = into ;
30- SelectedMode = Models . MergeMode . Supported [ 0 ] ;
29+ SelectedMode = AutoSelectMergeMode ( ) ;
3130 View = new Views . Merge ( ) { DataContext = this } ;
3231 }
3332
@@ -44,6 +43,21 @@ public override Task<bool> Sure()
4443 } ) ;
4544 }
4645
46+ private Models . MergeMode AutoSelectMergeMode ( )
47+ {
48+ var config = new Commands . Config ( _repo . FullPath ) . Get ( $ "branch.{ Into } .mergeoptions") ;
49+ if ( string . IsNullOrEmpty ( config ) )
50+ return Models . MergeMode . Supported [ 0 ] ;
51+ if ( config . Equals ( "--no-ff" , StringComparison . Ordinal ) )
52+ return Models . MergeMode . Supported [ 1 ] ;
53+ if ( config . Equals ( "--squash" , StringComparison . Ordinal ) )
54+ return Models . MergeMode . Supported [ 2 ] ;
55+ if ( config . Equals ( "--no-commit" , StringComparison . Ordinal ) || config . Equals ( "--no-ff --no-commit" , StringComparison . Ordinal ) )
56+ return Models . MergeMode . Supported [ 3 ] ;
57+
58+ return Models . MergeMode . Supported [ 0 ] ;
59+ }
60+
4761 private readonly Repository _repo = null ;
4862 }
4963}
0 commit comments