From ffa1a36e69ede5833b6503ea30a32f9debe4af17 Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 13 Aug 2025 16:48:50 +0800 Subject: [PATCH] enhance: copy remote names before running auto-fetch Signed-off-by: leo --- src/ViewModels/Repository.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/ViewModels/Repository.cs b/src/ViewModels/Repository.cs index 5a24c84c..947d2b90 100644 --- a/src/ViewModels/Repository.cs +++ b/src/ViewModels/Repository.cs @@ -1983,18 +1983,22 @@ namespace SourceGit.ViewModels IsAutoFetching = true; + var remotes = new List(); + foreach (var r in _remotes) + remotes.Add(r.Name); + if (_settings.FetchAllRemotes) { - foreach (var remote in _remotes) - await new Commands.Fetch(_fullpath, remote.Name, false, false) { RaiseError = false }.RunAsync(); + foreach (var remote in remotes) + await new Commands.Fetch(_fullpath, remote, false, false) { RaiseError = false }.RunAsync(); } - else if (_remotes.Count > 0) + else if (remotes.Count > 0) { var remote = string.IsNullOrEmpty(_settings.DefaultRemote) ? - _remotes.Find(x => x.Name.Equals(_settings.DefaultRemote, StringComparison.Ordinal)) : - _remotes[0]; + remotes.Find(x => x.Equals(_settings.DefaultRemote, StringComparison.Ordinal)) : + remotes[0]; - await new Commands.Fetch(_fullpath, remote.Name, false, false) { RaiseError = false }.RunAsync(); + await new Commands.Fetch(_fullpath, remote, false, false) { RaiseError = false }.RunAsync(); } _lastFetchTime = DateTime.Now;