GitCloneTask没有克隆存储库(“远程端意外挂断”)

时间:2011-04-03 16:33:40

标签: git build phing

我正在尝试使用phing编写构建文件和GitCloneTask(从github克隆repo),但每次运行phing时我都会收到此消息:

The remote end hung up unexpectedly

所以我检查了我是否可以使用git-clone =>克隆回购工作得很好;

使用Github API Token&检查我的.gitconfig是否有错误。用户名=>没有错别字或什么

检查了github上提供的所有repo-urls(ssh,https,只读)=>在构建文件

中使用时,它们都不会更改消息

任何想法?

这是构建文件的代码:

<?xml version="1.0" encoding="UTF-8"?>
<project name="ort" default="init">
<!-- ============================================  -->
<!-- Target: initialize                            -->
<!-- ============================================  -->
    <target name="init"> 
        <input propertyname="local.documentRoot">Where to put the files?:</input>
        <mkdir dir="${local.documentRoot}" />
        <gitclone 
            repository="git://github.com/pappelt/oil-resistance-test.git"
            targetPath="${local.documentRoot}" />
    </target>
</project>

3 个答案:

答案 0 :(得分:2)

我在phing类中进行了一些调试,我认为问题是你需要在“gitPath”属性中指定你的git二进制文件的路径/名称。

我认为在Linux上可能是“/ usr / lib / git”,我正在运行windows并且只是使用“git”

<target name="gitclone">
    <echo msg="Getting latest code from ${git.repo}" />
    <gitclone gitPath="git" repository="${git.repo}" targetPath="${build.dir}" />
</target>

这很有效,因为我的git二进制文件(C:\ Program Files \ Git \ cmd)在我的窗口PATH中...即。我可以打开命令提示符并输入“git”,windows会知道它在哪里。

令人讨厌的是我正在克隆私人仓库,这要求我输入密码短语-_-

答案 1 :(得分:1)

我没弄清楚为什么GitCloneTask没有按预期工作,但我解决了我的问题 - 没有自动repo-clone - 有一个解决方法:我没有使用GitCloneTask,而是使用了execTask:< / p>

这是我的代码:

<property name="remote.repositoryPath" value="git://github.com/pappelt/oil-resistance-test.git" />
<input propertyname="local.documentRoot">Where to put the files?:</input>
<exec command="git clone ${remote.repositoryPath} ${local.documentRoot}" />

既不优雅也不理想的解决方案,但现在它的工作原理......

答案 2 :(得分:0)

在我的情况下,我没有权限克隆到我试图克隆到的目录。我不知道这个,因为错误没有提到它。有人有created a patch但是在发布时它没有合并到主线。

通过phing运行-verbose来查看抛出异常的位置。在我的情况下,它来自GitCloneTask.php第77行说。

throw new BuildException('The remote end hung up unexpectedly');

我修改了这个以包含根本原因。

throw new BuildException('The remote end hung up unexpectedly', $e);

我现在得到:

Error:
fatal: could not create work tree dir 'your-repo'.: Permission denied

固定权限,现在可以正常使用。