Subversion error: Depo, lütfen yerini değiştirmek için kalıcı olarak taşındı


23

Sunucumda subversion ve apache ayarları yaptım.

Web tarayıcım aracılığıyla ona göz attığımda, iyi çalışıyor ( http://svn.host.com/reposname ). Ancak, makineme bir ödeme yaparsam aşağıdaki hatayı alıyorum:

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  

Apache'nin hata günlüğünü kontrol ettim ama bir şey söylemedi. (şimdi yapar - düzenlemeye bakın)

Depolarım: / var / www / svn / repos / altında saklanır

Web sitem altında saklanıyor: / var / www / vhosts / x / ...

İşte alt etki alanı için conf dosyası:

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

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

Kimlik doğrulama iyi çalışıyor.

Buna neyin neden olduğunu bilen var mı?

-- Düzenle

Böylece apache'yi yeniden başlattım (tekrar) ve tekrar denedim ve şimdi bana bir hata mesajı verdi, ancak gerçekten yardımcı olmuyor. Bunun ne anlama geldiği hakkında bir fikri olan var mı?

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

- Düzenleme 2

Eğer yapmam svn infoo şey kullanışlı vermez:

[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

Ayrıca yerel bir ödeme yapmayı da denedim ( svn checkout file:///var/www/svn/repos/reposname) ve bu iyi çalışıyor (ayrıca ekleyerek / iyi işler ekleyerek). Öyle görünüyor ki apache ile bir ilgisi var.

Bazı diğer bilgiler:

  • CentO'ları çalıştırıyorum 5.3
  • Plesk 9.3
  • Subversion, sürüm 1.6.9 (r901367)

- Düzenle 3

Depoları taşımayı denedim, ancak bu bir fark yaratmadı.

selinux devre dışı bırakıldı, öyle de değil.


1
Neden Options +indexesbir svn konumunda işe yarayacak bir şey yapmamalı?
Zoredache

Kimlik doğrulama / yetkilendirme ile ilgili herhangi bir şeyi geçici olarak devre dışı bırakmayı denediniz mi?
Zoredache

Bana tüm depolara genel bir bakış göstermesini sağlamaya çalıştım (daha sonra bunun için farklı bir komut olduğunu öğrendim), kaldırdım. Ayrıca kimlik doğrulamasını da kaldırdım ancak hiçbir şeyi çözemedi (Auth aslında iyi çalışıyor, bir kullanıcı adı / şifre istiyor ve yalnızca gerçek bir kombinasyonu kabul ediyor).
Bart S.

Yanıtlar:


22

Son zamanlarda bunu yaptım ... ama URL’yi unuttuğum ortaya çıktı :)

Yapmanız gereken şeylerden biri, svn Konumunuzun apache servis web siteleriyle örtüşmemesini sağlamaktır. yani, eğer DocumentRoot'unuzu / www olarak ve svn Konumunuzu / www / svn olarak ayarlarsanız ... o zaman başınız belada demektir - Apache neye hizmet etmesi gerektiğini bilemez (svn özel işleyicileri veya düz bir http işleyicisi).

Bunun için SSS girişine bakın .


Bu doğru cevap olabilir gibi görünüyor, ancak işte bununla ilgili olası bir başka yazı: forum.webfaction.com/viewtopic.php?id=2423 .
Paul Kroon,

1
Vay, bunu zaten biliyordum ama başka bir deneyeyim dedim. Yeni bir depo oluşturdum ve işe yaradı. Bunun neden olduğu konusunda kafam karıştı, bu yüzden sunucuma FTP yaptım ve alt alanın httpdocs dizininde (plesk tarafından oluşturulan) test (depo ile aynı) adında bir dizin olduğunu öğrendim. Sildim ve şimdi çalışıyor. Yardım için teşekkürler.
Bart S.

1
Ortak bir senaryoda biraz detaylandırmak için. Sanal bir ana bilgisayar kurulumunuz varsa ve kökünden SVN istiyorsanız (örneğin, svn.example.com repo URL’nizdir), "DocumentRoot / svn" ayarını YAPMAYIN ve sonra VirtualHost’unuzun içinde bir "<Directory / svn>" bloğu kullanmayın. kök yolu için DAV svn seçeneklerini yapılandırın. Bu, Apache'nin DAV işleyicisi ve iç işleyicileri arasında karıştığı sorunu tetikler. VirtualHost bloğunuzda NO DocumentRoot yönergesi bulunmalıdır. Kök yol için DAV svn seçeneklerini yapılandırmak için bunun yerine "<Konum />" bloğu kullanın.
Nezroy

Benim yapılandırma, örneğin bir takma yönergesini koymuştu Alias svn /repositoriesve sonra her şeyi kurmak <Location /svn/ >. Sorun tam olarak SSS bağlantısında olduğu gibi, gizemli bir şekilde, bir ay boyunca mükemmel bir şekilde çalıştı ve çay saatinde Çarşamba öğleden sonra durdu. Deponuz "/" konumundaysa, DocumentRoot yönergenizle bir çakışmanız olacaktır.
Matt Connolly

Mükemmel çalıştı! DocumentRoot sorunuydu! +1
Feiticeir0


2

Bu web’i kontrol edin: http://www.rkrishardy.com/2009/12/subversion-fix-svn-copy-causes-repository-moved-permanentl/

Muhtemelen takma ad, yapılandırılmış olanla aynı yere işaret eder dav_svn.mod ve repo erişilirken apache ile dav_svn arasında yarış koşulu var.

Sağlanan makalede daha iyi açıklanmıştır

Dav_svn.conf'ta:

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

Apache_site.conf içinde

<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

1
Buradaki link öldü ve muhtemel bir değişim yok
sysadmin1138

//, Bu cevabı günceller miydi?
Nathan Basanese,

1

Depomdaki repo ile bir vhost kurulumum var svn.mydomain.com/sites/ . Belge kökünü kaldırmak bu sorunu çözdü.


1

Yanlışlıkla repo'umu Apache tarafından sunulan html ağacının altına, FC14 makinemle RPM tabanlı subversion ve apache kurulumlarına koyduğumda bu hatayı aldım.

SVNParentPath (/etc/httpd/conf.d/subversion.conf içinde), DocumentRoot dışındaki bir dizine işaret etmelidir.

Depolamamı taşındım ve sorun çözüldü.

Bu yardımcı olur umarım.


1

Eski olduğunu biliyorum ama aynı sorunu yaşadığım için Google’da buldum. Bağlantı noktası 7080'in bilgisayar veya sunucu güvenlik duvarı tarafından engellenmediğinden emin olun


0

Görünüşe göre yapmıyorsun svn checkout, daha svn updateçok mevcut bir havuzda (?).

Eğer öyleyse, şunu yap:

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


Hayır, verdiğim hata mesajında ​​gördüğünüz gibi "Komut: Ödeme ..." yazıyor. Gerçekten yeni bir ödeme yapmaya çalışıyorum.
Bart S. 21:

0

Kalıcı Olarak Taşındı? HTTPFox veya benzeri bir şey yapabilir ve Apache'nin havuzunuz için doğru durum kodunu verdiğini doğrulayabilir misiniz (olması gerekir 200/OK). Durum kodunun 301"kalıcı olarak taşınan" bir URL'ye karşılık geldiğine ve svn istemcisinin neyi kastettiğine benzeyen bir ses olduğuna inanıyorum .


Firebug ve wget her ikisi de bir 200 OK verir. Ama dediğim gibi, eğer tarayıcımla gezinip (gezerek http://svn.server.com/repos) harika çalışıyor, "repo - Revizyon 0: /" ve her şeyi alıyorum. Sorun yalnızca bir ödeme yaptığımda oluşur.
Bart S.

0

Muhtemelen sohbette biraz geç kalmıştım, ancak şunu izliyorum: apache config Alias ​​'i izleyen' Ali 'kullanırken: Alias ​​/ svn / path / to / svn /


0

Ayrıca, Alias ​​yönergesinin svn depolarının konumunu belirlemediğinden emin olmanız gerekir. Bunu son zamanlarda yaşadım.

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

takma ad ve konum yönergesi aynı yola uygulanırsa.


0

Ben sadece KONTROL EDİLMEZ, ancak bir KOMİTE yapıldığında benzer bir sorun vardı.

Sebep? bu klasör "obj \ Debug \ TempPE", tuhaf bir nedenden ötürü "TempPE" klasörü depoya KABUL EDİLEMEZDİR

Çözüm? ... Projenin diğer tüm klasörlerini tek tek COMMIT ve bu konumu SVN sunucusundan kaldırın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.