From eb183589f5e21a87873e5742bff25653b39065f1 Mon Sep 17 00:00:00 2001 From: leo Date: Tue, 20 May 2025 16:29:29 +0800 Subject: [PATCH] enhance: prevent requesting revision files more than once time Signed-off-by: leo --- src/ViewModels/CommitDetail.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/ViewModels/CommitDetail.cs b/src/ViewModels/CommitDetail.cs index 3b411056..997e3a88 100644 --- a/src/ViewModels/CommitDetail.cs +++ b/src/ViewModels/CommitDetail.cs @@ -149,6 +149,7 @@ namespace SourceGit.ViewModels _diffContext = null; _viewRevisionFileContent = null; _cancellationSource = null; + _requestingRevisionFiles = false; _revisionFiles = null; _revisionFileSearchSuggestion = null; } @@ -546,6 +547,7 @@ namespace SourceGit.ViewModels private void Refresh() { _changes = null; + _requestingRevisionFiles = false; _revisionFiles = null; SignInfo = null; @@ -812,16 +814,22 @@ namespace SourceGit.ViewModels { if (_revisionFiles == null) { + if (_requestingRevisionFiles) + return; + var sha = Commit.SHA; + _requestingRevisionFiles = true; Task.Run(() => { var files = new Commands.QueryRevisionFileNames(_repo.FullPath, sha).Result(); Dispatcher.UIThread.Invoke(() => { - if (sha == Commit.SHA) + if (sha == Commit.SHA && _requestingRevisionFiles) { _revisionFiles = files; + _requestingRevisionFiles = false; + if (!string.IsNullOrEmpty(_revisionFileSearchFilter)) CalcRevisionFileSearchSuggestion(); } @@ -907,6 +915,7 @@ namespace SourceGit.ViewModels private DiffContext _diffContext = null; private object _viewRevisionFileContent = null; private CancellationTokenSource _cancellationSource = null; + private bool _requestingRevisionFiles = false; private List _revisionFiles = null; private string _revisionFileSearchFilter = string.Empty; private List _revisionFileSearchSuggestion = null;