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:
- 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.
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 .
Essayez de vérifier http://svn.Host.com/reposname/
(notez la barre oblique de fin).
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
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
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.
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.
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.
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 /
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.
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