Dispatch git subcommands via the git binary
The standalone git-receive-pack binary lives in libexec/git-core/, which
is not on PATH in the container. Using `git receive-pack` lets the git
binary handle the dispatch internally.

Assisted-by: GLM-5.1 via pi
change xtlvtrspzooppulqrwpormrsxyxssyys
commit 1056b88ce39b6c5d5202c4c9dd4d4e4243b5cf29
author Alpha Chen <alpha@kejadlen.dev>
date
parent svzvytlu
diff --git a/src/bin/quire/commands/exec.rs b/src/bin/quire/commands/exec.rs
index f408924..59f8f9e 100644
--- a/src/bin/quire/commands/exec.rs
+++ b/src/bin/quire/commands/exec.rs
@@ -48,7 +48,13 @@ fn dispatch_git(quire: &Quire, git_cmd: &str, args: &[String]) -> Result<()> {
     ensure!(repo.exists(), "repository not found: {path}");
 
     tracing::info!(%git_cmd, %path, "dispatching git command");
-    let err = Command::new(git_cmd)
+    // Use `git <subcommand>` instead of `git-<subcommand>` so the git
+    // binary handles dispatch to libexec/git-core/ internally.
+    let subcommand = git_cmd
+        .strip_prefix("git-")
+        .ok_or_else(|| miette::miette!("unexpected git command: {git_cmd}"))?;
+    let err = Command::new("git")
+        .arg(subcommand)
         .arg(".")
         .current_dir(repo.path())
         .exec();