Skip to content

Commit bfd639c

Browse files
committed
enhance: external merge tool can only used for both-added or both-modified conflict(s)
Signed-off-by: leo <longshuang@msn.cn>
1 parent c60a2de commit bfd639c

File tree

1 file changed

+21
-18
lines changed

1 file changed

+21
-18
lines changed

src/ViewModels/WorkingCopy.cs

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -591,27 +591,30 @@ public ContextMenu CreateContextMenuForUnstagedChanges(string selectedSingleFold
591591
var change = _selectedUnstaged[0];
592592
var path = Native.OS.GetAbsPath(_repo.FullPath, change.Path);
593593

594-
var openMerger = new MenuItem();
595-
openMerger.Header = App.Text("OpenInExternalMergeTool");
596-
openMerger.Icon = App.CreateMenuIcon("Icons.OpenWith");
597-
openMerger.Tag = OperatingSystem.IsMacOS() ? "⌘+⇧+D" : "Ctrl+Shift+D";
598-
openMerger.Click += async (_, e) =>
594+
if (!change.IsConflicted || change.ConflictReason is Models.ConflictReason.BothAdded or Models.ConflictReason.BothModified)
599595
{
600-
if (change.IsConflicted)
601-
{
602-
await UseExternalMergeTool(change);
603-
}
604-
else
596+
var openMerger = new MenuItem();
597+
openMerger.Header = App.Text("OpenInExternalMergeTool");
598+
openMerger.Icon = App.CreateMenuIcon("Icons.OpenWith");
599+
openMerger.Tag = OperatingSystem.IsMacOS() ? "⌘+⇧+D" : "Ctrl+Shift+D";
600+
openMerger.Click += async (_, e) =>
605601
{
606-
var toolType = Preferences.Instance.ExternalMergeToolType;
607-
var toolPath = Preferences.Instance.ExternalMergeToolPath;
608-
var opt = new Models.DiffOption(change, true);
609-
new Commands.DiffTool(_repo.FullPath, toolType, toolPath, opt).Open();
610-
}
602+
if (change.IsConflicted)
603+
{
604+
await UseExternalMergeTool(change);
605+
}
606+
else
607+
{
608+
var toolType = Preferences.Instance.ExternalMergeToolType;
609+
var toolPath = Preferences.Instance.ExternalMergeToolPath;
610+
var opt = new Models.DiffOption(change, true);
611+
new Commands.DiffTool(_repo.FullPath, toolType, toolPath, opt).Open();
612+
}
611613

612-
e.Handled = true;
613-
};
614-
menu.Items.Add(openMerger);
614+
e.Handled = true;
615+
};
616+
menu.Items.Add(openMerger);
617+
}
615618

616619
var openWith = new MenuItem();
617620
openWith.Header = App.Text("OpenWith");

0 commit comments

Comments
 (0)