enhance: prevent requesting revision files more than once time

Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
leo 2025-05-20 16:29:29 +08:00
parent d56c6a5030
commit eb183589f5
No known key found for this signature in database

View file

@ -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<string> _revisionFiles = null;
private string _revisionFileSearchFilter = string.Empty;
private List<string> _revisionFileSearchSuggestion = null;