`svn checkout` sur le server SVN provoque le retrait de la rupture avec une erreur 301

Nous avons un server nginx qui dépend d'une configuration standard d'Apache + SVN. La configuration nginx est un proxy très simple:

server { server_name svn.ourdomain.tld; location / { proxy_pass http://localhost:8080; } } 

Apache est configuré comme suit:

 <Location /> DAV svn SVNParentPath /var/svn AuthType Basic AuthName "Authentication Required" AuthUserFile /var/svn/.auth Require valid-user </Location> 

… ce qui nous permet d'accéder aux référentiels en utilisant quelque chose comme http://svn.ourdomain.tld/repo . Nous avons exécuté cette configuration maintenant depuis environ 2 ans sans problème.

Récemment, nous avons constaté que nous devons vérifier l'un des repositorys sur le server lui-même, mais chaque fois que nous le faisons, il semble casser le count de rechange. À partir de ce moment-là, il ne répondra qu'avec une erreur 301 Moved Permanently .

Nous avons essayé:

  • svn co file:///path/to/repo
  • svn co svn://localhost/repo
  • svn co svn://svn.ourdomain.tld/repo
  • svn co svn+ssh://localhost/repo
  • svn co svn+ssh://svn.ourdomain.tld/repo
  • svn co http://localhost/repo
  • svn co http://svn.ourdomain.tld/repo

Aussi essayé de contourner nginx, et get la même erreur:

  • svn co http://localhost:8080/repo
  • svn co http://svn.ourdomain.tld:8080/repo

La vérification d'une machine différente fonctionne comme prévu jusqu'à ce que nous essayions de vérifier sur le server, puisqu'il refuse avec la même erreur 301 .

Ce qui est plus confus, c'est que ce server de repository héberge également notre server Hudson CI, qui peut tirer et build nos projets chaque heure. Cela nous amène à soupçonner que c'est le client svn qui cause une erreur de communication.

Il est également très déroutant que l'élimination puis la recréation du repo à l'aide de svnadmin ne réinitialise pas l'erreur – le count de rechange n'est toujours pas disponible même s'il est "nouveau"! Le redémarrage d'apache et de subversion (svnserve) n'a aucun effet sur celui-ci ou sur l'erreur d'origine.

Information sur la version:

  • Système d'exploitation: 64 bits CentOS 4.2, 2.6.27 kernel
  • svn client: 1.4.2 (le même pour le server et les clients distants)
  • server svn: 1.4.2
  • httpd: 2.2.3

METTRE À JOUR:

Cela se produit également avec l' svn export lors de l'exécution sur le server repo. A partir d'une autre boîte / client, il n'y a pas de problème. Voici le stream de travail, afin de clarifier l'erreur:

  1. [~repo-server~]# svnadmin create {repo}; chown -Rf www:www {repo}
  2. [remote-client]# svn checkout http://svn.ourdomain.tld/repo
  3. [remote-client]# svn add file; svn ci -m ''
  4. [~repo-server~]# cd /var/www; svn export file:///path/to/repo/trunk ourproject
  5. [remote-client]# svn update échoue avec erreur 301

Je peux également confirmer que le nom d'hôte de la boîte n'a pas d'effet ici, ce qui est très étrange: si svn.ourdomain.tld est ajouté à /etc/hosts il se casse encore – nous avons pensé que cela pourrait être un problème avec localhost routing, mais cela ne semble pas être le cas.

Est-ce que nous manquons quelque chose dans la documentation qui indique que vous ne pouvez pas cocher un count de rechange lorsque le server se trouve sur la même boîte? Comment pouvons-nous arrêter que les pensions deviennent corrompues lors de la caisse locale?

One Solution collect form web for “`svn checkout` sur le server SVN provoque le retrait de la rupture avec une erreur 301”

svn ne gère pas les redirections HTTP (c'est ce que l'erreur 301 est), regardez l'endroit où la redirection pointe vers (wget, wireshark), caisse à partir de là.

C'est aussi un problème spécifique à apache, la configuration de l'hôte virtuel peut l'être.

  • Lancer un avertissement dans le crochet de pré-validation
  • Synchronisation d'un directory avec un référentiel SVN
  • SVN 1.2.3 à 1.7 Migration Dump Load problèmes
  • Configuration de SVN sur un server hébergé
  • Le trafic HTTP sur SSH vers le server SVN?
  • Svn commit a échoué mais n'a pas échoué
  • Pouvez-vous utiliser des caractères generics dans l'Autorisation basée sur le path de Subversion?
  • Installation de TortoiseSVN pour des users spécifiques sur Cisortingx XenApp
  • Quelles sont les façons de sauvegarder les repositorys pour Windows VisualSVN?
  • Utilisez le nom d'user + le mot de passe pour authentifier à svn via ssh
  • Comment mettre à jour un server de subversion de 1.5 à 1.6 sur le server Windows 2003?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.