Skip to content

Commit 4924e96

Browse files
authored
feature: allow merging tags into branches (#671)
Adds "Merge {tag} into {branch}" menu item to tag menu in histories. The rest is handled by already existing merge code.
1 parent b974436 commit 4924e96

File tree

9 files changed

+23
-2
lines changed

9 files changed

+23
-2
lines changed

src/Resources/Locales/de_DE.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -627,6 +627,7 @@
627627
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Tag-Namen kopieren</x:String>
628628
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Tag-Nachricht kopieren</x:String>
629629
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Lösche ${0}$...</x:String>
630+
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Merge ${0}$ in ${1}$ hinein...</x:String>
630631
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Pushe ${0}$...</x:String>
631632
<x:String x:Key="Text.URL" xml:space="preserve">URL:</x:String>
632633
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">Submodule aktualisieren</x:String>

src/Resources/Locales/en_US.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -633,6 +633,7 @@
633633
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Copy Tag Name</x:String>
634634
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Copy Tag Message</x:String>
635635
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Delete ${0}$...</x:String>
636+
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Merge ${0}$ into ${1}$...</x:String>
636637
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Push ${0}$...</x:String>
637638
<x:String x:Key="Text.URL" xml:space="preserve">URL:</x:String>
638639
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">Update Submodules</x:String>

src/Resources/Locales/es_ES.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -631,6 +631,7 @@
631631
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Copiar Nombre de la Etiqueta</x:String>
632632
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Copiar Mensaje de la Etiqueta</x:String>
633633
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Eliminar ${0}$...</x:String>
634+
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Merge ${0}$ en ${1}$...</x:String>
634635
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Push ${0}$...</x:String>
635636
<x:String x:Key="Text.URL" xml:space="preserve">URL:</x:String>
636637
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">Actualizar Submódulos</x:String>

src/Resources/Locales/fr_FR.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -551,6 +551,7 @@
551551
<x:String x:Key="Text.Sure" xml:space="preserve">OK</x:String>
552552
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Copy Tag Name</x:String>
553553
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Delete ${0}$...</x:String>
554+
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Fusionner ${0}$ dans ${1}$...</x:String>
554555
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Push ${0}$...</x:String>
555556
<x:String x:Key="Text.URL" xml:space="preserve">URL :</x:String>
556557
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">Actualiser les sous-modules</x:String>

src/Resources/Locales/pt_BR.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -661,6 +661,7 @@
661661
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Copiar Nome da Tag</x:String>
662662
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Copiar mensage da Tag</x:String>
663663
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Excluir ${0}$...</x:String>
664+
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Mesclar ${0}$ em ${1}$...</x:String>
664665
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Enviar ${0}$...</x:String>
665666
<x:String x:Key="Text.UpdateSubmodules.All" xml:space="preserve">Todos os submódulos</x:String>
666667
<x:String x:Key="Text.UpdateSubmodules.Init" xml:space="preserve">Inicializar conforme necessário</x:String>

src/Resources/Locales/ru_RU.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -637,6 +637,7 @@
637637
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Копировать имя метки</x:String>
638638
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Копировать сообщение с метки</x:String>
639639
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Удалить ${0}$...</x:String>
640+
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Слить ${0}$ в ${1}$...</x:String>
640641
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Выложить ${0}$...</x:String>
641642
<x:String x:Key="Text.URL" xml:space="preserve">Сетевой адрес:</x:String>
642643
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">Обновление подмодулей</x:String>

src/Resources/Locales/zh_CN.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -636,6 +636,7 @@
636636
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">复制标签名</x:String>
637637
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">复制标签信息</x:String>
638638
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">删除 ${0}$...</x:String>
639+
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">合并 ${0}$ 到 ${1}$...</x:String>
639640
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">推送 ${0}$...</x:String>
640641
<x:String x:Key="Text.URL" xml:space="preserve">仓库地址 :</x:String>
641642
<x:String x:Key="Text.UpdateSubmodules" 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
@@ -636,6 +636,7 @@
636636
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">複製標籤名稱</x:String>
637637
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">複製標籤訊息</x:String>
638638
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">刪除 ${0}$...</x:String>
639+
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">合併 ${0}$ 到 ${1}$...</x:String>
639640
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">推送 ${0}$...</x:String>
640641
<x:String x:Key="Text.URL" xml:space="preserve">存放庫網址:</x:String>
641642
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">更新子模組</x:String>

src/ViewModels/Histories.cs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ public ContextMenu MakeContextMenu(ListBox list)
365365
if (tags.Count > 0)
366366
{
367367
foreach (var tag in tags)
368-
FillTagMenu(menu, tag);
368+
FillTagMenu(menu, tag, current, commit.IsMerged);
369369
menu.Items.Add(new MenuItem() { Header = "-" });
370370
}
371371

@@ -893,7 +893,7 @@ private void FillRemoteBranchMenu(ContextMenu menu, Models.Branch branch, Models
893893
menu.Items.Add(submenu);
894894
}
895895

896-
private void FillTagMenu(ContextMenu menu, Models.Tag tag)
896+
private void FillTagMenu(ContextMenu menu, Models.Tag tag, Models.Branch current, bool merged)
897897
{
898898
var submenu = new MenuItem();
899899
submenu.Header = tag.Name;
@@ -912,6 +912,19 @@ private void FillTagMenu(ContextMenu menu, Models.Tag tag)
912912
};
913913
submenu.Items.Add(push);
914914

915+
var merge = new MenuItem();
916+
merge.Header = new Views.NameHighlightedTextBlock("TagCM.Merge", tag.Name, current.Name);
917+
merge.Icon = App.CreateMenuIcon("Icons.Merge");
918+
merge.IsEnabled = !merged;
919+
merge.Click += (_, e) =>
920+
{
921+
if (PopupHost.CanCreatePopup())
922+
PopupHost.ShowPopup(new Merge(_repo, tag.Name, current.Name));
923+
e.Handled = true;
924+
};
925+
submenu.Items.Add(merge);
926+
submenu.Items.Add(new MenuItem() { Header = "-" });
927+
915928
var delete = new MenuItem();
916929
delete.Header = new Views.NameHighlightedTextBlock("TagCM.Delete", tag.Name);
917930
delete.Icon = App.CreateMenuIcon("Icons.Clear");

0 commit comments

Comments
 (0)