сбой golang Command при работе команды оболочки

#git #shell #go

#git #оболочка #Вперед

Вопрос:

Почему это сбой (ошибка 128, недопустимый репозиторий):

 func main() {
  command_base := "/usr/local/bin/git-upload-pack"
  command_args := []string{"/repos/bar/foo.git"}
  cmd := exec.Command(command_base, command_args...)
  out, err := cmd.CombinedOutput()
  if err != nil {
    log.Fatalf("cmd.Run() failed with %sn", err)
  }
  fmt.Printf("combined out:n%sn", string(out))
}
  

Когда это удается…

 $ /usr/local/bin/git-upload-pack /repos/bar/foo.git
00f262621d854b3299d7f17d6f1523435396cfcf8357 HEADmulti_ack thin-pack side-band side-band-64k ofs-delta shallow deepen-since deepen-not deepen-relative no-progress include-tag multi_ack_detailed symref=HEAD:refs/heads/master agent=git/2.21.0
003f62621d854b3299d7f17d6f1523435396cfcf8357 refs/heads/master
0000
  

Комментарии:

1. Что за сообщение об ошибке?

2. @Mark, я обновил вопрос статусом выхода и сообщением об ошибке.

3. strace -f и то, и другое, и ищите разницу. Также обратите внимание на текущий рабочий каталог.