Назад | Перейти на главную страницу

Проблема подключения между redmine и svn

У меня есть сервер под управлением Debian 6.0. Некоторое время назад я установил и настроил Redmine, а теперь настроил сервер svn.

Теперь я пытаюсь настроить Redmine для просмотра репозитория svn. URL: https://192.168.11.78/svn/bee

Соединение не работает, журнал показывает эту ошибку:

Error parsing svn output: #<REXML::ParseException: No close tag for /lists/list>

Google говорит, что это обычная ошибка, и ее можно исправить, навсегда приняв сертификат сервера, поэтому я сделал это и ничего. Все еще не работает.

Позже я добавил

[global]
store-plaintext-passwords = no

в файле

.subversion/servers

Я сделал это (и принял сертификат) как для пользователей root, так и для пользователей www-данных. Ничего не помогло, все еще есть ошибка в Redmine

The entry or revision was not found in the repository.

Что еще я могу с этим сделать?

Это ошибка в Redmine, IIRC. Он вообще не очень хорошо обрабатывает самозаверяющие сертификаты.

В итоге я выполнил инструкции Вот и получил мою работу. Короче говоря, создайте каталог для Subversion, в который будет сбрасывать его конфигурацию, запустите его один раз вручную, затем отредактируйте subversion_adapter.rb в Redmine lib/redmine/scm/adapters/ папку, чтобы указать ее в этом каталоге конфигурации. Я не следовал / не мог следовать этим указаниям в точности, я сомневаюсь, что вы тоже сможете, так что будьте готовы отойти от сценария, если это будет необходимо.

Добавление к тому, что сказал Пилман (поскольку я не могу прокомментировать его ответ), для меня добавление директивы --config-dir в файл subversion_adapter.rb было последним кусочком головоломки (я пробовал разные способы запуска svn и постоянно принимает сертификат, но redmine не найдет конфигурацию).

Чтобы уточнить, полные шаги были:

1: Изменить сценарий адаптера Subversion Redmine

# pico /usr/share/redmine/lib/redmine/scm/adapters/subversion_adapter.rb

Измените строку в этом файле с помощью аргументов командной строки

из: str << " --no-auth-cache --non-interactive"

кому: str << " --config-dir /usr/share/redmine/svn/.subversion --no-auth-cache --non-interactive"

2. Убедитесь, что клиент Subversion постоянно принимает самоподписанный сертификат.

# sudo -u www-data svn --config-dir /usr/share/redmine/svn/.subversion list https://<my-repository-url>

При появлении запроса выберите параметр, чтобы постоянно принимать сертификат (p)

Чтобы завершить тест, введите свои учетные данные Subversion, когда будет предложено (нажмите Enter в первом запросе имени пользователя для www-данных, и он снова запросит другое имя пользователя). При появлении запроса выберите «нет», чтобы сохранить ваши учетные данные в незашифрованном виде (необходимое принятие сертификата SSL к этому моменту уже сохранено). Вы можете убедиться в этом, заглянув в каталог /usr/share/redmine/svn/.subversion, где вы найдете каталог с именем svn.ssl.server с новым файлом в нем.

Очевидно, что если ваша копия redmine работает от имени пользователя, отличного от www-data, вам следует использовать sudo вместо этого пользователя. Убедитесь, что у пользователя, которому вы используете sudo, есть необходимые разрешения для создания каталога / svn внутри каталога redmine - в противном случае вам может не быть предоставлена ​​возможность (p) постоянно принимать сертификат при запуске клиента svn.

3: перезапустить Apache

В моем случае redmine работает с использованием mod_passenger под apache, поэтому было необходимо перезапустить apache, чтобы принять изменения в сценарии адаптера subversion redmine (до перезапуска я все еще видел ошибки в redmine).

# /etc/init.d/apache2 restart

4. Перейдите к проекту / репозиторию в Redmine.

Теперь все должно работать