2009-04-22 66 views
5

我們正在使用在Windows Server 2003上運行的VisualSVN Server來服務我們的源代碼。最近,我們將一個項目的一部分分割成一個新的項目放入其自己的存儲庫中,然後使用svn:externals將其鏈接回原始項目。從那以後,當我們嘗試使用Subclipse提交文件時,我們遇到了問題。如何解決Subversion設置中的「405方法不允許」?

我們得到的錯誤是:

的svn:提交失敗(細節如下):

的svn: '/ SVN' 的PROPFIND:405不允許的方法(https://svn.ourserver.com

谷歌搜索一段時間並沒有真正幫助,我們的配置似乎是正確的。還應該注意的是,我們已經運行這個服務器一段時間了,沒有這些問題,除了將項目拆分成兩個存儲庫之外,沒有對服務器進行任何更改(即配置文件相同)。

還應該注意的是,只有當我們試圖一次檢查多個文件時纔會出現這些錯誤。如果我們一次簽入一個文件,就沒有錯誤。此外,它只出現在Subclipse中,據我們目前所知,Versions.app(OS X)似乎正常工作,所以這是我們目前的解決方法。

如何分析錯誤以找出原因並隨後解決問題?

我絕不是SVN大師,而現在我很無能。


看來我們可以檢查同一個包中的多個文件,但不能檢測多個包中的文件。另外,當我將項目「拆分」爲兩個存儲庫時,我用一個新名稱導入了原始存儲庫。我沒有做轉儲,然後導入該轉儲。這可能是我們問題的根源嗎?如果是的話,我會如何解決?

經過一段時間後,它似乎確實與檢查不同存儲庫中的文件有關。如果我嘗試同時在存儲庫A和存儲庫B(由svn:externals引用)中執行單個提交,則會出現此錯誤。 Versions.app正確地處理了這個問題,但我想它可能只是做兩個提交,而不是一個提交。 Subclipse失敗慘敗。現在,我們只需執行多個提交,一個用於存儲庫A,另一個用於存儲庫B,該提交工作得很好。如果有人比我更聰明,可以填寫這種情況的具體細節,不管這種設置是否愚蠢等,請繼續前進。

+0

不知道這是否是相關的,因爲它與SVN無關,但上週我在IIS上發生了405方法不允許錯誤,解決方案是從Windows刪除WebDav功能。問題在於WebDav在服務之前對Restful PUT命令產生了共鳴。 – 2012-09-08 21:36:05

回答

1

前提:聘請一個好的管理員

問題:VisualSVN服務器使用所有和基於路徑的認證裏面的回購協議的任何部分。默認訪問級別(AFAICR) - 對於根目錄是* = r,並且此設置會繼承到下面的所有節點(存儲庫的根目錄),並且當您嘗試提交到新的存儲庫時問題

解決方案:檢查VisualSVN服務器MMC-applet中新存儲庫的屬性,並檢查權限和用戶。在最簡單的情況下,擁有寫入權限(可以提交)在超級存儲庫(具有外部存儲庫)中的用戶必須具有(如果策略允許的話)子存儲庫中的寫入權限(具有鏈接的存儲庫資源)。