Frage Subversion-Fehler: Das Repository wurde dauerhaft verschoben, um es zu verschieben


Ich habe Subversion und Apache auf meinem Server eingerichtet.

Wenn ich über meinen Webbrowser dazu blicke, funktioniert es (http://svn.host.com/reposname). Wenn ich jedoch eine Überprüfung auf meinem Computer durchführe, erhalte ich den folgenden Fehler:

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  

Ich habe Apaches Fehlerprotokoll überprüft, aber es sagt nichts. (es tut jetzt - siehe bearbeiten)

Meine Repositories sind gespeichert unter: / var / www / svn / repos /

Meine Website ist gespeichert unter: / var / www / vhosts / x / ...

Hier ist die Conf-Datei für die Subdomain:

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

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

Die Authentifizierung funktioniert einwandfrei.

Weiß jemand, was das verursachen könnte?

- Bearbeiten

Also habe ich Apache (nochmal) neu gestartet und es nochmal probiert und jetzt gibt es mir eine Fehlermeldung, die aber nicht wirklich hilft. Jeder hat eine Idee was es bedeutet?

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

- Bearbeiten 2

Wenn ich mache svn info es gibt nichts nützliches:

[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

Ich habe auch versucht, eine lokale Kasse (svn checkout file:///var/www/svn/repos/reposname) und das funktioniert gut (auch das Hinzufügen / Anbieten funktioniert gut). Es scheint also etwas mit Apache zu tun zu haben.

Einige andere Informationen:

  • Ich betreibe CentOs 5.3
  • Plesk 9.3
  • Subversion, Version 1.6.9 (r901367)

- Bearbeiten 3

Ich habe versucht, die Repositories zu verschieben, aber das machte keinen Unterschied.

selinux ist deaktiviert, also auch nicht.


22
2018-03-31 20:30


Ursprung


Warum hast du Options +indexes das sollte an einem svn-ort nicht wirklich etwas nützen. - Zoredache
Haben Sie versucht, die Authentifizierung / Autorisierung vorübergehend zu deaktivieren? - Zoredache
Ich habe versucht, mir einen Überblick über alle Repositories zu geben (später habe ich herausgefunden, dass es einen anderen Befehl dafür gibt), ich habe es entfernt. Ich entfernte auch Authentifizierung, aber es hat nichts gelöst (Auth funktioniert eigentlich gut, es fragt mich nach einem Benutzernamen / Passwort und akzeptiert nur eine echte Kombination). - Bart S.


Antworten:


Ich hatte das vor kurzem ... aber es stellte sich heraus, dass ich die URL vergessen hatte :)

Eine Sache, die Sie tun müssen, ist sicherzustellen, dass Ihr Svn Location keine Apache-Servable Websites überlappt. Dh, wenn Sie Ihren DocumentRoot auf / www setzen und Ihre svn Location auf / www / svn ..., dann haben Sie Probleme - der Apache wird nicht wissen, womit er bedient werden soll (zB die speziellen svn-Handler) oder ein direkter HTTP-Handler).

Siehe die FAQ-Eintrag dafür.


22
2018-04-04 00:23



Dies scheint die richtige Antwort zu sein, aber hier ist ein weiterer möglicher Beitrag dazu: forum.webfaction.com/viewtopic.php?id=2423. - Paul Kroon
Wow, ich wusste schon davon, aber ich dachte, ich hätte es noch einmal versucht. Ich habe ein neues Repository erstellt und das hat funktioniert. Ich war verwirrt darüber, warum das so war, also habe ich FTP in meinen Server geschickt und herausgefunden, dass es ein Verzeichnis im httpdocs-Verzeichnis der Subdomain (erstellt von plesk) namens test (dasselbe wie mein Repository) gab. Ich habe es gelöscht und jetzt funktioniert es. Danke für die Hilfe. - Bart S.
Ein wenig auf ein gemeinsames Szenario eingehen. Wenn Sie über ein virtuelles Host-Setup verfügen und SVN im Stammverzeichnis (z. svn.beispiel.com ist deine Repo-URL), setze NICHT "DocumentRoot / svn" und verwende dann einen "<Directory / svn>" -Block in deinem VirtualHost, um die DAV-Svn-Optionen für den Root-Pfad zu konfigurieren. Dies löst das Problem aus, bei dem Apache zwischen dem DAV-Handler und seinen internen Handlern verwirrt wird. In Ihrem VirtualHost-Block sollte KEINE DocumentRoot-Direktive sein. Verwenden Sie stattdessen einen "<Location />" -Block, um die DAV-Svn-Optionen für den Root-Pfad zu konfigurieren. - nezroy
Ich hatte eine Alias-Anweisung in meine Konfiguration geschrieben, z Alias svn /repositories und dann alles einrichten <Location /svn/ >. Das Problem war genau wie im FAQ-Link, obwohl es auf mysteriöse Weise für einen Monat perfekt funktionierte und dann an einem Mittwochnachmittag zur Teestunde aufhörte. Wenn sich Ihr Repository auf "/" befindet, haben Sie eine Überschneidung mit Ihrer DocumentRoot-Anweisung. - Matt Connolly
Es hat perfekt funktioniert! Es war das DocumentRoot-Problem! +1 - Feiticeir0


Probieren Sie es aus http://svn.host.com/reposname/ (Beachten Sie den Schrägstrich).


2
2018-04-01 20:35



Ich bin, Subversion entfernt es einfach. - Bart S.
//, Das hat für mich funktioniert. - Nathan Basanese


Überprüfen Sie dieses Web: http://www.rkrishardy.com/2009/12/subversion-fix-svn-copy-causes-repository-moved-permanentl/

Wahrscheinlich verweist der Alias ​​auf den gleichen Ort wie configured ist dav_svn.mod, und es gibt Race-Bedingung zwischen Apache und Dav_svn beim Zugriff auf Repo.

Es ist besser erklärt in bereitgestellten Artikel

In der dav_svn.conf:

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

In 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
2017-08-10 10:42



Der Link hier ist tot und es gibt keinen Ersatz. - sysadmin1138♦
//, Möchten Sie diese Antwort aktualisieren? - Nathan Basanese


Ich habe ein vhost Setup mit meinem Repo bei svn.mydomain.com/sites/  Mein vhost hatte einen DocumentRoot- und Location-Block. Das Entfernen des Documentroot löste dieses Problem.


1
2017-12-06 13:55





Ich habe diesen Fehler bekommen, wenn ich fälschlicherweise meinen Repo unter den HTML-Baum gestellt habe, der von Apache auf meinem FC14-Rechner mit RPM-basierten Subversion- und Apache-Installationen geliefert wurde.

SVNParentPath (in /etc/httpd/conf.d/subversion.conf) sollte auf ein Verzeichnis außerhalb von DocumentRoot verweisen.

Ich habe meinen Repo rausgeschoben und das Problem ist weg.

Hoffe das hilft.


1
2018-02-29 21:36





Ich weiß, das ist alt, aber ich habe es bei Google gefunden, weil ich das gleiche Problem hatte. Stellen Sie sicher, dass der Port 7080 weder von der Computer- noch von der Serverfirewall blockiert wird


1
2017-09-06 09:18





Es scheint, als würdest du es nicht tun svn checkoutaber eher svn update in einem vorhandenen Repository (?).

Wenn ja, dann tu das:

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


0
2018-03-31 20:48



Nein, wie Sie in der Fehlermeldung "Command: Checkout from ..." sehen können, versuche ich einen neuen Checkout. - Bart S.


Dauerhaft umgezogen? Kannst du etwas wie HTTPFox oder so etwas und verifiziere, dass Apache den richtigen Statuscode für dein Repository ausgibt (sollte sein 200/OK). Ich glaube, Statuscode 301 entspricht einer URL, die "permanent verschoben" wurde und das klingt, als ob der SVN-Client sich darauf bezieht.


0
2018-03-31 21:55



Firebug und Wget geben beide 200 OK. Aber wie ich schon sagte, wenn ich über meinen Browser dazu blicke (indem ich zu http://svn.server.com/repos) es funktioniert super, ich bekomme "Repos - Revision 0: /" und alles. Das Problem tritt nur auf, wenn ich einen Checkout mache. - Bart S.