我正在尝试从github获取一个只读的git存储库,并通过hudson构建它。这个过程失败了。
这是哈德森的输出:
Started by an SCM change
Checkout:workspace / d:\hudson\home\jobs\gdcm-hudson\workspace - hudson.remoting.LocalChannel@19ba1d8
Using strategy: Default
Checkout:workspace / d:\hudson\home\jobs\gdcm-hudson\workspace - hudson.remoting.LocalChannel@19ba1d8
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命令行运行该fetch命令时,我没有得到任何响应(我认为这意味着它有效)。
我看了这个可能的解决方案: 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的副本,因为我没有在服务器上作为服务运行。
答案 0 :(得分:8)
是的,我刚刚解决了这个问题。如果您打开d:\hudson\home\jobs\gdcm-hudson\workspace
的Windows资源管理器,您应该能够看到.git
目录,而不是其他内容。应该有一个工作副本,但没有。要解决此问题,您必须通过运行
git pull git://github.com/malaterre/gdcm.git
这应该在.git目录旁边的d:\hudson\home\jobs\gdcm-hudson\workspace
中创建一堆其他文件,你应该能够在hudson中执行构建。
答案 1 :(得分:5)
这发生在我以前工作正常的构建上。解决方案只是删除工作区目录并重新启动构建。
答案 2 :(得分:2)
Hudson的Git插件最近才出现这种错误消息(issue 6902, July 2010)。之前它曾经默默地继续下去(这是误导性的)。
您是否定义了任何子模块?
因为它看起来像Git Plugin Bug 4
我有以下设置:
- 一个名为“master”的分支,它包含另一个项目的子模块
- 一个名为“develop”的分支,它不包含子模块引用
如果我配置Hudson作业来构建/测试“develop”分支,则构建会中断,因为它无法执行子模块检出。因为这在切换到“develop”分支之前发生,所以在任何开始之前构建都会被破坏。
解决方案
我假设扫描
git ls-tree HEAD
的输出以获得160000个参考,以确定哪些条目是子模块。
在大多数情况下,我认为此时的参考HEAD
仍然指向master
而不是ls-tree
'HEAD
,也许在指定的分支上执行此操作?
答案 3 :(得分:0)
删除Hudson工作区目录.hudson
后,它对我有用。我正在使用Hudson 2.2.1
和git plugin 2.2.1
。
答案 4 :(得分:0)
对于记录,在我的情况下,问题是配置了一个特殊的Git可执行文件(在全局Hudson设置中)。由于缺少库,此可执行文件无法在我的某些构建主机上运行。当使用/ usr / bin / git时,它可以工作。
所以看起来所描述的错误消息确实可以指示任何 Git错误。