Skip to content

Commit feb7e96

Browse files
committed
enhance: show friendly name instead of --theirs or --mine while resolving conflicts
1 parent c8cdda3 commit feb7e96

File tree

5 files changed

+45
-0
lines changed

5 files changed

+45
-0
lines changed

src/Resources/Locales/en_US.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,7 @@
281281
<x:String x:Key="Text.FileCM.DiscardMulti" xml:space="preserve">Discard {0} files...</x:String>
282282
<x:String x:Key="Text.FileCM.DiscardSelectedLines" xml:space="preserve">Discard Changes in Selected Line(s)</x:String>
283283
<x:String x:Key="Text.FileCM.OpenWithExternalMerger" xml:space="preserve">Open External Merge Tool</x:String>
284+
<x:String x:Key="Text.FileCM.ResolveUsing" xml:space="preserve">Resolve Using '{0}'</x:String>
284285
<x:String x:Key="Text.FileCM.SaveAsPatch" xml:space="preserve">Save as Patch...</x:String>
285286
<x:String x:Key="Text.FileCM.Stage" xml:space="preserve">Stage</x:String>
286287
<x:String x:Key="Text.FileCM.StageMulti" xml:space="preserve">Stage {0} files</x:String>

src/Resources/Locales/zh_CN.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,7 @@
284284
<x:String x:Key="Text.FileCM.DiscardMulti" xml:space="preserve">放弃 {0} 个文件的更改...</x:String>
285285
<x:String x:Key="Text.FileCM.DiscardSelectedLines" xml:space="preserve">放弃选中的更改</x:String>
286286
<x:String x:Key="Text.FileCM.OpenWithExternalMerger" xml:space="preserve">使用外部合并工具打开</x:String>
287+
<x:String x:Key="Text.FileCM.ResolveUsing" xml:space="preserve">应用 '{0}'</x:String>
287288
<x:String x:Key="Text.FileCM.SaveAsPatch" xml:space="preserve">另存为补丁...</x:String>
288289
<x:String x:Key="Text.FileCM.Stage" xml:space="preserve">暂存(add)</x:String>
289290
<x:String x:Key="Text.FileCM.StageMulti" xml:space="preserve">暂存(add){0} 个文件</x:String>

src/Resources/Locales/zh_TW.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,7 @@
284284
<x:String x:Key="Text.FileCM.DiscardMulti" xml:space="preserve">捨棄已選的 {0} 個檔案變更...</x:String>
285285
<x:String x:Key="Text.FileCM.DiscardSelectedLines" xml:space="preserve">捨棄選取的變更</x:String>
286286
<x:String x:Key="Text.FileCM.OpenWithExternalMerger" xml:space="preserve">使用外部合併工具開啟</x:String>
287+
<x:String x:Key="Text.FileCM.ResolveUsing" xml:space="preserve">使用 '{0}'</x:String>
287288
<x:String x:Key="Text.FileCM.SaveAsPatch" xml:space="preserve">另存為修補檔 (patch)...</x:String>
288289
<x:String x:Key="Text.FileCM.Stage" xml:space="preserve">暫存 (add)</x:String>
289290
<x:String x:Key="Text.FileCM.StageMulti" xml:space="preserve">暫存 (add) 已選的 {0} 個檔案</x:String>

src/ViewModels/InProgressContexts.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,12 @@ public CherryPickInProgress(Repository repo) : base(repo.FullPath, "cherry-pick"
8181

8282
public class RebaseInProgress : InProgressContext
8383
{
84+
public string HeadName
85+
{
86+
get;
87+
private set;
88+
}
89+
8490
public Models.Commit StoppedAt
8591
{
8692
get;
@@ -93,6 +99,10 @@ public RebaseInProgress(Repository repo) : base(repo.FullPath, "rebase", true)
9399

94100
var stoppedSHA = File.ReadAllText(Path.Combine(repo.GitDir, "rebase-merge", "stopped-sha")).Trim();
95101
StoppedAt = new Commands.QuerySingleCommit(repo.FullPath, stoppedSHA).Result();
102+
103+
HeadName = File.ReadAllText(Path.Combine(repo.GitDir, "rebase-merge", "head-name")).Trim();
104+
if (HeadName.StartsWith("refs/heads/"))
105+
HeadName = HeadName.Substring(11);
96106
}
97107

98108
public override bool Continue()

src/ViewModels/WorkingCopy.cs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -569,6 +569,22 @@ public ContextMenu CreateContextMenuForUnstagedChanges()
569569
e.Handled = true;
570570
};
571571

572+
if (_inProgressContext is RebaseInProgress rebase)
573+
{
574+
useTheirs.Header = App.Text("FileCM.ResolveUsing", rebase.HeadName);
575+
useMine.Header = App.Text("FileCM.ResolveUsing", rebase.StoppedAt.SHA.Substring(0, 10));
576+
}
577+
else if (_inProgressContext is CherryPickInProgress cherryPick)
578+
{
579+
useTheirs.Header = App.Text("FileCM.ResolveUsing", cherryPick.Head.SHA.Substring(0, 10));
580+
useMine.Header = App.Text("FileCM.ResolveUsing", _repo.CurrentBranch.Name);
581+
}
582+
else if (_inProgressContext is MergeInProgress merge)
583+
{
584+
useTheirs.Header = App.Text("FileCM.ResolveUsing", merge.SourceName);
585+
useMine.Header = App.Text("FileCM.ResolveUsing", _repo.CurrentBranch.Name);
586+
}
587+
572588
menu.Items.Add(useTheirs);
573589
menu.Items.Add(useMine);
574590
menu.Items.Add(openMerger);
@@ -892,6 +908,22 @@ public ContextMenu CreateContextMenuForUnstagedChanges()
892908
e.Handled = true;
893909
};
894910

911+
if (_inProgressContext is RebaseInProgress rebase)
912+
{
913+
useTheirs.Header = App.Text("FileCM.ResolveUsing", rebase.HeadName);
914+
useMine.Header = App.Text("FileCM.ResolveUsing", rebase.StoppedAt.SHA.Substring(0, 10));
915+
}
916+
else if (_inProgressContext is CherryPickInProgress cherryPick)
917+
{
918+
useTheirs.Header = App.Text("FileCM.ResolveUsing", cherryPick.Head.SHA.Substring(0, 10));
919+
useMine.Header = App.Text("FileCM.ResolveUsing", _repo.CurrentBranch.Name);
920+
}
921+
else if (_inProgressContext is MergeInProgress merge)
922+
{
923+
useTheirs.Header = App.Text("FileCM.ResolveUsing", merge.SourceName);
924+
useMine.Header = App.Text("FileCM.ResolveUsing", _repo.CurrentBranch.Name);
925+
}
926+
895927
menu.Items.Add(useTheirs);
896928
menu.Items.Add(useMine);
897929
return menu;

0 commit comments

Comments
 (0)