【发布时间】:2014-10-16 08:11:40
【问题描述】:
在 apache ant 脚本中我有宏:
<macrodef name = "git">
<attribute name = "command" />
<attribute name = "options" />
<attribute name = "dir" default = "" />
<attribute name="failonerror" default="false"/>
<sequential>
<echo message = "GIT Command: git @{command} @{options}, dir: @{dir}" />
<exec executable = "C:\Git\cmd\git.exe" dir = "@{dir}">
<arg value = "@{command}" />
<arg value = "@{options}" />
</exec>
</sequential>
</macrodef>
后来我打电话给:
<git command = "pull" options = '-v' dir = "subfolder/subsubfolder" failonerror = "true"/>
但是,当我以 subfolder/subsubfolder 或 C:\direct\path\to\subfolder\subsubfolder\ 的 dir 开始我的 Hudson 工作时,我的工作就卡在上面了,我只能在控制台输出中得到回显。甚至没有错误或任何东西。 Hudson 安装在装有 Windows XP 的机器上。
我尝试在 Windows CMD 中使用此命令 - 当我在 repo 文件夹中时它正在工作,如下所示:
C:\direct\path\to\subfolder\subsubfolder>C:\Git\cmd\git.exe pull -v
我做错了什么?有没有办法更好地将 git 与 ant 集成?
一些新的笔记:
- 如果我尝试在错误目录中执行 git pull 会出错。
- 如果我尝试执行 git checkout,它可以工作。
- 如果我尝试执行 git fetch,它会像 git pull 一样挂起。
另一个编辑,也许是一些线索:
我更改直接 Git 调用 .bat 文件,其中包含 git 命令。很简单一些CD 进入目录然后git pull。当我运行脚本时,它工作得很好。但它永远挂在哈德逊。也许是在 Java 中调用 git subprocess 需要一些环境变量? Git 正在使用 SSH 无电源连接,后台没有任何代理。
【问题讨论】: