Skip to content

Commit d8bc3f9

Browse files
committed
fix: PR #1501
- returns `null` to fallback to git's `merge.ff` configure when user does not configure `Preferred Merge Mode` - since `GetGitConfigBranchMergeOptions` is the last one, returns `Default` as fallback Signed-off-by: leo <[email protected]>
1 parent b40ad9a commit d8bc3f9

File tree

1 file changed

+18
-20
lines changed

1 file changed

+18
-20
lines changed

src/ViewModels/Merge.cs

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -85,42 +85,40 @@ private Models.MergeMode AutoSelectMergeMode()
8585
return
8686
GetGitConfigBranchMergeOptions() // Branch
8787
?? GetSettingsPreferredMergeMode() // Repository
88-
?? GetGitConfigMergeFF() // Global
89-
?? Models.MergeMode.Default; // Fallback
88+
?? GetGitConfigMergeFF(); // Global
89+
}
90+
91+
private Models.MergeMode GetGitConfigBranchMergeOptions()
92+
{
93+
var config = new Commands.Config(_repo.FullPath).Get($"branch.{Into}.mergeoptions");
94+
return config switch
95+
{
96+
null or "" => null,
97+
"--ff-only" => Models.MergeMode.FastForward,
98+
"--no-ff" => Models.MergeMode.NoFastForward,
99+
"--squash" => Models.MergeMode.Squash,
100+
"--no-commit" or "--no-ff --no-commit" => Models.MergeMode.DontCommit,
101+
_ => null
102+
};
90103
}
91104

92105
private Models.MergeMode GetSettingsPreferredMergeMode()
93106
{
94107
var preferredMergeModeIdx = _repo.Settings.PreferredMergeMode;
95108
if (preferredMergeModeIdx < 0 || preferredMergeModeIdx > Models.MergeMode.Supported.Length)
96-
return Models.MergeMode.Supported[preferredMergeModeIdx];
109+
return null;
97110

98-
return Models.MergeMode.Default;
111+
return Models.MergeMode.Supported[preferredMergeModeIdx];
99112
}
100113

101114
private Models.MergeMode GetGitConfigMergeFF()
102115
{
103116
var config = new Commands.Config(_repo.FullPath).Get("merge.ff");
104117
return config switch
105118
{
106-
null or "" => null,
107119
"false" => Models.MergeMode.NoFastForward,
108120
"only" => Models.MergeMode.FastForward,
109-
_ => null
110-
};
111-
}
112-
113-
private Models.MergeMode GetGitConfigBranchMergeOptions()
114-
{
115-
var config = new Commands.Config(_repo.FullPath).Get($"branch.{Into}.mergeoptions");
116-
return config switch
117-
{
118-
null or "" => null,
119-
"--ff-only" => Models.MergeMode.FastForward,
120-
"--no-ff" => Models.MergeMode.NoFastForward,
121-
"--squash" => Models.MergeMode.Squash,
122-
"--no-commit" or "--no-ff --no-commit" => Models.MergeMode.DontCommit,
123-
_ => null
121+
_ => Models.MergeMode.Default
124122
};
125123
}
126124

0 commit comments

Comments
 (0)