From bb2284c4c91d4c95ddbc3bb0d5c0d3c951b2e756 Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 12 Mar 2025 11:53:24 +0800 Subject: [PATCH] refactor: re-write commit searching (part 3) Signed-off-by: leo --- src/Commands/QueryRevisionFileNames.cs | 16 +++++++++++----- src/ViewModels/CommitDetail.cs | 5 +---- src/ViewModels/Repository.cs | 12 +++--------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/src/Commands/QueryRevisionFileNames.cs b/src/Commands/QueryRevisionFileNames.cs index d2d69614..c6fd7373 100644 --- a/src/Commands/QueryRevisionFileNames.cs +++ b/src/Commands/QueryRevisionFileNames.cs @@ -1,4 +1,6 @@ -namespace SourceGit.Commands +using System.Collections.Generic; + +namespace SourceGit.Commands { public class QueryRevisionFileNames : Command { @@ -9,13 +11,17 @@ Args = $"ls-tree -r -z --name-only {revision}"; } - public string[] Result() + public List Result() { var rs = ReadToEnd(); - if (rs.IsSuccess) - return rs.StdOut.Split('\0', System.StringSplitOptions.RemoveEmptyEntries); + if (!rs.IsSuccess) + return []; - return []; + var lines = rs.StdOut.Split('\0', System.StringSplitOptions.RemoveEmptyEntries); + var outs = new List(); + foreach (var line in lines) + outs.Add(line); + return outs; } } } diff --git a/src/ViewModels/CommitDetail.cs b/src/ViewModels/CommitDetail.cs index c6ef8367..34ac8308 100644 --- a/src/ViewModels/CommitDetail.cs +++ b/src/ViewModels/CommitDetail.cs @@ -814,14 +814,11 @@ namespace SourceGit.ViewModels Task.Run(() => { var files = new Commands.QueryRevisionFileNames(_repo.FullPath, sha).Result(); - var filesList = new List(); - filesList.AddRange(files); - Dispatcher.UIThread.Invoke(() => { if (sha == Commit.SHA) { - _revisionFiles = filesList; + _revisionFiles = files; if (!string.IsNullOrEmpty(_revisionFileSearchFilter)) CalcRevisionFileSearchSuggestion(); } diff --git a/src/ViewModels/Repository.cs b/src/ViewModels/Repository.cs index c7557356..97c52d8e 100644 --- a/src/ViewModels/Repository.cs +++ b/src/ViewModels/Repository.cs @@ -2376,17 +2376,11 @@ namespace SourceGit.ViewModels Task.Run(() => { - var files = new Commands.QueryRevisionFileNames(_fullpath, "HEAD").Result(); + _worktreeFiles = new Commands.QueryRevisionFileNames(_fullpath, "HEAD").Result(); Dispatcher.UIThread.Invoke(() => { - if (!IsSearchingCommitsByFilePath()) - return; - - _worktreeFiles = new List(); - foreach (var f in files) - _worktreeFiles.Add(f); - - CalcMatchedFilesForSearching(); + if (IsSearchingCommitsByFilePath()) + CalcMatchedFilesForSearching(); }); }); }