Kesalahan subversi: Repositori dipindahkan secara permanen untuk dipindahkan

23

Saya telah menyiapkan subversi dan apache di server saya.

Jika saya menjelajahinya melalui browser web saya berfungsi dengan baik ( http://svn.host.com/reposname ). Namun, jika saya melakukan checkout pada mesin saya, saya mendapatkan kesalahan berikut:

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  

Saya memeriksa log kesalahan apache, tetapi tidak mengatakan apa-apa. (ya sekarang - lihat edit)

repositori saya disimpan di bawah: / var / www / svn / repo /

Situs web saya disimpan di: / var / www / vhosts / x / ...

Berikut file conf untuk 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>

Otentikasi berfungsi dengan baik.

Adakah yang tahu apa yang menyebabkan ini?

- Edit

Jadi saya me-restart apache (lagi) dan mencobanya lagi dan sekarang memberikan saya pesan kesalahan, tetapi itu tidak membantu. Adakah yang tahu apa artinya?

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

- Edit 2

Jika saya lakukan svn infoitu tidak memberikan apa pun yang berguna:

[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

Saya juga mencoba melakukan checkout lokal ( svn checkout file:///var/www/svn/repos/reposname) dan itu berfungsi dengan baik (juga menambahkan / melakukan berfungsi dengan baik). Jadi sepertinya ada hubungannya dengan apache.

Beberapa informasi lain:

  • Saya menjalankan CentOs 5.3
  • Plesk 9.3
  • Subversi, versi 1.6.9 (r901367)

- Edit 3

Saya mencoba memindahkan repositori, tetapi tidak ada bedanya.

selinux dinonaktifkan sehingga tidak juga.

Bart S.
sumber
1
Mengapa Anda memiliki Options +indexesyang seharusnya tidak benar-benar melakukan sesuatu yang berguna di lokasi svn.
Zoredache
Sudahkah Anda mencoba menonaktifkan sementara yang ada hubungannya dengan otentikasi / otorisasi?
Zoredache
Saya mencoba membuatnya menunjukkan kepada saya gambaran umum dari semua repositori (kemudian saya mengetahui bahwa ada perintah yang berbeda untuk itu), saya menghapusnya. Saya juga menghapus otentikasi tetapi tidak menyelesaikan apa-apa (Auth sebenarnya berfungsi dengan baik, meminta saya untuk nama pengguna / kata sandi dan hanya menerima kombinasi nyata).
Bart S.

Jawaban:

22

Saya punya ini baru-baru ini ... tapi ternyata saya lupa url :)

Satu hal yang harus Anda lakukan adalah memastikan Lokasi svn Anda tidak tumpang tindih dengan situs web apache-servable. yaitu, jika Anda menetapkan DocumentRoot Anda menjadi / www, dan Lokasi svn Anda menjadi / www / svn ... maka Anda dalam masalah - Apache tidak akan tahu apa yang seharusnya dilayani (yaitu penangan khusus svn , atau http handler lurus).

Lihat entri FAQ untuk ini .

gbjbaanb
sumber
Sepertinya ini bisa menjadi jawaban yang tepat, tetapi berikut ini adalah pos yang mungkin terkait dengan ini: forum.webfaction.com/viewtopic.php?id=2423 .
Paul Kroon
1
Wow, saya sudah tahu tentang ini tetapi saya pikir saya mencobanya lagi. Saya membuat repositori baru dan itu berhasil. Saya bingung mengapa ini, jadi saya FTP ke server saya dan menemukan ada direktori di direktori httpdocs dari subdomain (dibuat oleh plesk) yang disebut tes (sama dengan repositori saya). Saya menghapusnya, dan sekarang berfungsi. Terima kasih untuk bantuannya.
Bart S.
1
Untuk menguraikan sedikit tentang satu skenario umum. Jika Anda memiliki pengaturan host virtual dan ingin SVN di root (mis. Svn.example.com adalah URL repo Anda), JANGAN atur "DocumentRoot / svn" dan kemudian gunakan blok "<Directory / svn>" di dalam VirtualHost Anda untuk mengkonfigurasi opsi DAV svn untuk jalur root. Ini akan memicu masalah di mana Apache menjadi bingung antara penangan DAV dan penangan internal. Seharusnya tidak ada arahan DocumentRoot di blok VirtualHost Anda. Gunakan blok "<Lokasi />" sebagai gantinya untuk mengkonfigurasi opsi svn DAV untuk jalur root.
nezroy
Saya telah memasukkan arahan Alias ​​di konfigurasi saya, misalnya Alias svn /repositoriesdan kemudian mengatur semuanya <Location /svn/ >. Masalahnya persis seperti di tautan FAQ, meskipun secara misterius, ia bekerja dengan sempurna selama sebulan dan kemudian berhenti pada hari Rabu sore di waktu minum teh. Jika repositori Anda berada di "/" maka Anda akan memiliki tumpang tindih dengan arahan DocumentRoot Anda.
Matt Connolly
Itu bekerja dengan sempurna! Itu masalah DocumentRoot! +1
Feiticeir0
2

Coba periksa http://svn.host.com/reposname/(perhatikan garis miringnya).

Bill Weiss
sumber
Saya, subversi hanya menghilangkannya.
Bart S.
//, ini berhasil untukku.
Nathan Basanese
2

Periksa web ini: http://www.rkrishardy.com/2009/12/subversion-fix-svn-copy-causes-repository-moved-permanentl/

Mungkin alias menunjuk ke tempat yang sama dengan congfigured adalah dav_svn.mod, dan ada kondisi ras antara apache dan dav_svn saat mengakses repo.

Lebih baik dijelaskan di artikel yang disediakan

Di dav_svn.conf:

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

Di 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
sirkubax
sumber
1
Tautan di sini sudah mati, dan kemungkinan tidak ada penggantian.
sysadmin1138
//, Akankah memperbarui jawaban ini?
Nathan Basanese
1

Saya memiliki pengaturan vhost dengan repo svn.mydomain.com/sites/ saya di vhost saya memiliki blok DocumentRoot dan Lokasi. Menghapus akar dokumen memecahkan masalah ini.

John
sumber
1

Saya mendapatkan kesalahan ini ketika saya keliru meletakkan repo saya di bawah pohon html yang dilayani oleh Apache, pada mesin FC14 saya Dengan subversi berbasis RPM dan instalasi apache.

SVNParentPath (di /etc/httpd/conf.d/subversion.conf) harus mengarah ke direktori di luar DocumentRoot.

Saya memindahkan repo saya, dan masalahnya hilang.

Semoga ini membantu.

Mat
sumber
1

Saya tahu ini sudah lama tetapi saya menemukannya di Google karena saya memiliki masalah yang sama. Pastikan port 7080 tidak diblokir oleh komputer atau firewall server

Mikey B
sumber
0

Sepertinya Anda tidak melakukannya svn checkout, melainkan svn updatedi repositori yang sudah ada (?).

Jika demikian, lakukan ini:

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


sumber
Tidak, seperti yang dapat Anda lihat di pesan kesalahan yang saya berikan mengatakan "Perintah: Checkout dari ..." Saya benar-benar mencoba checkout baru.
Bart S.
0

Pindah secara permanen? Dapatkah Anda sesuatu seperti HTTPFox atau sesuatu dan memverifikasi bahwa Apache memberikan kode status yang tepat untuk repositori Anda (seharusnya 200/OK). Saya percaya kode status 301sesuai dengan URL yang telah "dipindahkan secara permanen" dan itu terdengar seperti apa yang dimaksud oleh klien svn.

Earlz
sumber
Firebug dan wget keduanya memberikan 200 OK. Tapi seperti yang saya katakan, jika saya menjelajahinya melalui browser saya (dengan berselancar ke http://svn.server.com/repos) itu berfungsi dengan baik, saya mendapatkan "repos - Revisi 0: /" dan semuanya. Masalahnya hanya terjadi ketika saya melakukan checkout.
Bart S.
0

Mungkin agak terlambat dalam percakapan, tetapi saya melihat ini ketika menggunakan Alias ​​di konfigurasi apache untuk menangani trailing '/': Alias ​​/ svn / path / ke / svn /


sumber
0

Anda juga perlu memastikan bahwa tidak ada arahan Alias ​​yang memetakan ke lokasi repo svn. Saya punya ini baru-baru ini ketika saya punya

Alias /svn /var/lib/svn
<Location /svn>
...
</Location>

di mana alias dan arahan lokasi berlaku untuk jalur yang sama.


sumber
0

Saya hanya memiliki masalah yang sama bukan ketika MEMERIKSA, tetapi ketika sebuah KOMIT dibuat.

Alasannya? folder ini "obj \ Debug \ TempPE", untuk beberapa alasan aneh bahwa folder "TempPE" tidak mungkin untuk KOMIT ke repositori

Solusi? ... KOMIT semua folder proyek lainnya satu per satu dan hapus lokasi itu dari server SVN

Mauricio Gracia Gutierrez
sumber