web-dev-qa-db-ja.com

Subversionエラー:リポジトリを完全に移動して再配置してください

サーバーにSubversionとApacheをセットアップしました。

私のWebブラウザーから参照すると、正常に動作します( http://svn.Host.com/reposname )。ただし、自分のマシンでチェックアウトを実行すると、次のエラーが発生します。

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のエラーログを確認しましたが、何も表示されません。 (今はあります-編集を参照してください)

私のリポジトリは/ var/www/svn/repos /に保存されています

私のウェブサイトは/ var/www/vhosts/x/...に保存されています.

サブドメインのconfファイルは次のとおりです。

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

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

認証は正常に機能します。

誰かがこれを引き起こしている可能性があることを知っていますか?

-編集

そこで、Apacheを再起動して(もう一度)再試行し、エラーメッセージが表示されましたが、実際には役に立ちません。誰かがそれが何を意味するのか考えていますか?

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

-編集2

私が行った場合 svn info便利なものは何もありません。

[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

ローカルチェックアウト(svn checkout file:///var/www/svn/repos/reposname)そしてそれはうまくいきます(追加/コミットもうまくいきます)。したがって、Apacheと関係があるようです。

その他の情報:

  • CentOs 5.3を実行しています
  • Plesk 9.3
  • Subversion、バージョン1.6.9(r901367)

-編集3

リポジトリを移動してみましたが、違いはありませんでした。

selinuxが無効になっているため、そうではありません。

23
Bart S.

私は最近これを持っていました...しかし、私はURLを忘れていたことがわかりました:)

あなたがしなければならない一つのことは、あなたのsvn LocationがApacheが提供するウェブサイトと重複しないことを確実にすることです。つまり、DocumentRootを/ wwwに設定し、svn Locationを/ www/svnに設定した場合、問題が発生します-Apacheは何が提供されるかを認識しません(つまり、svn特殊ハンドラー) 、またはストレートhttpハンドラー)。

これに関するFAQエントリ を参照してください。

22
gbjbaanb

チェックアウトしてみてくださいhttp://svn.Host.com/reposname/(末尾のスラッシュに注意してください)。

2
Bill Weiss

このWebを確認してください: http://www.rkrishardy.com/2009/12/Subversion-fix-svn-copy-causes-repository-moved-permanentl/

おそらく、エイリアスは設定されたものと同じ場所を指すdav_svn.modであり、リポジトリにアクセスしている間、Apacheとdav_svnの間に競合状態があります。

提供された記事でよりよく説明されています

Dav_svn.conf内:

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

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
sirkubax

これは古いことはわかっていますが、同じ問題があったため、Googleで見つけました。コンピューターまたはサーバーのファイアウォールによってポート7080がブロックされていないことを確認してください

1
Mikey B

私のリポジトリはsvn.mydomain.com/sites/にリポジトリがあり、vhostにDocumentRootおよびLocationブロックがありました。 documentrootを削除すると、この問題は解決しました。

1
John

RPMベースのSubversionとApacheがインストールされているFC14マシンで、Apacheが提供するhtmlツリーの下に誤ってリポジトリを配置すると、このエラーが発生しました。

SVNParentPath(/etc/httpd/conf.d/Subversion.conf内)は、DocumentRootの外のディレクトリを指す必要があります。

私はリポジトリを移動しましたが、問題は解消しました。

お役に立てれば。

1
Matt

恒久的に引っ越しましたか? HTTPFoxなどの何かをして、Apacheがリポジトリに適切なステータスコードを提供していることを確認できますか(200/OK)。ステータスコード301は、「完全に移動した」URLに対応し、svnクライアントが参照しているURLのように聞こえます。

0
Earlz

たぶん会話が少し遅れるかもしれませんが、Apache構成でエイリアスを使用して末尾の「/」を処理するときにこれを確認します。エイリアス/ svn/path/to/svn /

0
Meg

また、エイリアスディレクティブがsvnリポジトリの場所にマップされていないことを確認する必要もあります。私が持っていたときに私はこれを最近持っていました

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

ここで、エイリアスとロケーションディレクティブは同じパスに適用されます。

0
Eyck Jentzsch

チェックアウト時ではなく、COMMITが行われたときに同様の問題が発生しました。

理由?このフォルダー "obj\Debug\TempPE"。フォルダー "TempPE"がリポジトリーにコミットできないという奇妙な理由があります。

解決策?...プロジェクトの他のすべてのフォルダを1つずつコミットし、その場所をSVNサーバーから削除します

あなたはやっていないようですsvn checkout、 むしろ svn update既存のリポジトリ(?)内。

もしそうなら、これを行います:

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

0
user39255