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

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

Это вывод hudson:

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 еще, просто загружен последовательно. Как я могу заставить это работать?

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

Ответ 1

Да, я просто исправил эту точную проблему. Если вы откроете проводник 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.

Ответ 2

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

Ответ 3

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

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

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

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

Если я сконфигурировал задание Хадсона для сборки/тестирования ветки "развить", сборка ломается, потому что она не может выполнить проверку подмодуля. Поскольку это происходит до перехода на ветвь "develop", сборка разбивается прежде, чем что-либо начнется.

Решение

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

Ответ 4

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

Ответ 5

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

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