web-dev-qa-db-ja.com

「svn:E195019:Redirect cycle detected for URL」の原因は何ですか?

SVNリポジトリからチェックアウトしようとすると、

 svn:E195019:URLのリダイレクトサイクルが検出されました... 

ただし、このエラーは、特定のプロキシサーバーの背後にいる場合にのみ発生するようです。

他の投稿で説明されているように( tortoise svnで「URL 'domain/svn'のリダイレクトサイクルが検出されました」 を参照)、SVN DAVの場合にこのエラーが発生しますたとえば、SVNPathを使用する必要があるSVNParentPathを使用するなど、設定が間違っている。しかし、私の構成は正しいように見え、私が知る限り、問題はプロキシの背後でのみ発生します。

リポジトリの設定は多かれ少なかれ標準です、例えば、

 ServerAlias svn.mydomain.com 
 <場所/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
#読み取り専用アクセスを許可誰かに、それ以外の場合は必要
#認証が必要
有効なユーザーが必要
 </ Location> 
13
Christian Fries

(私は自分の質問に回答を与えました、週末を使って解決策を検索した後):

このエラーメッセージは、Subversionリポジトリがディレクトリsvn/myrepoにあるという事実に関連しているように見えます。ディレクトリsvnもサブドメインのDocumentRoot svn.mydomain.comとしてリストされています。サブドメインのドキュメントルートは別のconfファイルで設定されているため(このドキュメントルートディレクティブは私には明らかではありませんでした(私はサーバーのメンテナンスにPleskを使用しています)。これにより、ある種のあいまいさが生じました。サブドメインのドキュメントルートを別の場所に移動すると、エラーメッセージが消えました。

問題は追跡するのが困難でした、なぜなら-私の知る限り-

  • リポジトリがサブドメインの最上位にある場合、つまり上記の構成の<Location />SVNPath /var/www/vhosts/mydomain.com/svnの場合、エラーは表示されません。

  • このエラーは、プロキシを介してリポジトリにアクセスした場合にのみ表示されます。

  • DocumentRootとの競合は、サブドメインであるため、それほど明白ではありませんでした。

要約すると、次のようになります。ソリューション(Pleskを使用する場合):Pleskセットアップ(GUI)のサブドメインの「DocumentRoot」をSVNディレクトリとは異なるものに変更します。 www.mydomain.comの「DocumentRoot」はhttpdocsです。 svn.mydomain.comの "DocumentRoot"は(デフォルトでは)svnでした。私はそれをhttpdocs-svnに変更し、問題はなくなりました。フォルダーhttpdocs-svnは、svn.mydomain.com以下のすべてがDavSVNによって処理されるため、私のセットアップでは使用されません。

13
Christian Fries

このチュートリアルの後に同様のエラーに直面していました: buntu 18.04および16.04 LTSにSVNサーバーをインストールする方法 。後でわかったので、ステップ3で次の行を削除する必要があります

エイリアス/ svn/var/lib/svn

15

使用しているリンクが「表示」リンクではなく「svn」であることを確認してください。

つまり www.myrepo.com/svn/myproject/trunk ||正しい
www.myrepo.com/view/myproject/trunk ||正しくない

うまくいくはずです。

12
bemaldo

私の場合、問題はubuntuの設定ファイルとの間で互換性のない設定があったことです。

私はubuntu 18.04とApache2、そしてubuntuから最新のsvnserverを持っています。リダイレクトの問題を解決するには、2つの異なる構成ファイルからエイリアスを削除する必要がありました:/ etc/Apache2/mods-enabled/dav_svn and- / 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>

修正後、Apacheを再起動する必要があります。

Sudo service Apache2 restart
4
Ivan Revelli

問題は、チェックアウト時に指定したSVN URLにあります。この問題についてさまざまな投稿をチェックしましたが、どれもうまくいきませんでした。以下は私のために働いた非常に簡単な解決策です、

リンク ' http:// localhost:3343/csvn/repo/list 'を使用してcsvnリポジトリーにアクセスし、アクセスするリポジトリーの「チェックアウトコマンド」のURLをコピーする必要があります。

このURLは、チェックアウトのために亀SVNクライアントで使用する必要があります。

0
Mayur