From 35f9d5634450ed8fd6428b7d8b7f5c2b06d01a21 Mon Sep 17 00:00:00 2001 From: seth Date: Sat, 12 Oct 2024 09:36:52 -0400 Subject: git-tracker: don't keep re-opening repository --- crates/git-tracker/src/lib.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'crates/git-tracker/src/lib.rs') diff --git a/crates/git-tracker/src/lib.rs b/crates/git-tracker/src/lib.rs index e2feb32..d7f2d9e 100644 --- a/crates/git-tracker/src/lib.rs +++ b/crates/git-tracker/src/lib.rs @@ -159,12 +159,15 @@ impl TrackedRepository { /// /// Will return [`Err`] if the repository cannot be opened, HEAD cannot be resolved, or the /// relation between commits cannot be resolved - pub fn ref_contains_object(&self, reference: &Reference, commit: Oid) -> Result { + pub fn ref_contains_object( + repository: &Repository, + reference: &Reference, + commit: Oid, + ) -> Result { trace!( "Checking for commit {commit} in {}", reference.name().unwrap_or("") ); - let repository = self.open()?; let head = reference.peel_to_commit()?; // NOTE: we have to check this as `Repository::graph_descendant_of()` (like the name says) @@ -201,7 +204,8 @@ impl TrackedRepository { BranchType::Remote, )?; - let has_commit = self.ref_contains_object(&branch.into_reference(), commit)?; + let has_commit = + Self::ref_contains_object(&repository, &branch.into_reference(), commit)?; results.push((branch_name, has_commit)); } -- cgit v1.2.3