mirror of
https://github.com/sourcegit-scm/sourcegit.git
synced 2024-12-26 21:17:20 -08:00
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.
This commit is contained in:
parent
b974436c8a
commit
4924e960bf
9 changed files with 23 additions and 2 deletions
|
@ -627,6 +627,7 @@
|
||||||
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Tag-Namen kopieren</x:String>
|
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Tag-Namen kopieren</x:String>
|
||||||
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Tag-Nachricht kopieren</x:String>
|
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Tag-Nachricht kopieren</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Lösche ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Lösche ${0}$...</x:String>
|
||||||
|
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Merge ${0}$ in ${1}$ hinein...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Pushe ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Pushe ${0}$...</x:String>
|
||||||
<x:String x:Key="Text.URL" xml:space="preserve">URL:</x:String>
|
<x:String x:Key="Text.URL" xml:space="preserve">URL:</x:String>
|
||||||
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">Submodule aktualisieren</x:String>
|
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">Submodule aktualisieren</x:String>
|
||||||
|
|
|
@ -633,6 +633,7 @@
|
||||||
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Copy Tag Name</x:String>
|
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Copy Tag Name</x:String>
|
||||||
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Copy Tag Message</x:String>
|
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Copy Tag Message</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Delete ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Delete ${0}$...</x:String>
|
||||||
|
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Merge ${0}$ into ${1}$...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Push ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Push ${0}$...</x:String>
|
||||||
<x:String x:Key="Text.URL" xml:space="preserve">URL:</x:String>
|
<x:String x:Key="Text.URL" xml:space="preserve">URL:</x:String>
|
||||||
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">Update Submodules</x:String>
|
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">Update Submodules</x:String>
|
||||||
|
|
|
@ -631,6 +631,7 @@
|
||||||
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Copiar Nombre de la Etiqueta</x:String>
|
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Copiar Nombre de la Etiqueta</x:String>
|
||||||
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Copiar Mensaje de la Etiqueta</x:String>
|
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Copiar Mensaje de la Etiqueta</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Eliminar ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Eliminar ${0}$...</x:String>
|
||||||
|
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Merge ${0}$ en ${1}$...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Push ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Push ${0}$...</x:String>
|
||||||
<x:String x:Key="Text.URL" xml:space="preserve">URL:</x:String>
|
<x:String x:Key="Text.URL" xml:space="preserve">URL:</x:String>
|
||||||
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">Actualizar Submódulos</x:String>
|
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">Actualizar Submódulos</x:String>
|
||||||
|
|
|
@ -551,6 +551,7 @@
|
||||||
<x:String x:Key="Text.Sure" xml:space="preserve">OK</x:String>
|
<x:String x:Key="Text.Sure" xml:space="preserve">OK</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Copy Tag Name</x:String>
|
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Copy Tag Name</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Delete ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Delete ${0}$...</x:String>
|
||||||
|
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Fusionner ${0}$ dans ${1}$...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Push ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Push ${0}$...</x:String>
|
||||||
<x:String x:Key="Text.URL" xml:space="preserve">URL :</x:String>
|
<x:String x:Key="Text.URL" xml:space="preserve">URL :</x:String>
|
||||||
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">Actualiser les sous-modules</x:String>
|
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">Actualiser les sous-modules</x:String>
|
||||||
|
|
|
@ -661,6 +661,7 @@
|
||||||
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Copiar Nome da Tag</x:String>
|
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Copiar Nome da Tag</x:String>
|
||||||
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Copiar mensage da Tag</x:String>
|
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Copiar mensage da Tag</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Excluir ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Excluir ${0}$...</x:String>
|
||||||
|
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Mesclar ${0}$ em ${1}$...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Enviar ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Enviar ${0}$...</x:String>
|
||||||
<x:String x:Key="Text.UpdateSubmodules.All" xml:space="preserve">Todos os submódulos</x:String>
|
<x:String x:Key="Text.UpdateSubmodules.All" xml:space="preserve">Todos os submódulos</x:String>
|
||||||
<x:String x:Key="Text.UpdateSubmodules.Init" xml:space="preserve">Inicializar conforme necessário</x:String>
|
<x:String x:Key="Text.UpdateSubmodules.Init" xml:space="preserve">Inicializar conforme necessário</x:String>
|
||||||
|
|
|
@ -637,6 +637,7 @@
|
||||||
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Копировать имя метки</x:String>
|
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">Копировать имя метки</x:String>
|
||||||
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Копировать сообщение с метки</x:String>
|
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">Копировать сообщение с метки</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Удалить ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">Удалить ${0}$...</x:String>
|
||||||
|
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">Слить ${0}$ в ${1}$...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Выложить ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">Выложить ${0}$...</x:String>
|
||||||
<x:String x:Key="Text.URL" xml:space="preserve">Сетевой адрес:</x:String>
|
<x:String x:Key="Text.URL" xml:space="preserve">Сетевой адрес:</x:String>
|
||||||
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">Обновление подмодулей</x:String>
|
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">Обновление подмодулей</x:String>
|
||||||
|
|
|
@ -636,6 +636,7 @@
|
||||||
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">复制标签名</x:String>
|
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">复制标签名</x:String>
|
||||||
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">复制标签信息</x:String>
|
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">复制标签信息</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">删除 ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">删除 ${0}$...</x:String>
|
||||||
|
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">合并 ${0}$ 到 ${1}$...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">推送 ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">推送 ${0}$...</x:String>
|
||||||
<x:String x:Key="Text.URL" xml:space="preserve">仓库地址 :</x:String>
|
<x:String x:Key="Text.URL" xml:space="preserve">仓库地址 :</x:String>
|
||||||
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">更新子模块</x:String>
|
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">更新子模块</x:String>
|
||||||
|
|
|
@ -636,6 +636,7 @@
|
||||||
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">複製標籤名稱</x:String>
|
<x:String x:Key="Text.TagCM.Copy" xml:space="preserve">複製標籤名稱</x:String>
|
||||||
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">複製標籤訊息</x:String>
|
<x:String x:Key="Text.TagCM.CopyMessage" xml:space="preserve">複製標籤訊息</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">刪除 ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Delete" xml:space="preserve">刪除 ${0}$...</x:String>
|
||||||
|
<x:String x:Key="Text.TagCM.Merge" xml:space="preserve">合併 ${0}$ 到 ${1}$...</x:String>
|
||||||
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">推送 ${0}$...</x:String>
|
<x:String x:Key="Text.TagCM.Push" xml:space="preserve">推送 ${0}$...</x:String>
|
||||||
<x:String x:Key="Text.URL" xml:space="preserve">存放庫網址:</x:String>
|
<x:String x:Key="Text.URL" xml:space="preserve">存放庫網址:</x:String>
|
||||||
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">更新子模組</x:String>
|
<x:String x:Key="Text.UpdateSubmodules" xml:space="preserve">更新子模組</x:String>
|
||||||
|
|
|
@ -365,7 +365,7 @@ namespace SourceGit.ViewModels
|
||||||
if (tags.Count > 0)
|
if (tags.Count > 0)
|
||||||
{
|
{
|
||||||
foreach (var tag in tags)
|
foreach (var tag in tags)
|
||||||
FillTagMenu(menu, tag);
|
FillTagMenu(menu, tag, current, commit.IsMerged);
|
||||||
menu.Items.Add(new MenuItem() { Header = "-" });
|
menu.Items.Add(new MenuItem() { Header = "-" });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -893,7 +893,7 @@ namespace SourceGit.ViewModels
|
||||||
menu.Items.Add(submenu);
|
menu.Items.Add(submenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FillTagMenu(ContextMenu menu, Models.Tag tag)
|
private void FillTagMenu(ContextMenu menu, Models.Tag tag, Models.Branch current, bool merged)
|
||||||
{
|
{
|
||||||
var submenu = new MenuItem();
|
var submenu = new MenuItem();
|
||||||
submenu.Header = tag.Name;
|
submenu.Header = tag.Name;
|
||||||
|
@ -912,6 +912,19 @@ namespace SourceGit.ViewModels
|
||||||
};
|
};
|
||||||
submenu.Items.Add(push);
|
submenu.Items.Add(push);
|
||||||
|
|
||||||
|
var merge = new MenuItem();
|
||||||
|
merge.Header = new Views.NameHighlightedTextBlock("TagCM.Merge", tag.Name, current.Name);
|
||||||
|
merge.Icon = App.CreateMenuIcon("Icons.Merge");
|
||||||
|
merge.IsEnabled = !merged;
|
||||||
|
merge.Click += (_, e) =>
|
||||||
|
{
|
||||||
|
if (PopupHost.CanCreatePopup())
|
||||||
|
PopupHost.ShowPopup(new Merge(_repo, tag.Name, current.Name));
|
||||||
|
e.Handled = true;
|
||||||
|
};
|
||||||
|
submenu.Items.Add(merge);
|
||||||
|
submenu.Items.Add(new MenuItem() { Header = "-" });
|
||||||
|
|
||||||
var delete = new MenuItem();
|
var delete = new MenuItem();
|
||||||
delete.Header = new Views.NameHighlightedTextBlock("TagCM.Delete", tag.Name);
|
delete.Header = new Views.NameHighlightedTextBlock("TagCM.Delete", tag.Name);
|
||||||
delete.Icon = App.CreateMenuIcon("Icons.Clear");
|
delete.Icon = App.CreateMenuIcon("Icons.Clear");
|
||||||
|
|
Loading…
Reference in a new issue