Подключение к Subversion 1.7.2 в Ubuntu 10.4 с помощью TortoiseSVN 1.7.3 - PullRequest
0 голосов
/ 01 января 2012

Последние несколько дней я пытался настроить сервер Subversion SVN на моем сервере Ubuntu 10.04 (Natty Narwhal Server).Я следовал за многими различными уроками.Я посмотрел в официальной документации, но не могу заставить SVN-сервер работать с черепахой.

В последнюю попытку я выполнил простейшую настройку: - sudo apt-get install subversion libapache2-svn - настроитьrepo ('svnadmin create / path / to / repo') - настроенный файл хостов apache2

<Location /svn>
 DAV svn
 SVNParentPath /path/to/repo
 SVNListParentPath on
</Location>

Я не настраивал учетные записи в системе, я не настраивал авторизацию apache2, я не настраивалустановить SSL для этого хоста еще.Я пытался настроить эти вещи, но с той же проблемой, что и результат.Я также попробовал поиграть в arround с разрешениями.

Теперь что происходит: после настройки простой конфигурации, описанной выше, я могу подключиться к репо на самом хосте (файл: ///), я могу зафиксировать en can checkout.Я также могу просматривать репозиторий с помощью Firefox и Chrome.

РЕДАКТИРОВАТЬ Я устанавливаю Subversion на машину в моей локальной сети, используя SSH.Я протестировал IP-адреса с моего маршрутизатора (192.168.1.100) на вашем ноутбуке.Я думаю, это должно устранить проблемы с подключением / переадресацией портов.

Но я не могу просматривать репозиторий с помощью таких инструментов, как Tortoise или Subclipse.Почему есть разница в просмотре репо в интернет-браузере и в инструменте svn?Что я могу сделать, чтобы мой SVN работал в svn tools?

EDIT 2 После получения совета от Lazy Badger я попытался совершить коммит на машине svn с использованием протокола http и получил более интересныйошибка: svn: сервер отправил неожиданное возвращаемое значение (403 запрещено) в ответ на запрос OPTIONS для 'http://192.168.1.100/svn/testrepo'

EDIT 3 Я обнаружил следующие строки в файлах журналамоего apache2:

[Sun Jan 01 14:41:45 2012] [error] [client 192.168.1.1] (20014) Внутренняя ошибка: невозможно открыть файл '/ mnt / webserver / svn / testrepo/ format ': нет такого файла или каталога

[Sun Jan 01 14:41:45 2012] [error] [client 192.168.1.1] Не удалось получить информацию о ресурсе.[500, # 0]

[Sun Jan 01 14:41:45 2012] [error] [client 192.168.1.1] Не удалось открыть запрошенную файловую систему SVN [500, # 2]

[Sun Jan 01 14:41:45 2012] [ошибка] [клиент 192.168.1.1] Не удалось открыть запрошенную файловую систему SVN [500, # 2]

и

[Пн Ян02 07:20:40 2012] [ошибка] [клиент 192.168.1.109] Не удалось получить информацию о ресурсе.[301, # 0]

[Пн Ян 02 02:20:40 2012] [ошибка] [клиент 192.168.1.109] Запросы для коллекции должны иметь косую черту в URI.[301, # 0]


Обновлен Subversion SVN до версии 1.7.2

Я успешно обновил свой Subversion SVN до версии 1.7.2, используя этопоток: http://ubuntuforums.org/showthread.php?t=1876156

  • Сервер Subversion возвращает версию 1.7.2

  • libapache2-svn также возвращает версию 1.7.2

Но проблема все еще та же: (из apache2 access.log) URL и ip редактируются.

84.198.xxx.xxx - - [03 / Янв / 2012: 16: 47: 10 +0100] "GET / svn / testrepo / HTTP / 1.1" 200 551 "http://link.hidden.by.author:8080/svn/"" Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 8.0) Gecko/ 20 $

127.0.0.1 - - [03 / Jan / 2012: 16: 47: 29 +0100] "ОПЦИИ / svn / testrepo HTTP / 1.1" 403 504 "-"«SVN / 1.7.2 neon / 0.29.5»

84.198.xxx.xxx - - [03 / Jan / 2012: 16: 52: 49 +0100] »ВАРИАНТЫ / svn/ testrepo HTTP / 1.1 "403 510" - "" SVN / 1.7.2 / TortoiseSVN-1.7.3.22386 neon / 0.29.6 "

Я не менял никаких файлов самостоятельно.Там все еще должна быть конфигурация, которую я пропускаю ...


Я решил проблему, отключив apache2 RewriteEngine

Чтобы обобщить это в решение:

  • Я обновил свой Subversion SVN до версии 1.7.2 и также модуль libapache2-svn.

  • Я создал репозиторий от имени root

  • Я сделал это репо на www-data: www-data (пользователь и группа apache)

Вы также можете создать нового пользователя и группу (например:svn), но вам нужно добавить пользователя apache2 (www-data) в эту группу svn, чтобы заставить webDAV работать.

  • Я установил групповые разрешения для всех (chmod 775)

  • Я установил SSL и добавил этот блок в файл виртуальных хостов в apache

/ etc / apache2 / sites-enabled / default-ssl:

        <Location /svn>
            DAV svn
            SVNParentPath /mnt/webserver/svn
            SVNListParentPath on

            AuthType Basic
            AuthName "Narwhal SVN"
            AuthUserFile /etc/apache2/svn_passwd

            RewriteEngine off

            <LimitExcept GET PROPFIND OPTIONS REPORT>
                    Require valid-user
            </LimitExcept>
    </Location>
  • Это был RewriteEngine off , который добился цели.

Я нашел этот совет в: https://serverfault.com/questions/20169/webdav-on-centos-getting-403-error-when-attempt-to-upload

Спасибо всем, и особенно Lazy Badger, за вашу помощь.


Редактирование решения: После публикации вышеуказанного решения я столкнулся с новой проблемой.Мне удалось решить эту проблему за несколько минут.

Если при попытке выполнить команду POST появляется ошибка о недопустимом формате XML, вам, вероятно, потребуется установить это в dav_svn.conf или в виртуальном apache2.файл hosts.Просто добавьте его в директиву:

http://svnbook.red -bean.com / ru / 1.7 / svn.ref.mod_dav_svn.conf.html

SVNAdvertiseV2Protocol On|Off

New to Subversion 1.7, this toggles whether mod_dav_svn advertises its support for the new version of its HTTP protocol also introduced in that version. Most admins will not wish to use this directive (which is On by default), choosing instead to enjoy the performance benefits that the new protocol offers. However, whena configuring a server as a write-through proxy to another server which does not support the new protocol, set this directive's value to Off.

Ответы [ 2 ]

0 голосов
/ 02 января 2012

file: /// является чисто локальным методом доступа - не проверяет безопасность и не использует Apache DAV.

Попробуйте svn co http://... и проверьте результаты

>svn co http://mayorat.ursinecorner.ru:8088/svn/Hello/trunk/
A    trunk\Hello.en.txt
A    trunk\Hello.fr.txt
A    trunk\Hello.de.txt
 U   trunk
Checked out revision 32.

Результаты извлечения из моего рабочего тест-репо с анонимным доступом для чтения

0 голосов
/ 02 января 2012

Что вы увидели, когда указали в браузере http://servername/svn?

Одна вещь, SVNParentPath должен указывать на родительскую папку ваших репозиториев, например / path / to / repo

Затем вы создаете репозитории, такие как

svnadmin create /path/to/repo/repo1
svnadmin create /path/to/repo/repo2

Теперь вы можете получить доступ по URL-адресам

http://servername/svn/repo1 http://servername/svn/repo2

Только одна вещь, убедитесь, чтоapache прослушивает 0.0.0.0 для доступа извне хоста, используя HTTP, и iptables не запущен (или создайте для него правило).

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...