From 83be4bd96a54728c1f20b55d1570f43b2674bb93 Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 24 Dec 2025 15:28:09 +0800 Subject: [PATCH] enhance: refresh submodules manually after update/de-init submodule Signed-off-by: leo --- src/Models/Watcher.cs | 5 +++++ src/ViewModels/DeinitSubmodule.cs | 1 + src/ViewModels/Repository.cs | 6 ++++++ src/ViewModels/UpdateSubmodules.cs | 1 + 4 files changed, 13 insertions(+) diff --git a/src/Models/Watcher.cs b/src/Models/Watcher.cs index e7684e2c..03b4ca5f 100644 --- a/src/Models/Watcher.cs +++ b/src/Models/Watcher.cs @@ -118,6 +118,11 @@ namespace SourceGit.Models Interlocked.Exchange(ref _updateStashes, 0); } + public void MarkSubmodulesUpdated() + { + Interlocked.Exchange(ref _updateSubmodules, 0); + } + public void Dispose() { foreach (var watcher in _watchers) diff --git a/src/ViewModels/DeinitSubmodule.cs b/src/ViewModels/DeinitSubmodule.cs index d224ce03..f9fff198 100644 --- a/src/ViewModels/DeinitSubmodule.cs +++ b/src/ViewModels/DeinitSubmodule.cs @@ -36,6 +36,7 @@ namespace SourceGit.ViewModels .DeinitAsync(Submodule, false); log.Complete(); + _repo.MarkSubmodulesDirtyManually(); return succ; } diff --git a/src/ViewModels/Repository.cs b/src/ViewModels/Repository.cs index 1aaa6bd9..5ab2d1c2 100644 --- a/src/ViewModels/Repository.cs +++ b/src/ViewModels/Repository.cs @@ -877,6 +877,12 @@ namespace SourceGit.ViewModels RefreshStashes(); } + public void MarkSubmodulesDirtyManually() + { + _watcher?.MarkSubmodulesUpdated(); + RefreshSubmodules(); + } + public void MarkFetched() { _lastFetchTime = DateTime.Now; diff --git a/src/ViewModels/UpdateSubmodules.cs b/src/ViewModels/UpdateSubmodules.cs index e66a85dd..53aa8c17 100644 --- a/src/ViewModels/UpdateSubmodules.cs +++ b/src/ViewModels/UpdateSubmodules.cs @@ -96,6 +96,7 @@ namespace SourceGit.ViewModels .UpdateAsync(targets, EnableInit, EnableRecursive, EnableRemote); log.Complete(); + _repo.MarkSubmodulesDirtyManually(); return true; }