mirror of
https://fastgit.cc/github.com/sourcegit-scm/sourcegit
synced 2026-04-24 19:02:39 +08:00
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 <longshuang@msn.cn>
This commit is contained in:
@@ -85,29 +85,7 @@ namespace SourceGit.ViewModels
|
||||
return
|
||||
GetGitConfigBranchMergeOptions() // Branch
|
||||
?? GetSettingsPreferredMergeMode() // Repository
|
||||
?? GetGitConfigMergeFF() // Global
|
||||
?? Models.MergeMode.Default; // Fallback
|
||||
}
|
||||
|
||||
private Models.MergeMode GetSettingsPreferredMergeMode()
|
||||
{
|
||||
var preferredMergeModeIdx = _repo.Settings.PreferredMergeMode;
|
||||
if (preferredMergeModeIdx < 0 || preferredMergeModeIdx > Models.MergeMode.Supported.Length)
|
||||
return Models.MergeMode.Supported[preferredMergeModeIdx];
|
||||
|
||||
return Models.MergeMode.Default;
|
||||
}
|
||||
|
||||
private Models.MergeMode GetGitConfigMergeFF()
|
||||
{
|
||||
var config = new Commands.Config(_repo.FullPath).Get("merge.ff");
|
||||
return config switch
|
||||
{
|
||||
null or "" => null,
|
||||
"false" => Models.MergeMode.NoFastForward,
|
||||
"only" => Models.MergeMode.FastForward,
|
||||
_ => null
|
||||
};
|
||||
?? GetGitConfigMergeFF(); // Global
|
||||
}
|
||||
|
||||
private Models.MergeMode GetGitConfigBranchMergeOptions()
|
||||
@@ -124,6 +102,26 @@ namespace SourceGit.ViewModels
|
||||
};
|
||||
}
|
||||
|
||||
private Models.MergeMode GetSettingsPreferredMergeMode()
|
||||
{
|
||||
var preferredMergeModeIdx = _repo.Settings.PreferredMergeMode;
|
||||
if (preferredMergeModeIdx < 0 || preferredMergeModeIdx > Models.MergeMode.Supported.Length)
|
||||
return null;
|
||||
|
||||
return Models.MergeMode.Supported[preferredMergeModeIdx];
|
||||
}
|
||||
|
||||
private Models.MergeMode GetGitConfigMergeFF()
|
||||
{
|
||||
var config = new Commands.Config(_repo.FullPath).Get("merge.ff");
|
||||
return config switch
|
||||
{
|
||||
"false" => Models.MergeMode.NoFastForward,
|
||||
"only" => Models.MergeMode.FastForward,
|
||||
_ => Models.MergeMode.Default
|
||||
};
|
||||
}
|
||||
|
||||
private readonly Repository _repo = null;
|
||||
private readonly string _sourceName;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user