Hi.
I'm trying to execute
*git -c gc.reflogexpire=0 -c gc.reflogexpireunreachable=0 -c
gc.rerereresolved=0 -c gc.rerereunresolved=0 -c gc.prunreexpire=now gc*
from inside git. When I run this in a terminal I get output like:
*Enumerating objects: 539, done.Counting objects: 100% (539/539),
done.Delta compression using up to 4 threadsCompressing objects: 100%
(235/235), done.Writing objects: 100% (539/539), done.Total 539 (delta
298), reused 539 (delta 298), pack-reused 0 (from 0)Enumerating cruft
objects: 491, done.Traversing cruft objects: 597, done.Counting objects:
100% (501/501), done.Delta compression using up to 4 threadsCompressing
objects: 100% (216/216), done.Writing objects: 100% (501/501), done.Total
501 (delta 284), reused 501 (delta 284), pack-reused 0 (from 0)*
However, when I run it using os/exec.Command I get nothing on stderr or
stdout. Other git commands do output to stderr and stdout, so I'm a little
mystified. Here is a test program demonstrating this:
*package mainimport ( "fmt" "io" "os/exec")func run(cmd string, args
...string) { runner := exec.Command(cmd, args...) outp, _ :=
runner.StdoutPipe() errp, _ := runner.StderrPipe() if err :=
runner.Start(); err != nil { panic(err) } outs, _ := io.ReadAll(outp) errs,
_ := io.ReadAll(errp) err := runner.Wait() fmt.Printf("cmd: %q\n",
runner.String()) fmt.Printf("stdout: %q\n", outs) fmt.Printf("stderr:
%q\n", errs) fmt.Printf("err: %v\n", err)}func main() { run("git",
"--version")
fmt.Println("-----------------------------------------------------------------------------")
run( "git", "-c", "gc.reflogexpire=0", "-c",
"gc.reflogexpireunreachable=0", "-c", "gc.rerereresolved=0", "-c",
"gc.rerereunresolved=0", "-c", "gc.prunreexpire=now", "gc", )
fmt.Println("-----------------------------------------------------------------------------")
run("git", "skidoosh")}*
and here is its output:
*cmd: "/usr/bin/git --version"stdout: "git version 2.51.2\n"stderr: ""err:
<nil>-----------------------------------------------------------------------------cmd:
"/usr/bin/git -c gc.reflogexpire=0 -c gc.reflogexpireunreachable=0 -c
gc.rerereresolved=0 -c gc.rerereunresolved=0 -c gc.prunreexpire=now
gc"stdout: ""stderr: ""err:
<nil>-----------------------------------------------------------------------------cmd:
"/usr/bin/git skidoosh"stdout: ""stderr: "git: 'skidoosh' is not a git
command. See 'git --help'.\n"err: exit status 1*
I feel like I'm missing something obvious, but it isn't clear what that
might me.
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/golang-nuts/5e861a7a-141a-4399-85c1-6cda8a88a344n%40googlegroups.com.