Почему git fetch через hudson терпит неудачу, в то время как git fetch через командную строку работает?

Я пытаюсь получить репозиторий Git только для чтения из github и построить его через hudson. Этот процесс терпит неудачу.

это вывод hudson:

Started by an SCM change
Checkout:workspace / d:hudsonhomejobsgdcm-hudsonworkspace - hudson.remoting.LocalChannel@19ba1d8
Using strategy: Default
Checkout:workspace / d:hudsonhomejobsgdcm-hudsonworkspace - 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)Gitbingit.exe" fetch -t git://github.com/malaterre/gdcm.git +refs/heads/*:refs/remotes/origin/*
[workspace] $ "C:Program Files (x86)Gitbingit.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.invoke(GitSCM.java:674)
    at hudson.plugins.git.GitSCM.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)

когда я запускаю эту команду fetch непосредственно через командную строку Git bash, я не получаю ответа (что, как я предполагаю, означает, что это сработало).

Я посмотрел на это возможно решение: http://issues.hudson-ci.org/browse/HUDSON-7141?page=com.atlassian.jira.plugin.system.issuetabpanels%3Aall-tabpanel

но использование этой версии плагина не изменило это поведение.

Я еще даже не получил, чтобы он работал с cmake, просто загружается последовательно. Как я могу заставить это работать?

edit: эта проблема не является повторением проблема клонирования / извлечения репозитория с помощью плагина Git для Hudson on Окна, потому что я не работаю как служба на сервере.

5 ответов


Да, я только что исправил эту точную проблему. Если открыть Проводник windows в d:\hudson\home\jobs\gdcm-hudson\workspace вы должны быть в состоянии видеть .git каталог и ничего больше. Должна быть рабочая копия, но ее нет. Чтобы исправить это, вы должны" prime " репозиторий, запустив

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

это должно создать кучу других файлов в d:\hudson\home\jobs\gdcm-hudson\workspace вдоль стороны .git directory и вы должны иметь возможность выполнять сборку в hudson.


Это пришло мне в голову на сборке, которая ранее работала нормально. Решением было просто удалить каталог рабочей области и перезапустить сборку.


плагин Git для Hudson терпит неудачу только недавно в этом виде сообщения об ошибке (выпуск 6902, июль 2010). Раньше это продолжалось молча (что вводило в заблуждение).

у вас есть какие-либо определенные подмодули?
Потому что это выглядит как Ошибка Плагина Git 4

у меня есть следующие настройки:

  • ветвь под названием "master", которая содержит подмодуль для другого проекта
  • ветка называется "develop", который не содержит ссылки на подмодуль

если я настраиваю задание Hudson для сборки / тестирования ветви "разработка", сборка прерывается, потому что она не может выполнить проверку подмодуля. Поскольку это происходит перед переключением на ветку "разработка", сборка прерывается до начала работы.

решение

Я предполагаю, что выход git ls-tree HEAD сканируется для 160000 ссылок, чтобы определить, какие записи подмодули.
Судья HEAD в этот момент все еще указывает на master, Я полагаю, в большинстве случаев.
Вместо ls-tree ' ing HEAD, может сделать это на указанной ветке?


после удаления каталога рабочей области Hudson .hudson, это работает для меня. Я использую Hudson 2.2.1 и git plugin 2.2.1.


для записи в моем случае проблема заключалась в том, что был настроен специальный исполняемый файл Git (в глобальных настройках Hudson). Этот исполняемый файл не удалось запустить на некоторых из моих узлов сборки из-за отсутствия библиотек. При использовании /usr/bin/git вместо этого он работал.

таким образом, похоже, что описанное сообщение об ошибке действительно может указывать любой ошибка Git вообще.