2013-08-27 111 views
8

試圖從我的SVN回購籤給了我「svn:E195019:URL檢測到重定向週期」的原因是什麼?

 
    svn: E195019: Redirect cycle detected for URL ... 

然而,看起來好像只有當我背後的一些(具體的)代理服務器會出現此錯誤。

正如其他文章(請參閱tortoise svn giving me "Redirect cycle detected for URL 'domain/svn'")中所述,如果SVN DAV配置錯誤(例如,使用SVNParentPath,其中應使用SVNPath),則會發生此錯誤。但是,我的配置似乎是正確的 - 據我所知 - 問題只出現在代理後面。

庫的設置是或多或少的標準,例如,

 
    ServerAlias svn.mydomain.com 
    <Location /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 
     # Allow read-only access to anyone, otherwise require 
     # require authentication 
      Require valid-user 
    </Location> 

回答

12

(我給出的答案,我自己的問題,採用半的週末之後尋找解決方案):

看起來好像這個錯誤信息與subversion版本庫位於目錄svn/myrepo中的事實有關,其中目錄svn也被列爲子域svn.mydomain.com的DocumentRoot。那個DocumentRoot指令對我來說不是很明顯,因爲子域的文檔根目錄在一個不同的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處理。

+0

我收到此錯誤消息,但它不是解決方案。我有vanilla subversion和libapache2-svn的vanilla Apache2,所有已安裝並運行的版本,我都使用了SVNParentPath,並在/ var/lib/svn中創建了兩個版本,我可以在瀏覽器中瀏覽它們(目前爲空,但它工作正常) 。但是,如果我嘗試從命令行導入或結帳到相同的URI http:// localhost/svn/foo,我得到了有關重定向週期的錯誤。在/ etc/apache2下的任何文件的任何地方肯定沒有Redirect指令,所以它來自哪裏?請記住,這是默認安裝,因此不需要手動編輯。 –

+0

很久以前我有這個問題,但據我所知你不需要明確的重定向,如果SVN根目錄和網頁(apache)根目錄相同,它可以在默認安裝中發生。 - 但是:我不知道是否有其他配置會導致相同的錯誤消息。 –

+0

事實證明,它不是重定向,而是別名。由於某些深不可測的原因,由libapache2-svn(我認爲)安裝的默認dav_svn.conf被破壞,因爲它包含一個僞造的Alias/svn/var/lib/svn,您需要將其註釋掉。然後一切正常。爲什麼這是運送破碎我不能說。 –

0

問題在於您在退房時提供的SVN URL。我檢查了這個問題的各種帖子,但沒有人爲我工作。下面是非常簡單的解決方案,爲我工作,

您使用鏈接「http://localhost:3343/csvn/repo/list 」複製「結帳命令」的網址您要訪問的資源庫需要你csvn庫。

您需要在烏龜SVN客戶端使用此URL進行結帳。

5

確保您使用的鏈接是'svn'而不是'view'鏈接。

www.myrepo.com/svn/myproject/trunk ||正確
www.myrepo.com/view/myproject/trunk ||不正確

這應該工作。

+0

我認爲這已被不公正地降級。在嘗試結帳viewvc網絡查看網址時,我收到了完全相同的錯誤消息。示例http://svn.apache.org/viewvc/ant/sandbox/或http://svn.apache.org/viewvc/axis/axis1/java/trunk – thoredge

+0

這正好解決了我的問題 – SK176H

相關問題