From f7c606c792e58499e3343881db780a815af2c005 Mon Sep 17 00:00:00 2001 From: Anirudh Oppiliappan Date: Tue, 16 Jun 2026 09:02:55 +0000 Subject: [PATCH] knotserver/git: log stderr from failing git subprocesses Signed-off-by: Anirudh Oppiliappan --- knotserver/git/merge.go | 8 +++++++- 1 file(s) changed, 7 insertion(s)(+), 1 deletion(s)(-) diff --git a/knotserver/git/merge.go b/knotserver/git/merge.go --- a/knotserver/git/merge.go +++ b/knotserver/git/merge.go @@ -173,8 +173,12 @@ {"-C", g.path, "config", "user.email", opts.CommitterEmail}, {"-C", g.path, "config", "advice.mergeConflict", "false"}, {"-C", g.path, "config", "advice.amWorkDir", "false"}, } { + var cfgStderr bytes.Buffer cfgCmd, _ := wrapCmd(exec.Command("git", cfgArgs...)) - cfgCmd.Run() //nolint:errcheck // best-effort config + cfgCmd.Stderr = &cfgStderr + if err := cfgCmd.Run(); err != nil { + log.Printf("git config %v failed (non-fatal): err=%v stderr=%q", cfgArgs, err, cfgStderr.String()) + } } // if patch is a format-patch, apply using 'git am' @@ -227,6 +231,7 @@ cmd.Stderr = &stderr if err := cmd.Run(); err != nil { conflicts := parseGitApplyErrors(stderr.String()) + log.Printf("git commit failed: err=%v stderr=%q", err, stderr.String()) return &ErrMerge{ Message: "patch cannot be applied cleanly", Conflicts: conflicts, @@ -293,6 +298,7 @@ log.Println("head before apply", head.Hash().String()) if err := cmd.Run(); err != nil { conflicts := parseGitApplyErrors(stderr.String()) + log.Printf("git am failed: err=%v stderr=%q", err, stderr.String()) return plumbing.ZeroHash, &ErrMerge{ Message: "patch cannot be applied cleanly", Conflicts: conflicts, -- tangled.sh