web-dev-qa-db-fra.com

Erreur de subversion: le référentiel a été déplacé définitivement pour déplacer

J'ai installé Subversion et Apache sur mon serveur.

Si je le parcoure via mon navigateur Web, cela fonctionne très bien ( http://svn.Host.com/reposname ). Cependant, si je passe une commande sur ma machine, j'obtiens l'erreur suivante:

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  

J'ai vérifié le journal des erreurs d'Apache, mais il ne dit rien. (il le fait maintenant - voir modifier)

Mes référentiels sont stockés sous:/var/www/svn/repos /

Mon site Web est stocké sous:/var/www/vhosts/x/...

Voici le fichier conf pour le sous-domaine:

<Location />
   DAV svn
   SVNParentPath /var/www/svn/repos/

   AuthType Basic
   AuthName "Authorization Realm"
   AuthUserFile /var/www/svn/auth/svn.htpasswd
   Require valid-user
</Location>

L'authentification fonctionne bien.

Est-ce que quelqu'un sait ce qui pourrait causer cela?

- Modifier

J'ai donc redémarré Apache (à nouveau) et l'ai essayé à nouveau et maintenant il me donne un message d'erreur, mais cela n'aide pas vraiment. Quelqu'un a une idée de ce que cela signifie?

[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]

- Édition 2

Si je fais svn info ça ne donne rien d'utile:

[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

J'ai également essayé d'effectuer un paiement local (svn checkout file:///var/www/svn/repos/reposname) et cela fonctionne très bien (l'ajout/la validation fonctionne également très bien). Il semble donc que cela ait quelque chose à voir avec Apache.

Quelques autres informations:

  • J'utilise CentOs 5.3
  • Plesk 9.3
  • Subversion, version 1.6.9 (r901367)

- Modifier 3

J'ai essayé de déplacer les référentiels, mais cela n'a fait aucune différence.

selinux est désactivé, ce n'est pas non plus le cas.

23
Bart S.

J'ai eu ça récemment ... mais il s'est avéré que j'avais oublié l'url :)

Une chose que vous devez faire est de vous assurer que votre emplacement svn ne chevauche aucun site Web Apache. c'est-à-dire, si vous définissez votre DocumentRoot pour être/www, et votre emplacement svn pour être/www/svn ... alors vous avez des problèmes - Apache ne saura pas avec quoi il est censé être servi (c'est-à-dire les gestionnaires spéciaux svn , ou un gestionnaire http direct).

Voir entrée FAQ pour cela .

22
gbjbaanb

Essayez de vérifier http://svn.Host.com/reposname/ (notez la barre oblique de fin).

2
Bill Weiss

Consultez ce site Web: http://www.rkrishardy.com/2009/12/Subversion-fix-svn-copy-causes-repository-moved-permanentl/

L'alias pointe probablement vers le même endroit que congfiguré est dav_svn.mod, et il y a des conditions de concurrence entre Apache et dav_svn lors de l'accès au dépôt.

C'est mieux expliqué dans l'article fourni

Dans dav_svn.conf:

  <Location /svn>  #Alias we are talking about
  DAV svn

Dans 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
2
sirkubax

Je sais que c'est vieux mais je l'ai trouvé sur Google parce que j'avais le même problème. Assurez-vous que le port 7080 n'est pas bloqué par le pare-feu de l'ordinateur ou du serveur

1
Mikey B

J'ai une configuration vhost avec mon dépôt à svn.mydomain.com/sites/ mon vhost avait un bloc DocumentRoot et Location. La suppression de la racine du document a résolu ce problème.

1
John

J'ai eu cette erreur lorsque j'ai placé par erreur mon dépôt sous l'arborescence html servie par Apache, sur ma machine FC14 avec des installations Subversion et Apache basées sur RPM.

SVNParentPath (dans /etc/httpd/conf.d/Subversion.conf) doit pointer vers un répertoire en dehors de DocumentRoot.

J'ai retiré mon repo et le problème a disparu.

J'espère que cela t'aides.

1
Matt

Déplacé en permanence? Pouvez-vous quelque chose comme HTTPFox ou quelque chose et vérifier qu'Apache donne le bon code d'état pour votre référentiel (devrait être 200/OK). Je crois que le code d'état 301 correspond à une URL qui a "bougé de façon permanente" et qui ressemble à ce à quoi le client svn fait référence.

0
Earlz

Peut-être un peu tard dans la conversation, mais je le vois lorsque j'utilise un alias dans la configuration Apache pour gérer le dernier '/': Alias ​​/ svn/path/to/svn /

0
Meg

Vous devez également vous assurer qu'aucune directive Alias ​​ne correspond à l'emplacement du dépôt svn. J'ai eu ça récemment quand j'avais

Alias /svn /var/lib/svn
<Location /svn>
...
</Location>

où l'alias et la directive location s'appliquent au même chemin.

0
Eyck Jentzsch

J'ai juste eu un problème similaire non pas lors du CHECKING OUT, mais lors d'un COMMIT.

La raison? ce dossier "obj\Debug\TempPE", pour une raison étrange que le dossier "TempPE" ne soit pas possible de le COMMITER dans le référentiel

Solution? ... COMMITER tous les autres dossiers du projet un par un et supprimer cet emplacement du serveur SVN

Il semble que vous ne fassiez pas svn checkout, mais plutôt svn update dans un référentiel existant (?).

Si oui, procédez comme suit:

svn switch --relocate http://svn.Host.com/reponame

0
user39255