diff --git a/src/Resources/Locales/en_US.axaml b/src/Resources/Locales/en_US.axaml
index 6f03ef06..75be560a 100644
--- a/src/Resources/Locales/en_US.axaml
+++ b/src/Resources/Locales/en_US.axaml
@@ -64,6 +64,8 @@
Branch Compare
Bytes
CANCEL
+ Reset to This Revision
+ Reset to Parent Revision
CHANGE DISPLAY MODE
Show as File and Dir List
Show as Path List
diff --git a/src/Resources/Locales/zh_CN.axaml b/src/Resources/Locales/zh_CN.axaml
index 96b85d7b..2bd21da2 100644
--- a/src/Resources/Locales/zh_CN.axaml
+++ b/src/Resources/Locales/zh_CN.axaml
@@ -67,6 +67,8 @@
分支比较
字节
取 消
+ 重置文件到该版本
+ 重置文件到上一版本
切换变更显示模式
文件名+路径列表模式
全路径列表模式
diff --git a/src/Resources/Locales/zh_TW.axaml b/src/Resources/Locales/zh_TW.axaml
index 1f49fe1b..ea4a2cde 100644
--- a/src/Resources/Locales/zh_TW.axaml
+++ b/src/Resources/Locales/zh_TW.axaml
@@ -67,6 +67,8 @@
分支比較
位元組
取 消
+ 重置檔案到該版本
+ 重置檔案到上一版本
切換變更顯示模式
檔名+路徑列表模式
全路徑列表模式
diff --git a/src/ViewModels/CommitDetail.cs b/src/ViewModels/CommitDetail.cs
index 33a96022..dba0e7b2 100644
--- a/src/ViewModels/CommitDetail.cs
+++ b/src/ViewModels/CommitDetail.cs
@@ -260,6 +260,33 @@ namespace SourceGit.ViewModels
ev.Handled = true;
};
menu.Items.Add(diffWithMerger);
+ menu.Items.Add(new MenuItem { Header = "-" });
+
+ if (File.Exists(Path.Combine(_repo.FullPath, change.Path)))
+ {
+ var resetToThisRevision = new MenuItem();
+ resetToThisRevision.Header = App.Text("ChangeCM.CheckoutThisRevision");
+ resetToThisRevision.Icon = App.CreateMenuIcon("Icons.Undo");
+ resetToThisRevision.Click += (_, ev) =>
+ {
+ new Commands.Checkout(_repo.FullPath).FileWithRevision(change.Path, $"{_commit.SHA}");
+ ev.Handled = true;
+ };
+
+ var resetToFirstParent = new MenuItem();
+ resetToFirstParent.Header = App.Text("ChangeCM.CheckoutFirstParentRevision");
+ resetToFirstParent.Icon = App.CreateMenuIcon("Icons.Undo");
+ resetToFirstParent.IsEnabled = _commit.Parents.Count > 0 && change.Index != Models.ChangeState.Added;
+ resetToFirstParent.Click += (_, ev) =>
+ {
+ new Commands.Checkout(_repo.FullPath).FileWithRevision(change.Path, $"{_commit.SHA}~1");
+ ev.Handled = true;
+ };
+
+ menu.Items.Add(resetToThisRevision);
+ menu.Items.Add(resetToFirstParent);
+ menu.Items.Add(new MenuItem { Header = "-" });
+ }
if (change.Index != Models.ChangeState.Deleted)
{
@@ -294,7 +321,6 @@ namespace SourceGit.ViewModels
ev.Handled = true;
};
- menu.Items.Add(new MenuItem { Header = "-" });
menu.Items.Add(history);
menu.Items.Add(blame);
menu.Items.Add(explore);