Samstag, Januar 18, 2020

Was ist die Ursache von „svn: E195019: Redirect cycle detected „URL“?

Versuchen zur Kasse von meinem SVN repo gibt mir

 svn: E195019: Redirect-Zyklus erkannt für URL ... 

Jedoch scheint es, als ob dieser Fehler tritt nur auf, wenn ich bin hinter einige (bestimmte) proxy-server.

Wie bereits in anderen post (siehe tortoise svn gibt mir „Umleiten Zyklus erkannt für die URL „domain/svn'“ ) dieser Fehler tritt auf, wenn der SVN DAV ist falsch konfiguriert, z.B. mit SVNParentPath, wo sollte man SVNPath. Aber, meine Konfiguration scheint korrekt zu sein und – soweit ich weiß – das problem tritt nur auf, wenn hinter einem proxy.

Den Aufbau der repository ist mehr oder weniger standard, z.B.,

 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 
# Erlaube nur-lese-Zugriff zu jedermann, sonst benötigen 
# Authentifizierung erforderlich 
Require valid-user 
</Location> 

5 Kommentare

  1. 13

    (Ich eine Antwort auf meine eigene Frage, nachdem Sie ein halbes Wochenende, um die Suche für die Lösung):

    Scheint es, als ob diese Fehlermeldung bezieht sich auf die Tatsache, dass das subversion-repository befindet sich in einem Verzeichnis svn/myrepo wo das Verzeichnis svn ist auch aufgeführt, wie das DocumentRoot der subdomain svn.mydomain.com. Das DocumentRoot-Direktive war mir nicht klar, da das Dokument-Stamm der subdomain war configered in einer anderen conf-Datei (ich benutze Plesk zum verwalten der server).
    Diese erstellt eine Art von Zweideutigkeit. Einmal zog ich in die Dokument-Stamm der subdomain auf eine andere Position, die Fehlermeldung ging Weg.

    War das problem schwer aufzuspüren, weil – soweit ich weiß –

    • Der Fehler erscheint nicht, wenn das repo befindet sich auf der obersten Ebene der subdomain, also <Location /> und SVNPath /var/www/vhosts/mydomain.com/svn in der oben genannten Konfiguration.

    • Den Fehler nur auftaucht, wenn der repo ist der Zugriff über einen proxy.

    • Dem Zusammenstoß mit DocumentRoot war nicht so offensichtlich, denn es wurde eine subdomain.

    So zusammenfassen: die Lösung (bei der Verwendung von Plesk): Ändern Sie die „DocumentRoot“ der subdomain im Plesk setup (GUI), um etwas andere form der SVN-Verzeichnis. Die „DocumentRoot“ des http://www.mydomain.com ist httpdocs. Die „DocumentRoot“ des svn.mydomain.com war (standardmäßig) svn. Das habe ich geändert, um httpdocs-svn und das problem war Weg. Der Ordner httpdocs-svn ist nicht in mein setup, da alles unten svn.mydomain.com behandelt wird durch DavSVN.

    • Ich bin immer diese Fehler Meldung, aber es ist nicht die Lösung. Ich habe Vanille-Apache2 mit Vanille subversion und libapache2-svn installiert und ausgeführt und ich habe SVNParentPath und erstellt zwei repos in /var/lib/svn und ich kann surfen, um Sie in meinem browser (leer, so weit, aber es funktioniert). Aber wenn ich versuche zu importieren oder Auschecken von der Befehlszeile aus, um die gleiche URI localhost/svn/foo ich bekomme diese Fehlermeldung über die Redirect-Zyklus. es ist positiv KEINE Redirect-Direktive in einer beliebigen Datei unter /etc/apache2 so und Woher kommt es? Denkt daran, dies ist eine Standard-Installation, so dass keine manuelle änderungen.
    • Es ist lange her, ich hatte dieses Problem, aber soweit ich mich erinnere brauchen Sie nicht eine explizite Umleitung und es kann passieren, in einer Standard-Installation, wenn das SVN-root-Verzeichnis und die web-Seite (apache) root-Verzeichnis sind die gleichen. – Aber: ich weiß nicht, ob es gibt andere Konfigurationen, die Ergebnis in die selbe Fehlermeldung.
    • Es stellt sich heraus, dass es ist KEINE Umleitung sondern ein Alias. Für einige unergründlichen Grund die Standard-dav_svn.conf installiert libapache2-svn (glaube ich) defekt ist, da es enthält eine Schein-Alias /svn /var/lib/svn und Sie brauchen, um Sie in einen Kommentar. Dann funktioniert alles. Warum dies so ist, geliefert, kaputt kann ich nicht sagen.
  2. 9

    Stellen Sie sicher, dass der link, den Sie verwenden, ist die ’svn‘ und nicht die ‚anzeigen‘ – link.

    d.h. http://www.myrepo.com/svn/myproject/trunk ||richtige

    http://www.myrepo.com/view/myproject/trunk ||falsche

    Funktionieren sollte.

  3. 3

    In meinem Fall das problem ist, es wurde eine nicht kompatible Einstellungen zwischen zwei Konfigurations-Dateien auf ubuntu.

    Ich habe ubuntu 18.04 und Apache2 und die neuesten svnserver von ubuntu und das problem zu lösen umzuleiten, die ich hatte zu entfernen, Alias von zwei verschiedenen Konfigurationsdateien: /etc/apache2/mods-enabled/dav_svn und /etc/apache2/site-enabled/default-ssl.conf

    /etc/apache2/mods-enabled/dav_svn

     #Alias /svn /svn_repo/svn
     <Location /myrepo>
        DAV svn
        SVNPath /svn_repo/svn
        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile /mypath/dav_svn.passwd
        Require valid-user
        AuthzSVNAccessFile /etc/apache2/dav_svn.authz
    </Location>
    

    /etc/apache2/site-enabled/default-ssl.conf

     #Alias /svn /svn_repo/svn
     <Location /myrepo>
        DAV svn
        SVNPath /svn_repo/svn
        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile /mypath/dav_svn.passwd
        Require valid-user
        AuthzSVNAccessFile /etc/apache2/dav_svn.authz
    </Location>
    

    obviusly nach der änderung muss ich den apache neu starten:

    sudo service apache2 restart
    
  4. 0

    Ist das problem mit der SVN-URL, die Sie gegeben haben während des check-out. Ich überprüfte diverse post für dieses problem, aber keiner von Ihnen arbeitete für mich. Unten ist die sehr einfache Lösung, die für mich gearbeitet,

    Müssen Sie Sie csvn repository über den link“ http://localhost:3343/csvn/repo/list
    „und kopieren Sie die URL der“ Checkout-Befehl “ für das repository, das Sie zugreifen möchten.

    Diese URL müssen Sie in der tortoise-SVN-client für die Kasse.

Kostenlose Online-Tests