From 30d42b11e27de4c3b2ed0ad2e10d1f51447eb2f6 Mon Sep 17 00:00:00 2001 From: leo Date: Mon, 28 Apr 2025 16:19:40 +0800 Subject: [PATCH] enhance: wait a while after branch changed (#1254) Signed-off-by: leo --- src/ViewModels/Checkout.cs | 3 +++ src/ViewModels/CreateBranch.cs | 6 ++++++ src/ViewModels/RenameBranch.cs | 7 +++++++ 3 files changed, 16 insertions(+) diff --git a/src/ViewModels/Checkout.cs b/src/ViewModels/Checkout.cs index 5a51e2d1..a96ac79a 100644 --- a/src/ViewModels/Checkout.cs +++ b/src/ViewModels/Checkout.cs @@ -62,6 +62,8 @@ namespace SourceGit.ViewModels CallUIThread(() => { + ProgressDescription = "Waiting for branch updated..."; + var b = _repo.Branches.Find(x => x.IsLocal && x.Name == Branch); if (b != null && _repo.HistoriesFilterMode == Models.FilterMode.Included) _repo.SetBranchFilterMode(b, Models.FilterMode.Included, true, false); @@ -70,6 +72,7 @@ namespace SourceGit.ViewModels _repo.SetWatcherEnabled(true); }); + Task.Delay(400).Wait(); return rs; }); } diff --git a/src/ViewModels/CreateBranch.cs b/src/ViewModels/CreateBranch.cs index d51a709d..dd190e18 100644 --- a/src/ViewModels/CreateBranch.cs +++ b/src/ViewModels/CreateBranch.cs @@ -150,6 +150,12 @@ namespace SourceGit.ViewModels _repo.SetWatcherEnabled(true); }); + if (CheckoutAfterCreated) + { + CallUIThread(() => ProgressDescription = "Waiting for branch updated..."); + Task.Delay(400).Wait(); + } + return true; }); } diff --git a/src/ViewModels/RenameBranch.cs b/src/ViewModels/RenameBranch.cs index d730c83e..22cd2688 100644 --- a/src/ViewModels/RenameBranch.cs +++ b/src/ViewModels/RenameBranch.cs @@ -58,12 +58,15 @@ namespace SourceGit.ViewModels return Task.Run(() => { + var isCurrent = Target.IsCurrent; var oldName = Target.FullName; var succ = Commands.Branch.Rename(_repo.FullPath, Target.Name, fixedName, log); log.Complete(); CallUIThread(() => { + ProgressDescription = "Waiting for branch updated..."; + if (succ) { foreach (var filter in _repo.Settings.HistoriesFilters) @@ -80,6 +83,10 @@ namespace SourceGit.ViewModels _repo.MarkBranchesDirtyManually(); _repo.SetWatcherEnabled(true); }); + + if (isCurrent) + Task.Delay(400).Wait(); + return succ; }); }