2010-09-13 49 views
11

我想从github中获取一个只读的git仓库,并通过哈德森建立它。这个过程失败了。为什么通过哈德森的git获取失败,而通过命令行的git获取工作?

这是哈德森输出:

Started by an SCM change 
Checkout:workspace/d:\hudson\home\jobs\gdcm-hudson\workspace - [email protected] 
Using strategy: Default 
Checkout:workspace/d:\hudson\home\jobs\gdcm-hudson\workspace - [email protected] 
GitAPI created 
Fetching changes from the remote Git repository 
Fetching upstream changes from git://github.com/malaterre/gdcm.git 
[workspace] $ "C:\Program Files (x86)\Git\bin\git.exe" fetch -t git://github.com/malaterre/gdcm.git +refs/heads/*:refs/remotes/origin/* 
[workspace] $ "C:\Program Files (x86)\Git\bin\git.exe" ls-tree HEAD 
ERROR: Problem fetching from origin/origin - could be unavailable. Continuing anyway 
ERROR: Could not fetch from any repository 
FATAL: Could not fetch from any repository 
hudson.plugins.git.GitException: Could not fetch from any repository 
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:674) 
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:641) 
    at hudson.FilePath.act(FilePath.java:753) 
    at hudson.FilePath.act(FilePath.java:735) 
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:641) 
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1061) 
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:479) 
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:411) 
    at hudson.model.Run.run(Run.java:1273) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) 
    at hudson.model.ResourceController.execute(ResourceController.java:88) 
    at hudson.model.Executor.run(Executor.java:129) 

当我运行通过的git bash命令行直接读取命令,我没有得到任何响应(我假设意味着它的工作)。

我看着这个可能的解决方案: http://issues.hudson-ci.org/browse/HUDSON-7141?page=com.atlassian.jira.plugin.system.issuetabpanels%3Aall-tabpanel

但使用版本的插件并没有改变这种行为。

我甚至没有得到它与cmake一起工作,只是一直下载。我怎样才能使这个工作?

编辑:此问题不是Problem cloning/fetching repository using Git plugin for Hudson on Windows的重播,因为我没有作为服务器上的服务运行。

回答

8

是的,我刚刚解决了这个确切的问题。如果你打开一个Windows资源管理器到d:\hudson\home\jobs\gdcm-hudson\workspace,你应该能够看到.git目录,而不是别的。应该有一个工作副本,但没有。通过运行

git pull git://github.com/malaterre/gdcm.git 

这应该d:\hudson\home\jobs\gdcm-hudson\workspace沿侧创造了一堆其他文件的.git目录解决这个问题,你必须“素”的仓库,你应该能够在哈德森进行构建。

+1

Upvoted因为这对我有效。 – 2011-05-08 20:32:49

+0

kelloti您的意思是我必须将我的存储库克隆到工作区? – Wearybands 2013-07-13 18:46:36

+0

自从我这样做以来已经有一段时间了,但如果没有克隆,您可能需要克隆它,所以是的。在我给出的答案中,我只需拉一次即可开始。有可能你有完全不同的问题。 – kelloti 2013-07-14 15:22:46

2

Hudson的Git插件仅在最近才出现此类错误消息(issue 6902, July 2010)。在它过去默默地进行之前(这是误导性的)。

您是否定义了任何子模块?
因为它看起来像Git Plugin Bug 4

我有以下设置:

  • 一个名为“master”分支,它包含一个子模块到另一个项目
  • 一个名为“开发”分支,即不包含子模块参考

如果我将Hudson作业配置为构建/测试“develop”分支,则构建会中断,因为它可以不做子模块结帐。因为在切换到“开发”分支之前会发生这种情况,所以在任何开始之前构建都会被中断。

我假定的git ls-tree HEAD输出进行扫描以160000名的引用,以确定哪个条目是子模块。
在这一点上,参考HEAD仍然指向master,我想在大多数情况下。
而不是ls-tree'ing HEAD,也许它在指定的分支?

5

这发生在我以前工作正常的构建。该解决方案只是删除工作区目录并重新启动构建。

0

删除Hudson工作空间目录.hudson后,它适用于我。我正在使用Hudson 2.2.1git plugin 2.2.1

+0

2.2.1? Jenkins最新的git插件是afaics 1.1.26 – Hardy 2012-12-04 11:27:40

0

为了记录,在我的情况下,问题是有一个特殊的Git可执行文件配置(在全球Hudson设置)。由于缺少库,此可执行文件无法在我的某些构建主机上运行。当使用/ usr/bin/git而不是它工作。

所以它看起来像描述的错误消息确实可以指示任何 Git错误。