git-sync-web 自动提交 2026-09-09 13:58:07

This commit is contained in:
tamakyi
2026-09-09 13:58:08 +08:00
parent bba6a3362e
commit f161424dcd
10 changed files with 214 additions and 13 deletions
+11 -5
View File
@@ -30,16 +30,22 @@ func gitRun(repoPath string, timeout time.Duration, args ...string) (string, err
"GIT_SSH_COMMAND=ssh -oBatchMode=yes -oStrictHostKeyChecking=accept-new",
)
cmd.WaitDelay = 10 * time.Second
var buf bytes.Buffer
cmd.Stdout = &buf
cmd.Stderr = &buf
// stdout 与 stderr 分开收集:成功时只返回干净的 stdout 供解析,
// 避免 git 的环境告警(如 autocrlf、进度信息)污染解析结果;
// 失败时优先用 stderr 作为错误信息,保证诊断信息不丢失。
var outBuf, errBuf bytes.Buffer
cmd.Stdout = &outBuf
cmd.Stderr = &errBuf
err := cmd.Run()
out := strings.TrimSpace(buf.String())
out := strings.TrimSpace(outBuf.String())
if err != nil {
if ctx.Err() == context.DeadlineExceeded {
return out, fmt.Errorf("命令超时: git %s", strings.Join(args, " "))
}
msg := out
msg := strings.TrimSpace(errBuf.String())
if msg == "" {
msg = out
}
if msg == "" {
msg = err.Error()
}