Groovy 执行一个 git shell 命令 [英] Groovy execute a git shell command
问题描述
我正在尝试在 groovy 中执行 git shell 命令.第一个执行良好,但第二个返回退出代码 128:
I'm trying to execute git shell command in groovy. The first is executed well but the second returns the exit code 128:
def workingDir = new File("path/to/dir")
"git add .".execute(null, workingDir)
def p = "git reset --hard".execute( null, workingDir )
p.text.eachLine {println it}
println p.exitValue()
这段代码有什么问题?
推荐答案
第二个过程在第一个完成之前就开始了.当第二个 git 进程启动时,git 识别出在同一目录中已经有一个 git 进程在运行,这可能会导致问题,因此它会出错.如果您从第一个过程中读取错误流,您将看到如下内容:
The second process is starting before the first one completes. When the second git process starts git recognizes that there is already a git process operating in that same directory which could cause problems so it errors out. If you read the error stream from the first process you will see something like this:
fatal: Unable to create 'path/to/dir/.git/index.lock': File exists.
If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.
如果您在开始第二个之前等待第一个完成,那应该可行.像这样:
If you wait for the first one to finish before starting the second one, that should work. Something like this:
def workingDir = new File("path/to/dir/")
def p = "git add .".execute(null, workingDir)
p.waitFor()
p = "git reset --hard".execute( null, workingDir )
p.text.eachLine {println it}
println p.exitValue()
这篇关于Groovy 执行一个 git shell 命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!