2013-08-27 3 views
8

Попытка проверка из моего SVN репо дает мнеВ чем причина «svn: E195019: цикл перенаправления для URL-адреса»?

 
    svn: E195019: Redirect cycle detected for URL ... 

Тем не менее, представляется, что эта ошибка возникает только если я за какой-то (специфический) прокси-сервер.

Как обсуждалось в другом сообщении (см. tortoise svn giving me "Redirect cycle detected for URL 'domain/svn'"), эта ошибка возникает, если SVN DAV неправильно сконфигурирован, например, используя SVNParentPath, где следует использовать SVNPath. Однако моя конфигурация кажется правильной и, насколько я знаю, проблема возникает только в случае прокси-сервера.

Настройка хранилища более или менее стандартный, например,

 
    ServerAlias svn.mydomain.com 
    <Location /myrepo> 
     DAV svn 
     SVNPath /var/www/vhosts/mydomain.com/svn/myrepo 
     AuthType Basic 
     AuthName "mydomain svn" 
     AuthUserFile /var/www/vhosts/svn.mydomain.com/conf/htpasswd-myproject 
     # Allow read-only access to anyone, otherwise require 
     # require authentication 
      Require valid-user 
    </Location> 

ответ

12

(я дал ответ на свой вопрос, после использования половины уикэнд для поиска решения):

Похоже, что это сообщение об ошибке связано с тем, что репозиторий subversion находится в каталоге svn/myrepo, где каталог svn также указан как DocumentRoot субдомена svn.mydomain.com. Эта директива DocumentRoot не была очевидна для меня, поскольку корень документа из поддомена был настроен в другом файле conf (я использую Plesk для поддержки сервера). Это создало некоторую двусмысленность. Как только я переместил корень документа из поддомена в другое место, сообщение об ошибке исчезло.

Проблема была трудно отследить, потому что - насколько я знаю -

  • ошибка не появляется, если репо находится на верхнем уровне субдомена, т.е. <Location /> и SVNPath /var/www/vhosts/mydomain.com/svn в указанную выше конфигурацию.

  • Ошибка возникает только при обращении к репо через прокси.

  • Столкновение с DocumentRoot было не столь очевидным, потому что это был поддомен.

Итак, подведем итог: решение (при использовании Plesk): Изменение «DocumentRoot» субдомена в установке Plesk (GUI) на что-то иной форме, каталог SVN. «DocumentRoot» www.mydomain.com - httpdocs. «DocumentRoot» svn.mydomain.com был (по умолчанию) svn. Я изменил это на httpdocs-svn, и проблема исчезла. Папка httpdocs-svn не используется в моей настройке, так как все, что находится ниже svn.mydomain.com, обрабатывается DavSVN.

+0

Я получаю это сообщение об ошибке, но это не такое решение. У меня есть vanilla Apache2 с подрывной работой vanilla и libapache2-svn, все установленные и запущенные, и я использовал SVNParentPath и создал два репозитория в/var/lib/svn, и я могу просматривать их в своем браузере (до сих пор пуст, но он работает) , Но если я попытаюсь импортировать или проверить из командной строки в тот же URI http: // localhost/svn/foo, я получаю эту ошибку в цикле Redirect. есть положительная директива Redirect нигде в любом файле под/etc/apache2, откуда он исходит? Имейте в виду, что это установка по умолчанию, поэтому никаких ручных изменений нет. –

+0

Давно у меня была эта проблема, но насколько я помню, вам не нужна явная переадресация, и это может произойти при установке по умолчанию, если корневой каталог SVN и корневой каталог веб-страницы (apache) одинаковы , - Но: я не знаю, есть ли другие конфиги, которые приводят к тому же сообщению об ошибке. –

+0

Получается, что это НЕ ПЕРЕВОД, а Псевдоним. По какой-то непостижимой причине по умолчанию установлен dav_svn.conf, установленный libapache2-svn (я думаю), поскольку он содержит поддельный Alias ​​/ svn/var/lib/svn, и вам нужно прокомментировать его. Тогда все работает. Почему это отгружено, я не могу сказать. –

0

Проблема связана с URL-адресом SVN, который вы указали во время выписки. Я проверил различные сообщения для этой проблемы, но никто из них не работал для меня. Ниже очень простое решение, которое работает для меня,

Вам нужны вам csvn хранилища, используя ссылку «http://localhost:3343/csvn/repo/list » и скопировать URL из «команды» Checkout для репозитория, который вы хотите получить доступ.

Этот URL-адрес, который вы должны использовать в клиенте SVN-черепахи для проверки.

5

Убедитесь, что вы используете ссылку 'svn', а не ссылку 'view'.

т.е. www.myrepo.com/svn/myproject/trunk || правильно
www.myrepo.com/view/myproject/trunk || некорректный

Это должно работать.

+0

Я думаю, что это было несправедливо понижено. Я получил то же самое сообщение об ошибке при попытке проверить URL-адреса viewvc для веб-просмотра. Примеры http://svn.apache.org/viewvc/ant/sandbox/ или http://svn.apache.org/viewvc/axis/axis1/java/trunk – thoredge

+0

Это решило мою проблему точно – SK176H

Смежные вопросы