问题 为什么通过hudson获取git失败,而通过命令行git fetch工作?


我正在尝试从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合作,只是一直下载。我怎样才能让它发挥作用?

编辑:这个问题不是一个重复 在Windows上使用Hudson的Git插件克隆/获取存储库的问题,因为我没有在服务器上作为服务运行。


6300
2017-09-13 23:10


起源



答案:


是的,我刚刚解决了这个问题。如果你打开一个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目录旁边,您应该能够在hudson中执行构建。


8
2017-12-14 21:09



Upvoted,因为这对我有用。 - Ricky Clarkson
kelloti你的意思是我必须将我的存储库克隆到工作区吗? - Wearybands
我做了这个已经有一段时间了,但是如果没有克隆你可能需要克隆它,所以是的。在我给出的答案中,我只需要拉一次即可开始。你可能有一个完全不同的问题。 - kelloti


答案:


是的,我刚刚解决了这个问题。如果你打开一个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目录旁边,您应该能够在hudson中执行构建。


8
2017-12-14 21:09



Upvoted,因为这对我有用。 - Ricky Clarkson
kelloti你的意思是我必须将我的存储库克隆到工作区吗? - Wearybands
我做了这个已经有一段时间了,但是如果没有克隆你可能需要克隆它,所以是的。在我给出的答案中,我只需要拉一次即可开始。你可能有一个完全不同的问题。 - kelloti


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


5
2017-10-31 05:42





Hudson的Git插件最近才出现这种错误消息(2010年7月发行6902号)。之前它曾经默默地继续下去(这是误导性的)。

你有定义的子模块吗?
因为它看起来像 Git Plugin Bug 4

我有以下设置:

  • 一个名为“master”的分支,它包含另一个项目的子模块
  • 一个名为“develop”的分支,它不包含子模块引用

如果我配置Hudson作业来构建/测试“develop”分支,则构建会中断,因为它无法执行子模块检出。因为这在切换到“develop”分支之前发生,所以在任何开始之前构建都会被破坏。

我假设输出 git ls-tree HEAD 扫描160000个引用以确定哪些条目是子模块。
  裁判 HEAD 在那一点上仍然指向 master我想在大多数情况下。
  代替 ls-tree“ING HEAD,也许在指定的分支上做?


2
2017-09-14 04:10





删除Hudson工作区目录后 .hudson, 这个对我有用。我在用着 Hudson 2.2.1 和 git plugin 2.2.1


0
2017-09-23 12:04



2.2.1? Jenkins的最新git插件是afaics 1.1.26 - Hardy


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

所以看起来所描述的错误消息确实可以表明 任何 Git错误。


0
2018-01-28 15:42