Я установил Subversion и Apache на своем сервере.
Если я перейду к нему через свой веб-браузер, он будет работать нормально (http://svn.host.com/reposname). Однако, если я провожу проверку на своем компьютере, я получаю следующую ошибку:
Command: Checkout from http://svn.host.com/reposname, revision HEAD, Fully recursive, Externals included
Error: Repository moved permanently to 'http://svn.host.com/reposname/'; please relocate
Я проверил журнал ошибок apache, но он ничего не говорит. (теперь есть - см. править)
Мои репозитории хранятся в: / var / www / svn / repos /
Мой веб-сайт хранится по адресу: / var / www / vhosts / x / ...
Вот файл conf для поддомена:
<Location />
DAV svn
SVNParentPath /var/www/svn/repos/
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /var/www/svn/auth/svn.htpasswd
Require valid-user
</Location>
Аутентификация работает нормально.
Кто-нибудь знает, что может быть причиной этого?
-- Редактировать
Итак, я перезапустил apache (снова) и попробовал еще раз, и теперь он выдает мне сообщение об ошибке, но это действительно не помогает. Кто-нибудь знает, что это значит?
[Wed Mar 31 23:41:55 2010] [error] [client my.ip.he.re] Could not fetch resource information. [403, #0]
[Wed Mar 31 23:41:55 2010] [error] [client my.ip.he.re] (2)No such file or directory: The URI does not contain the name of a repository. [403, #190001]
- Редактировать 2
Если я сделаю svn info
ничего полезного не дает:
[root@server domain.com]# svn info http://svn.domain.com/repos/
Username: username
Password for 'username':
svn: Repository moved permanently to 'http://svn.domain.com/repos/'; please relocate
Я также пробовал производить оплату на месте (svn checkout file:///var/www/svn/repos/reposname
), и это отлично работает (также отлично работает добавление / фиксация). Кажется, это как-то связано с apache.
Другая информация:
- Редактировать 3
Я пытался переместить репозитории, но это не имело никакого значения.
selinux отключен, так что это тоже не так.
У меня это было недавно ... но оказалось, что я забыл URL :)
Одна вещь, которую вы должны сделать, - это убедиться, что ваше svn Location не перекрывает какие-либо веб-сайты, обслуживаемые apache. то есть, если вы установите свой DocumentRoot на / www, а ваше svn Location на / www / svn ... тогда у вас проблемы - Apache не будет знать, с чем он должен работать (т.е. специальные обработчики svn , или прямой обработчик http).
Увидеть Запись в FAQ для этого.
Проверьте эту сеть: http://www.rkrishardy.com/2009/12/subversion-fix-svn-copy-causes-repository-moved-permanentl/
Вероятно, псевдоним указывает на то же место, что и сконфигурированный - dav_svn.mod, и существует состояние гонки между apache и dav_svn при доступе к репо.
Это лучше объяснено в предоставленной статье
В dav_svn.conf:
<Location /svn> #Alias we are talking about
DAV svn
В apache_site.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName svn.za11.pl
#Alias /svn "/mnt/nfs/svn/" ###Comment out or change this alias
DocumentRoot /mnt/nfs/svn/
<Directory /mnt/nfs/svn/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Directory>
... rest of the file
Попробуйте проверить http://svn.host.com/reposname/
(обратите внимание на косую черту в конце).
У меня есть настройка vhost с моим репо в svn.mydomain.com/sites/
у моего vhost был блок DocumentRoot и Location. Удаление корня документа решило эту проблему.
Я получил эту ошибку, когда по ошибке поместил свое репо под дерево html, обслуживаемое Apache, на моем компьютере FC14 с подрывной версией на основе RPM и установками apache.
SVNParentPath (в /etc/httpd/conf.d/subversion.conf) должен указывать на каталог вне DocumentRoot.
Я переместил репо, и проблема исчезла.
Надеюсь это поможет.
Я знаю, что это старый, но я нашел его в Google, потому что у меня была такая же проблема. Убедитесь, что порт 7080 не заблокирован брандмауэром компьютера или сервера.
Похоже, ты не делаешь svn checkout
, скорее svn update
в существующем репозитории (?).
Если да, сделайте следующее:
svn switch --relocate http://svn.host.com/reponame
Переехал навсегда? Можете ли вы что-то вроде HTTPFox или что-то в этом роде и проверить, что Apache выдает правильный код статуса для вашего репозитория (должен быть 200/OK
). Я считаю код статуса 301
соответствует URL-адресу, который "перемещен навсегда", и это похоже на то, что имеет в виду клиент svn.
Может быть, немного поздно в разговоре, но я вижу это при использовании псевдонима в конфигурации apache для работы с завершающим '/': Alias / svn / path / to / svn /
Вам также необходимо убедиться, что директива Alias не соответствует местоположению репозиториев svn. У меня было это недавно, когда у меня было
Alias /svn /var/lib/svn
<Location /svn>
...
</Location>
где псевдоним и директива местоположения применяются к одному и тому же пути.
Просто у меня была аналогичная проблема не при ПРОВЕРКЕ, а при выполнении COMMIT.
Причина? эта папка "obj \ Debug \ TempPE", по какой-то странной причине, что папка "TempPE" не может быть COMMIT ее в репозиторий
Решение? ... ЗАКЛЮЧИТЕ все остальные папки проекта одну за другой и удалите это место с сервера SVN.