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

Ошибка Subversion: репозиторий перемещен навсегда, пожалуйста, переместите его

Я установил 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.