Subversion не доступен для Hudson (svn: соединение отклонено сервером) - PullRequest
2 голосов
/ 28 ноября 2010

На ПК с Vista 32Bit SP2 (UAC активирован, Kaspersky Security Suite с активированным брандмауэром) я настроил сервер Subversion (с помощью установщика SlikSVN 1.6.13), Tomcat 7.0, Java 6u21 и Hudson 1.386.Я обращаюсь к Хадсону через http-интерфейс, используя Firefox 3.6 ("http://localhost:8080/hudson").Я скачал простое демо-репо и запустил сервер Subversion, добавив репо.Когда команда

"svn list svn: // localhost / gameoflife / trunk"

вводится в командной строке, сервер печатает список.Я могу получить доступ к репозиторию с помощью TortoiseSVN, щелкнув правой кнопкой мыши на его папке в проводнике Windows.Кажется, все настроено правильно.Но следующие две вещи не работают:

  1. Ввод "svn://localhost/gameoflife/trunk" в браузере.Браузер запрашивает, должен ли он использовать TortoiseSVN, чтобы открыть его, но после согласования TortoiseSVN не может подключиться («отказано сервером»).

  2. Гораздо важнее и причина моего вопросав том, что Хадсон не может подключиться к SVN.Журнал сборки показывает "ERROR: Failed to check out svn://localhost/gameoflife/trunk".Конфигурация проекта жалуется на то, что URL хранилища "svn: // localhost / gameoflife / trunk" недоступен ("svn:connection refused by the server"), и предлагает добавить информацию об авторизации.Но я не настроил пользователя или пароль на сервере SVN.Я обновил плагин Hudson Subversion с 1.20 до 1.21, но это ничего не изменило.Отключение брандмауэра ничего не изменило.

Я вполне уверен, что тщательно следовал подробным пошаговым инструкциям при настройке сервера сборки, но, будучи не профессионалом ни в Subversion, ни в Hudson, я застрял.Отсюда мой вопрос: по какой причине Хадсон не может получить доступ к Subversion и как я могу заставить его работать?

UPDATE : я убедился, что в хост-файле Vista есть "127.0.0.1 localhost"в нем (но URL не работает даже при вводе 127.0.0.1 вместо localhost).Я проверил, что порт 3690 не заблокирован брандмауэром.В моем сообщении об ошибке не указано, что в нем есть ошибки аутентификации, и не говорится, что сервер активно отказывает в соединении.Это то же самое сообщение об ошибке, которое появляется при вводе несуществующего URL.Если тот же URL не будет работать в командной строке консоли, я предполагаю, что в нем есть опечатка, но я дважды проверил несколько раз.Возможно, это проблема Vista, но я все еще не могу найти решение.

ОБНОВЛЕНИЕ 2 : Я все больше и больше убежден, что это должно быть побочным эффектом моей Vistaсистема (неправильно) настроена.Хадсон работает, Subversion работает.Но они не будут работать вместе , если оба работают на одной машине.Мне удалось без проблем получить доступ к удаленному серверу Subversion из Хадсона.Но тот же Хадсон не смог получить доступ к Subversion локально.Я воспроизвел поведение «не работает вместе локально» при настройке на аналогичном сконфигурированном Vista-ПК (основное отличие - использование 64-разрядных версий на этот раз и бесплатное ПО Avira вместо Kaspersky).

Я попытался обменятьРаспространение Subversion с другим (VisualSVN-Server 2.1.4) и попытался получить доступ к нему с помощью https.Сначала я, казалось, делал успехи, но теперь это не удалось с ошибкой рукопожатия, когда файлы собирались получить из репозитория.

Поскольку я не могу найти причину своей проблемы, я переключаюсь надругой CI-Build-Tool сейчас.Тем не менее, спасибо, что уделили мне время и помогли мне.

Ответы [ 5 ]

2 голосов
/ 29 ноября 2010

Прежде всего, вы можете войти в систему как пользователь Hudson (т. Е. Пользователь, который запускает сервер Hudson), и посмотреть, может ли этот пользователь Hudson получить доступ к базе данных Subversion?

Это укажет напроблема около 90% времени.Обычно это небольшая проблема, такая как неверный путь или плохая аутентификация.Если вы можете оформить заказ и собрать из командной строки от имени пользователя Hudson, вы сможете сделать это через Hudson.

Я знаю, что в Windows серверный процесс может генерировать server пользователь, который не может войти в систему из командной строки, но вы также можете указать реального пользователя в качестве процесса сервера.С Subversion и Hudson лучше указать реального пользователя, поэтому при необходимости вы можете выполнять отладку командной строки.

Похоже, вы пытаетесь просмотреть репозиторий Subversion, который использует сервер svnserve свеб-браузер.Большинство веб-браузеров не могут нормально обрабатывать протокол svn.

Вам нужно использовать что-то вроде ViewVC или Sventon для просмотра хранилища в веб-браузере.Hudson прекрасно работает с обоими этими пакетами и интегрирует отчет об изменениях с этими пакетами.Нажав на имя файла, вы увидите разницу между версией, которая использовалась в сборке, и предыдущей версией.

ViewVC использует Python, а Sventon - пакет Java.Я предпочитаю Sventon, потому что он не должен жить на вашем сервере хранилища Subversion.

1 голос
/ 06 января 2011

Hudson не может анонимно подключиться к svnserve в Windows 7 (64-разрядная версия) со стандартными настройками по умолчанию.Следующие параметры, добавленные в командную строку, были успешными:

svnserve -d --listen-port 3690 --listen-host 127.0.0.1 -r svn-repos

0 голосов
/ 21 февраля 2011

Другое решение ...

Svn-сервер отвечает только на ipv6 ... Я не могу объяснить почему, я не являюсь ни Windows, ни сетевым гуру, но это работает ...

Мои / windows / system32 / drivers / etc / hosts:

127.0.0.1       localhost4
::1             localhost6
::1             local-svn
127.0.0.1       local-tomcat

Я получаю доступ к SVN, используя svn: // local-svn // trunk / ... Я получаю доступ к tomcat, используя http://local -tomcat: 8080 /

Попытка использовать ipv6 для доступа к tomcat не удалась.Попытка использовать ipv4 для доступа к SVN не удается.

0 голосов
/ 01 декабря 2010

Попробуйте подключиться к порту 3690 с помощью telnet (telnet localhost 3690). Если это не работает, убедитесь, что у вас установлен демон / служба svnserve и он работает.

У вас есть прокси, настроенный для JVM (в Windows это можно сделать в Java Панель управления и по умолчанию интернет Настройки проводника используются). Если так, попробуйте отключить прокси.

Эти два совета взяты из http://old.nabble.com/SVN-protocol.-Connection-refused-by-the-server-tt22481558.html#a22481558

Последний комментарий гласит:

... Мне просто любопытно, почему поведение SVNKit и командная строка SVN отличаются?

0 голосов
/ 28 ноября 2010

Похоже, вам нужна аутентификация для общения с Subversion. Если анонимное чтение не является проблемой для вашей компании, я предлагаю вам настроить сервер для разрешения анонимных запросов на чтение.

Если это проблема, вы можете ввести данные аутентификации в hudson.

Если вы используете современную версию, она должна сообщить вам, что аутентификация не удалась, и вам нужно ввести учетные данные.

...