From 8602ba2fc35da7dc5948fbc99eac5eb9beef33f3 Mon Sep 17 00:00:00 2001 From: Sina Hinderks Date: Mon, 30 Jun 2025 04:00:32 +0200 Subject: [PATCH] fix: searching for tree/blob hash never-ending (#1472) Searching for a tree or blob hash instead of a commit hash created a seemingly never-ending search (internally an exception was thrown). Examples for non-ending searches in the SourceGit repository itself are searching for 6b83a0a (that is the tree "src" of commit 190d2ee) or e686a53 (that is the file ".gitignore" in the tree of commit 190d2ee). --- src/Commands/QuerySingleCommit.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Commands/QuerySingleCommit.cs b/src/Commands/QuerySingleCommit.cs index 35289ec5..3f2deef3 100644 --- a/src/Commands/QuerySingleCommit.cs +++ b/src/Commands/QuerySingleCommit.cs @@ -6,6 +6,9 @@ namespace SourceGit.Commands { public QuerySingleCommit(string repo, string sha) { + _repo = repo; + _sha = sha; + WorkingDirectory = repo; Context = repo; Args = $"show --no-show-signature --decorate=full --format=%H%n%P%n%D%n%aN±%aE%n%at%n%cN±%cE%n%ct%n%s -s {sha}"; @@ -13,6 +16,10 @@ namespace SourceGit.Commands public Models.Commit Result() { + var isCommitSHA = new IsCommitSHA(_repo, _sha).Result(); + if (!isCommitSHA) + return null; + var rs = ReadToEnd(); if (rs.IsSuccess && !string.IsNullOrEmpty(rs.StdOut)) { @@ -37,5 +44,8 @@ namespace SourceGit.Commands return null; } + + private readonly string _repo; + private readonly string _sha; } }