/
vasiukoff
/
sg
Обзор
Документация
Войти
/
vasiukoff
/
sg
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/ViewModels/DeleteTag.cs
54 строки
1 KB
leo
feature: auto-remove history filter after deleting branch or tag (#1904)
10 ноя 2025, 06:31
10 ноя 2025, 06:31
4f11d8a
Код
Авторство
О чём код?
using System.Threading.Tasks; namespace SourceGit.ViewModels { public class DeleteTag : Popup { public Models.Tag Target { get; private set; } public bool PushToRemotes { get => _repo.Settings.PushToRemoteWhenDeleteTag; set => _repo.Settings.PushToRemoteWhenDeleteTag = value; } public DeleteTag(Repository repo, Models.Tag tag) { _repo = repo; Target = tag; } public override async Task<bool> Sure() { using var lockWatcher = _repo.LockWatcher(); ProgressDescription = $"Deleting tag '{Target.Name}' ..."; var remotes = PushToRemotes ? _repo.Remotes : []; var log = _repo.CreateLog("Delete Tag"); Use(log); var succ = await new Commands.Tag(_repo.FullPath, Target.Name) .Use(log) .DeleteAsync(); if (succ) { foreach (var r in remotes) await new Commands.Push(_repo.FullPath, r.Name, $"refs/tags/{Target.Name}", true) .Use(log) .RunAsync(); } log.Complete(); _repo.HistoryFilterCollection.RemoveFilter(Target.Name, Models.FilterType.Tag); _repo.MarkTagsDirtyManually(); return succ; } private readonly Repository _repo = null; } }