2013-08-27 3 views
8

Der Versuch von meinem SVN-Repo zur Kasse gibt mirWas ist der Grund für "svn: E195019: Umleitungszyklus für URL erkannt"?

 
    svn: E195019: Redirect cycle detected for URL ... 

Es scheint jedoch, als ob dieser Fehler tritt nur auf, wenn ich hinter einem (bestimmten) Proxy-Server bin.

Wie in anderen Post (siehe tortoise svn giving me "Redirect cycle detected for URL 'domain/svn'") diskutiert, tritt dieser Fehler auf, wenn der SVN DAV falsch konfiguriert ist, z. B. unter Verwendung von SVNParentPath, wo SVNPath verwendet werden sollte. Meine Konfiguration scheint jedoch korrekt zu sein und - soweit ich weiß - tritt das Problem nur auf, wenn es sich um einen Proxy handelt.

Der Aufbau des Repository ist mehr oder weniger Standard, zB

 
    ServerAlias svn.mydomain.com 
    <Location /myrepo> 
     DAV svn 
     SVNPath /var/www/vhosts/mydomain.com/svn/myrepo 
     AuthType Basic 
     AuthName "mydomain svn" 
     AuthUserFile /var/www/vhosts/svn.mydomain.com/conf/htpasswd-myproject 
     # Allow read-only access to anyone, otherwise require 
     # require authentication 
      Require valid-user 
    </Location> 

Antwort

12

(ich eine Antwort auf meine eigene Frage gegeben, nach einem halben Wochenende mit der Lösung zu suchen):

Es scheint, als ob diese Fehlermeldung damit zusammenhängt, dass sich das Subversion-Repository in einem Verzeichnis svn/myrepo befindet, in dem auch das Verzeichnis svn als DocumentRoot der Subdomäne svn.mydomain.com aufgeführt ist. Diese DocumentRoot-Anweisung war für mich nicht offensichtlich, da der Document-Root der Subdomain in einer anderen Conf-Datei konferiert wurde (ich verwende Plesk, um den Server zu pflegen). Dies erzeugte eine Art von Zweideutigkeit. Nachdem ich den Dokumentstamm der Subdomäne an einen anderen Speicherort verschoben hatte, ging die Fehlermeldung verloren.

Das Problem war schwer ausfindig zu machen, weil - soweit ich weiß -

  • Der Fehler erscheint nicht, wenn der Repo auf der obersten Ebene der Sub-Domäne befindet, dh <Location /> und SVNPath /var/www/vhosts/mydomain.com/svn in die obige Konfiguration.

  • Der Fehler tritt nur auf, wenn auf den Repo über einen Proxy zugegriffen wird.

  • Der Konflikt mit DocumentRoot war nicht so offensichtlich, weil es eine Subdomain war.

Um es zusammenzufassen: die Lösung (wenn Plesk verwenden): Ändern Sie den "DocumentRoot" der Sub-Domain in der Plesk-Setup (GUI) auf etwas andere Form des SVN-Verzeichnis. Der "DocumentRoot" von www.mydomain.com ist httpdocs. Das "DocumentRoot" von svn.mydomain.com war (standardmäßig) svn. Ich änderte das zu httpdocs-svn und das Problem war weg. Der Ordner httpdocs-svn wird in meinem Setup nicht verwendet, da alles unter svn.mydomain.com von DavSVN gehandhabt wird.

+0

Ich bekomme diese Fehlermeldung, aber es ist nicht diese Lösung. Ich habe Vanille Apache2 mit Vanille Subversion und libapache2-svn, alles installiert und läuft und ich habe SVNParentPath verwendet und zwei Repos in/var/lib/svn erstellt und ich kann zu ihnen in meinem Browser (leer bis jetzt, aber es funktioniert) . Aber wenn ich versuche, von der Befehlszeile in den gleichen URI http: // localhost/svn/foo zu importieren oder auschecken, bekomme ich diesen Fehler über den Redirect-Zyklus. Es gibt wirklich keine Umleitung Direktive irgendwo in irgendeiner Datei unter/etc/apache2 also wo kommt es her? Beachten Sie, dass dies eine Standardinstallation ist, also keine manuellen Änderungen. –

+0

Es ist eine lange Zeit her, dass ich dieses Problem hatte, aber soweit ich mich erinnere, brauchen Sie keine explizite Weiterleitung und es kann in einer Standardinstallation passieren, wenn das SVN-Stammverzeichnis und das Webseitenstammverzeichnis (Apache) identisch sind . - Aber: Ich weiß nicht, ob es andere Konfigurationen gibt, die die gleiche Fehlermeldung ergeben. –

+0

Es stellt sich heraus, dass es keine Umleitung, sondern ein Alias ​​ist. Aus unerfindlichen Gründen ist die von libapache2-svn (ich denke) installierte Standarddatei dav_svn.conf fehlerhaft, da sie ein Pseudo-Alias ​​/ svn/var/lib/svn enthält und du es auskommentieren musst. Dann funktioniert alles. Warum das kaputt geht, kann ich nicht sagen. –

0

Das Problem ist mit der SVN URL, die Sie beim Auschecken angegeben haben. Ich habe verschiedene Posts auf dieses Problem überprüft, aber keiner von ihnen hat für mich funktioniert. Unten ist die sehr einfache Lösung, die für mich gearbeitet,

Sie csvn Repository mit Link ‚http://localhost:3343/csvn/repo/list ‘ und kopieren Sie die URL ‚Checkout-Befehl‘ für das Repository benötigen Sie, die Sie zugreifen möchten.

Diese URL müssen Sie im Tortoise SVN-Client zum Auschecken verwenden.

5

Stellen Sie sicher, dass der von Ihnen verwendete Link der Link "svn" und nicht der Link "view" ist.

heißt www.myrepo.com/svn/myproject/trunk || korrekte
www.myrepo.com/view/myproject/trunk || falsch

Das sollte funktionieren.

+0

Ich denke, das wurde zu Unrecht herabgestuft. Ich habe genau die gleiche Fehlermeldung erhalten, als ich versuchte, viewvc web view urls auszumachen. Beispiele http://svn.apache.org/viewvc/ant/sandbox/ oder http://svn.apache.org/viewvc/axis/axis1/java/trunk – thoredge

+0

Das hat mein Problem genau gelöst – SK176H

Verwandte Themen