diff --git a/TRANSLATION.md b/TRANSLATION.md
index e2d1478f0..186b5de0a 100644
--- a/TRANSLATION.md
+++ b/TRANSLATION.md
@@ -236,6 +236,7 @@ This document shows the translation status of each locale file in the repository
- Text.BranchCM.CreatePR
- Text.BranchCM.CreatePRForUpstream
- Text.BranchCM.EditDescription
+- Text.BranchCM.InteractiveRebase.Manually
- Text.BranchCM.ResetToSelectedCommit
- Text.BranchCM.SwitchToWorktree
- Text.BranchTree.Ahead
@@ -579,6 +580,7 @@ This document shows the translation status of each locale file in the repository
Missing keys in pt_BR.axaml
- Text.Blame.BlameOnPreviousRevision
+- Text.BranchCM.InteractiveRebase.Manually
- Text.BranchTree.AheadBehind
- Text.BranchTree.Behind
- Text.BranchTree.Tracking
@@ -913,6 +915,7 @@ This document shows the translation status of each locale file in the repository
- Text.BranchCM.CreatePR
- Text.BranchCM.CreatePRForUpstream
- Text.BranchCM.EditDescription
+- Text.BranchCM.InteractiveRebase.Manually
- Text.BranchCM.ResetToSelectedCommit
- Text.BranchCM.SwitchToWorktree
- Text.BranchTree.Ahead
@@ -1191,6 +1194,7 @@ This document shows the translation status of each locale file in the repository
- Text.BranchCM.CreatePR
- Text.BranchCM.CreatePRForUpstream
- Text.BranchCM.EditDescription
+- Text.BranchCM.InteractiveRebase.Manually
- Text.BranchCM.ResetToSelectedCommit
- Text.BranchCM.SwitchToWorktree
- Text.BranchTree.Ahead
@@ -1434,4 +1438,4 @@ This document shows the translation status of each locale file in the repository
### 
-### 
\ No newline at end of file
+### 
diff --git a/src/Resources/Locales/de_DE.axaml b/src/Resources/Locales/de_DE.axaml
index 6fab3b0db..96abbb45f 100644
--- a/src/Resources/Locales/de_DE.axaml
+++ b/src/Resources/Locales/de_DE.axaml
@@ -74,6 +74,7 @@
Fast-Forward zu ${0}$
Fetche ${0}$ in ${1}$ hinein…
Git Flow – Abschließen ${0}$
+ Interaktives Rebase von ${0}$ auf ${1}$
Merge ${0}$ in ${1}$ hinein…
Merge ausgewählte {0} Branches in aktuellen hinein
Pull ${0}$
diff --git a/src/Resources/Locales/en_US.axaml b/src/Resources/Locales/en_US.axaml
index bdd14810a..5493d4791 100644
--- a/src/Resources/Locales/en_US.axaml
+++ b/src/Resources/Locales/en_US.axaml
@@ -70,6 +70,7 @@
Fast-Forward to ${0}$
Fetch ${0}$ into ${1}$...
Git Flow - Finish ${0}$
+ Interactively Rebase ${0}$ on ${1}$
Merge ${0}$ into ${1}$...
Merge selected {0} branches into current
Pull ${0}$
diff --git a/src/Resources/Locales/es_ES.axaml b/src/Resources/Locales/es_ES.axaml
index 032191051..32651c065 100644
--- a/src/Resources/Locales/es_ES.axaml
+++ b/src/Resources/Locales/es_ES.axaml
@@ -74,6 +74,7 @@
Fast-Forward a ${0}$
Fetch ${0}$ en ${1}$...
Git Flow - Finalizar ${0}$
+ Hacer Rebase interactivamente ${0}$ en ${1}$
Merge ${0}$ en ${1}$...
Hacer merge de las ramas {0} seleccionadas hacia la rama actual
Pull ${0}$
diff --git a/src/Resources/Locales/fr_FR.axaml b/src/Resources/Locales/fr_FR.axaml
index 537baaddf..12293ff19 100644
--- a/src/Resources/Locales/fr_FR.axaml
+++ b/src/Resources/Locales/fr_FR.axaml
@@ -68,6 +68,7 @@
Fast-Forward vers ${0}$
Fetch ${0}$ vers ${1}$...
Git Flow - Terminer ${0}$
+ Rebaser Interactivement ${0}$ sur ${1}$
Fusionner ${0}$ dans ${1}$...
Fusionner les {0} branches sélectionnées dans celle en cours
Tirer ${0}$
diff --git a/src/Resources/Locales/id_ID.axaml b/src/Resources/Locales/id_ID.axaml
index 2e0d0cf51..afb07fd84 100644
--- a/src/Resources/Locales/id_ID.axaml
+++ b/src/Resources/Locales/id_ID.axaml
@@ -64,6 +64,7 @@
Fast-Forward ke ${0}$
Fetch ${0}$ ke ${1}$...
Git Flow - Selesaikan ${0}$
+ Rebase ${0}$ pada ${1}$ secara Interaktif
Merge ${0}$ ke ${1}$...
Merge {0} branch yang dipilih ke saat ini
Pull ${0}$
diff --git a/src/Resources/Locales/it_IT.axaml b/src/Resources/Locales/it_IT.axaml
index 0ac0977d9..f7b6346bc 100644
--- a/src/Resources/Locales/it_IT.axaml
+++ b/src/Resources/Locales/it_IT.axaml
@@ -74,6 +74,7 @@
Avanzamento Veloce a ${0}$
Recupera ${0}$ in ${1}$...
Git Flow - Completa ${0}$
+ Ribasare interattivamente ${0}$ su ${1}$
Unisci ${0}$ in ${1}$...
Unisci i {0} branch selezionati in quello corrente
Scarica ${0}$
diff --git a/src/Resources/Locales/ko_KR.axaml b/src/Resources/Locales/ko_KR.axaml
index 0fcf54a60..0768b096e 100644
--- a/src/Resources/Locales/ko_KR.axaml
+++ b/src/Resources/Locales/ko_KR.axaml
@@ -61,6 +61,7 @@
${0}$(으)로 Fast-Forward
${0}$에서 ${1}$(으)로 Fetch...
Git Flow - ${0}$ 완료
+ ${1}$을(를) 기반으로 ${0}$ 대화형 리베이스
${0}$을(를) ${1}$(으)로 병합...
선택한 {0}개의 브랜치를 현재 브랜치로 병합
${0}$ Pull
diff --git a/src/Resources/Locales/ru_RU.axaml b/src/Resources/Locales/ru_RU.axaml
index f682cb845..244b22d8a 100644
--- a/src/Resources/Locales/ru_RU.axaml
+++ b/src/Resources/Locales/ru_RU.axaml
@@ -74,6 +74,7 @@
Перемотать вперёд к ${0}$
Извлечь ${0}$ в ${1}$...
Git-процесс - Завершение ${0}$
+ Интерактивное перемещение ${0}$ в ${1}$
Влить ${0}$ в ${1}$...
Влить {0} выделенных веток в текущую
Загрузить ${0}$
diff --git a/src/Resources/Locales/zh_CN.axaml b/src/Resources/Locales/zh_CN.axaml
index 9260b56b3..0a4dbdc0e 100644
--- a/src/Resources/Locales/zh_CN.axaml
+++ b/src/Resources/Locales/zh_CN.axaml
@@ -74,6 +74,7 @@
快进(fast-forward) 到 ${0}$
拉取(fetch) ${0}$ 至 ${1}$...
GIT工作流 - 完成 ${0}$
+ 交互式变基 ${0}$ 到 ${1}$
合并(merge) ${0}$ 到 ${1}$...
合并(merge) {0} 个分支到当前分支
拉回(pull) ${0}$
diff --git a/src/Resources/Locales/zh_TW.axaml b/src/Resources/Locales/zh_TW.axaml
index 95ea3fb55..41ed3f8f9 100644
--- a/src/Resources/Locales/zh_TW.axaml
+++ b/src/Resources/Locales/zh_TW.axaml
@@ -74,6 +74,7 @@
快轉 (fast-forward) 到 ${0}$
提取 (fetch) ${0}$ 到 ${1}$...
Git 工作流 - 完成 ${0}$
+ 互動式重定基底 ${0}$ 至 ${1}$
合併 ${0}$ 到 ${1}$...
合併 {0} 個分支到目前分支
拉取 (pull) ${0}$
diff --git a/src/Views/BranchTree.axaml.cs b/src/Views/BranchTree.axaml.cs
index 6a1bdb024..8b31d4560 100644
--- a/src/Views/BranchTree.axaml.cs
+++ b/src/Views/BranchTree.axaml.cs
@@ -797,9 +797,21 @@ private ContextMenu CreateContextMenuForLocalBranch(ViewModels.Repository repo,
repo.ShowPopup(new ViewModels.Rebase(repo, current, branch));
e.Handled = true;
};
+
+ var interactiveRebase = new MenuItem();
+ interactiveRebase.Header = App.Text("BranchCM.InteractiveRebase.Manually", current.Name, branch.Name);
+ interactiveRebase.Icon = App.CreateMenuIcon("Icons.InteractiveRebase");
+ interactiveRebase.Click += async (_, e) =>
+ {
+ var commit = await new Commands.QuerySingleCommit(repo.FullPath, branch.Head).GetResultAsync();
+ await App.ShowDialog(new ViewModels.InteractiveRebase(repo, commit));
+ e.Handled = true;
+ };
menu.Items.Add(merge);
menu.Items.Add(rebase);
+ menu.Items.Add(new MenuItem() { Header = "-" });
+ menu.Items.Add(interactiveRebase);
}
if (hasNoWorktree)
@@ -1117,6 +1129,16 @@ public ContextMenu CreateContextMenuForRemoteBranch(ViewModels.Repository repo,
repo.ShowPopup(new ViewModels.Rebase(repo, current, branch));
e.Handled = true;
};
+
+ var interactiveRebase = new MenuItem();
+ interactiveRebase.Header = App.Text("BranchCM.InteractiveRebase.Manually", current.Name, name);
+ interactiveRebase.Icon = App.CreateMenuIcon("Icons.InteractiveRebase");
+ interactiveRebase.Click += async (_, e) =>
+ {
+ var commit = await new Commands.QuerySingleCommit(repo.FullPath, branch.Head).GetResultAsync();
+ await App.ShowDialog(new ViewModels.InteractiveRebase(repo, commit));
+ e.Handled = true;
+ };
var compareWithHead = new MenuItem();
compareWithHead.Header = App.Text("BranchCM.CompareWithHead");
@@ -1140,6 +1162,8 @@ public ContextMenu CreateContextMenuForRemoteBranch(ViewModels.Repository repo,
menu.Items.Add(merge);
menu.Items.Add(rebase);
menu.Items.Add(new MenuItem() { Header = "-" });
+ menu.Items.Add(interactiveRebase);
+ menu.Items.Add(new MenuItem() { Header = "-" });
menu.Items.Add(compareWithHead);
menu.Items.Add(compareWith);
}