git workspace逻辑

This commit is contained in:
2026-06-10 16:06:55 +08:00
parent 023ab2f30e
commit c6f239f424
4 changed files with 70 additions and 2 deletions
+7 -1
View File
@@ -23,7 +23,13 @@ func (e *GitError) Error() string {
for i, a := range e.Args {
redacted[i] = redactURLUserinfo(a)
}
return fmt.Sprintf("git %v: exit %d: %s", redacted, e.ExitCode, e.Stderr)
// stderr 为空说明进程多半没跑起来(chdir 失败、二进制缺失、超时被 kill),
// 此时 Cause 才是唯一有效信息,不能丢。
detail := e.Stderr
if detail == "" && e.Cause != nil {
detail = e.Cause.Error()
}
return fmt.Sprintf("git %v: exit %d: %s", redacted, e.ExitCode, detail)
}
// redactURLUserinfo 剥离形如 scheme://user[:pass]@host 中的 userinfo,