Skip to content

Commit 93d9a04

Browse files
committed
enhance: show reverting commit in banner while reverting is in-progress
1 parent 2dd9cab commit 93d9a04

File tree

6 files changed

+36
-9
lines changed

6 files changed

+36
-9
lines changed

src/Resources/Locales/en_US.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,7 @@
399399
<x:String x:Key="Text.InProgress.Rebase" xml:space="preserve">Rebase in progress.</x:String>
400400
<x:String x:Key="Text.InProgress.Rebase.StoppedAt" xml:space="preserve">Stopped at</x:String>
401401
<x:String x:Key="Text.InProgress.Revert" xml:space="preserve">Revert in progress.</x:String>
402+
<x:String x:Key="Text.InProgress.Revert.Head" xml:space="preserve">Reverting commit</x:String>
402403
<x:String x:Key="Text.InteractiveRebase" xml:space="preserve">Interactive Rebase</x:String>
403404
<x:String x:Key="Text.InteractiveRebase.Target" xml:space="preserve">Target Branch:</x:String>
404405
<x:String x:Key="Text.InteractiveRebase.On" xml:space="preserve">On:</x:String>

src/Resources/Locales/zh_CN.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -402,6 +402,7 @@
402402
<x:String x:Key="Text.InProgress.Rebase" xml:space="preserve">变基(Rebase)操作进行中。</x:String>
403403
<x:String x:Key="Text.InProgress.Rebase.StoppedAt" xml:space="preserve">当前停止于</x:String>
404404
<x:String x:Key="Text.InProgress.Revert" xml:space="preserve">回滚提交操作进行中。</x:String>
405+
<x:String x:Key="Text.InProgress.Revert.Head" xml:space="preserve">正在回滚提交</x:String>
405406
<x:String x:Key="Text.InteractiveRebase" xml:space="preserve">交互式变基</x:String>
406407
<x:String x:Key="Text.InteractiveRebase.Target" xml:space="preserve">目标分支 :</x:String>
407408
<x:String x:Key="Text.InteractiveRebase.On" xml:space="preserve">起始提交 :</x:String>

src/Resources/Locales/zh_TW.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -402,6 +402,7 @@
402402
<x:String x:Key="Text.InProgress.Rebase" xml:space="preserve">重定基底 (rebase) 操作進行中。</x:String>
403403
<x:String x:Key="Text.InProgress.Rebase.StoppedAt" xml:space="preserve">当前停止于</x:String>
404404
<x:String x:Key="Text.InProgress.Revert" xml:space="preserve">復原提交操作進行中。</x:String>
405+
<x:String x:Key="Text.InProgress.Revert.Head" xml:space="preserve">正在復原提交</x:String>
405406
<x:String x:Key="Text.InteractiveRebase" xml:space="preserve">互動式重定基底</x:String>
406407
<x:String x:Key="Text.InteractiveRebase.Target" xml:space="preserve">目標分支:</x:String>
407408
<x:String x:Key="Text.InteractiveRebase.On" xml:space="preserve">起始提交:</x:String>

src/ViewModels/InProgressContexts.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public string HeadName
9393
public CherryPickInProgress(Repository repo) : base(repo.FullPath, "cherry-pick", true)
9494
{
9595
var headSHA = File.ReadAllText(Path.Combine(repo.GitDir, "CHERRY_PICK_HEAD")).Trim();
96-
Head = new Commands.QuerySingleCommit(repo.FullPath, headSHA).Result();
96+
Head = new Commands.QuerySingleCommit(repo.FullPath, headSHA).Result() ?? new Models.Commit() { SHA = headSHA };
9797
}
9898
}
9999

@@ -171,7 +171,17 @@ public override bool Continue()
171171

172172
public class RevertInProgress : InProgressContext
173173
{
174-
public RevertInProgress(Repository repo) : base(repo.FullPath, "revert", false) { }
174+
public Models.Commit Head
175+
{
176+
get;
177+
private set;
178+
}
179+
180+
public RevertInProgress(Repository repo) : base(repo.FullPath, "revert", false)
181+
{
182+
var headSHA = File.ReadAllText(Path.Combine(repo.GitDir, "REVERT_HEAD")).Trim();
183+
Head = new Commands.QuerySingleCommit(repo.FullPath, headSHA).Result() ?? new Models.Commit() { SHA = headSHA };
184+
}
175185
}
176186

