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; }