enhance: do NOT query gpg.ssh.allowedSignersFile every time while getting commit's signing status

Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
leo 2024-10-30 10:10:17 +08:00
parent c2e83778cc
commit 1adcf4dd80
No known key found for this signature in database
3 changed files with 15 additions and 4 deletions

View file

@ -2,13 +2,12 @@
{ {
public class QueryCommitSignInfo : Command public class QueryCommitSignInfo : Command
{ {
public QueryCommitSignInfo(string repo, string sha) public QueryCommitSignInfo(string repo, string sha, bool useFakeSignersFile)
{ {
WorkingDirectory = repo; WorkingDirectory = repo;
Context = repo; Context = repo;
var allowedSignersFile = new Config(repo).Get("gpg.ssh.allowedSignersFile"); if (useFakeSignersFile)
if (string.IsNullOrEmpty(allowedSignersFile))
Args = $"-c gpg.ssh.allowedSignersFile=/dev/null show --no-show-signature --pretty=format:\"%G? %GK\" -s {sha}"; Args = $"-c gpg.ssh.allowedSignersFile=/dev/null show --no-show-signature --pretty=format:\"%G? %GK\" -s {sha}";
else else
Args = $"show --no-show-signature --pretty=format:\"%G? %GK\" -s {sha}"; Args = $"show --no-show-signature --pretty=format:\"%G? %GK\" -s {sha}";

View file

@ -498,7 +498,7 @@ namespace SourceGit.ViewModels
Task.Run(() => Task.Run(() =>
{ {
var signInfo = new Commands.QueryCommitSignInfo(_repo.FullPath, _commit.SHA).Result(); var signInfo = new Commands.QueryCommitSignInfo(_repo.FullPath, _commit.SHA, !_repo.HasAllowedSignersFile).Result();
Dispatcher.UIThread.Invoke(() => SignInfo = signInfo); Dispatcher.UIThread.Invoke(() => SignInfo = signInfo);
}); });

View file

@ -45,6 +45,11 @@ namespace SourceGit.ViewModels
get => _settings; get => _settings;
} }
public bool HasAllowedSignersFile
{
get => _hasAllowedSignersFile;
}
public int SelectedViewIndex public int SelectedViewIndex
{ {
get => _selectedViewIndex; get => _selectedViewIndex;
@ -444,6 +449,12 @@ namespace SourceGit.ViewModels
public void RefreshAll() public void RefreshAll()
{ {
Task.Run(() =>
{
var allowedSignersFile = new Commands.Config(_fullpath).Get("gpg.ssh.allowedSignersFile");
_hasAllowedSignersFile = !string.IsNullOrEmpty(allowedSignersFile);
});
Task.Run(() => Task.Run(() =>
{ {
RefreshBranches(); RefreshBranches();
@ -2135,6 +2146,7 @@ namespace SourceGit.ViewModels
private string _fullpath = string.Empty; private string _fullpath = string.Empty;
private string _gitDir = string.Empty; private string _gitDir = string.Empty;
private Models.RepositorySettings _settings = null; private Models.RepositorySettings _settings = null;
private bool _hasAllowedSignersFile = false;
private Models.Watcher _watcher = null; private Models.Watcher _watcher = null;
private Histories _histories = null; private Histories _histories = null;