177187
public class MergeInProgress : InProgressContext

src/ViewModels/WorkingCopy.cs

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

572-
if (_inProgressContext is RebaseInProgress rebase)
572+
if (_inProgressContext is CherryPickInProgress cherryPick)
573+
{
574+
useTheirs.Header = new Views.NameHighlightedTextBlock("FileCM.ResolveUsing", cherryPick.HeadName);
575+
useMine.Header = new Views.NameHighlightedTextBlock("FileCM.ResolveUsing", _repo.CurrentBranch.Name);
576+
}
577+
else if(_inProgressContext is RebaseInProgress rebase)
573578
{
574579
useTheirs.Header = new Views.NameHighlightedTextBlock("FileCM.ResolveUsing", rebase.HeadName);
575580
useMine.Header = new Views.NameHighlightedTextBlock("FileCM.ResolveUsing", rebase.BaseName);
576581
}
577-
else if (_inProgressContext is CherryPickInProgress cherryPick)
582+
else if (_inProgressContext is RevertInProgress revert)
578583
{
579-
useTheirs.Header = new Views.NameHighlightedTextBlock("FileCM.ResolveUsing", cherryPick.HeadName);
584+
useTheirs.Header = new Views.NameHighlightedTextBlock("FileCM.ResolveUsing", revert.Head.SHA.Substring(0, 10) + " (revert)");
580585
useMine.Header = new Views.NameHighlightedTextBlock("FileCM.ResolveUsing", _repo.CurrentBranch.Name);
581586
}
582587
else if (_inProgressContext is MergeInProgress merge)
@@ -909,14 +914,19 @@ public ContextMenu CreateContextMenuForUnstagedChanges()
909914
e.Handled = true;
910915
};
911916

912-
if (_inProgressContext is RebaseInProgress rebase)
917+
if (_inProgressContext is CherryPickInProgress cherryPick)
918+
{
919+
useTheirs.Header = new Views.NameHighlightedTextBlock("FileCM.ResolveUsing", cherryPick.HeadName);
920+
useMine.Header = new Views.NameHighlightedTextBlock("FileCM.ResolveUsing", _repo.CurrentBranch.Name);
921+
}
922+
else if (_inProgressContext is RebaseInProgress rebase)
913923
{
914924
useTheirs.Header = new Views.NameHighlightedTextBlock("FileCM.ResolveUsing", rebase.HeadName);
915925
useMine.Header = new Views.NameHighlightedTextBlock("FileCM.ResolveUsing", rebase.BaseName);
916926
}
917-
else if (_inProgressContext is CherryPickInProgress cherryPick)
927+
else if (_inProgressContext is RevertInProgress revert)
918928
{
919-
useTheirs.Header = new Views.NameHighlightedTextBlock("FileCM.ResolveUsing", cherryPick.HeadName);
929+
useTheirs.Header = new Views.NameHighlightedTextBlock("FileCM.ResolveUsing", revert.Head.SHA.Substring(0,10) + " (revert)");
920930
useMine.Header = new Views.NameHighlightedTextBlock("FileCM.ResolveUsing", _repo.CurrentBranch.Name);
921931
}
922932
else if (_inProgressContext is MergeInProgress merge)

src/Views/Repository.axaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -579,7 +579,11 @@
579579
</DataTemplate>
580580

581581
<DataTemplate DataType="vm:RevertInProgress">
582-
<TextBlock FontWeight="Bold" Foreground="{DynamicResource Brush.ConflictForeground}" Text="{DynamicResource Text.InProgress.Revert}"/>
582+
<StackPanel Orientation="Horizontal">
583+
<TextBlock FontWeight="Bold" Foreground="{DynamicResource Brush.ConflictForeground}" Text="{DynamicResource Text.InProgress.Revert}"/>
584+
<TextBlock FontWeight="Bold" Margin="4,0,0,0" Foreground="{DynamicResource Brush.ConflictForeground}" Text="{DynamicResource Text.InProgress.Revert.Head}"/>
585+
<TextBlock FontWeight="Bold" Margin="4,0,0,0" Foreground="DarkOrange" Text="{Binding Head.SHA, Converter={x:Static c:StringConverters.ToShortSHA}}" ToolTip.Tip="{Binding Head}"/>
586+
</StackPanel>
583587
</DataTemplate>
584588

585589
<DataTemplate DataType="vm:MergeInProgress">

0 commit comments

Comments
 (0)