15

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

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

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

他の投稿で説明したように ( tortoise svn で「URL 'domain/svn' に対して検出されたリダイレクト サイクルが検出されました」を参照)、このエラーは、SVN DAV が誤って構成されている場合に発生します。ただし、私の構成は正しいようで、私の知る限り、問題はプロキシの背後にある場合にのみ発生します。

リポジトリのセットアップは多かれ少なかれ標準です。

    ServerAlias svn.mydomain.com
    <場所/myrepo>
        DAV SVN
        SVNPath /var/www/vhosts/mydomain.com/svn/myrepo
        AuthType 基本
        AuthName "mydomain svn"
        AuthUserFile /var/www/vhosts/svn.mydomain.com/conf/htpasswd-myproject
        # 誰にでも読み取り専用アクセスを許可、それ以外の場合は必須
        # 認証が必要
            有効なユーザーが必要
    </場所>
4

5 に答える 5

14

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

このエラー メッセージは、subversion リポジトリがサブドメインの DocumentRoot としてもリストされているsvn/myrepoディレクトリにあるという事実に関連しているように見えます。サブドメインのドキュメント ルートが別の conf ファイルで構成されていたため、その DocumentRoot ディレクティブは私にはわかりませんでした (私は Plesk を使用してサーバーを維持しています)。これにより、ある種の曖昧さが生じました。サブドメインのドキュメント ルートを別の場所に移動すると、エラー メッセージが表示されなくなりました。svnsvn.mydomain.com

私が知る限り、問題を突き止めるのは困難でした。

  • リポジトリがサブドメインの最上位にある場合、つまり上記の構成の場合、エラーは表示されませ<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-svnsvn.mydomain.com の下のすべてが DavSVN によって処理されるため、フォルダーは私のセットアップでは使用されません。

于 2013-08-27T20:29:50.037 に答える
5

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

ubuntu 18.04 と Apache2 と ubuntu の最新の svnserver があり、リダイレクトの問題を解決するために、2 つの異なる構成ファイルから Alias を削除する必要がありました: /etc/apache2/mods-enabled/dav_svn/etc/apache2/site-enabled/デフォルト-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
于 2018-07-20T10:40:21.673 に答える
0

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

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

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

于 2015-08-11T12:45:50.390 に答える