Apache-2.2

在 svn 切換 - (405 METHOD_NOT_ALLOWED) 或 (500 Internal Server Error) 之後,為什麼?

  • December 27, 2012

我最近(今天!)將我的 SVN 儲存庫移到了我自己的伺服器上。

我無法從我的新儲存庫中籤出,也無法更新我目前的工作副本以使用我的新儲存庫(這是svnsync我舊儲存庫的副本),我使用以下方法完成了此操作:

svn switch --relocate /old/repo/path /new/repo/path

這按預期工作並引發了一個常見的 uuid 錯誤。我首先遇到了一個錯誤svn uuid's dont match,所以我更新uuid了 svn repo 配置中的文件(repo/db/uuid)以反映舊的uuid. 這擺脫了那個錯誤。

下面的一切都是我的問題,我不能對我的新倉庫做任何事情(我想改變我的舊工作副本以使用我的新倉庫(我創建然後 svn 從我的舊倉庫同步到新倉庫)。所以唯一的區別是uuid(我手動更改),修訂版完全相同(沒有添加或刪除)。

接下來,我嘗試檢查我的 repo 的新工作副本:(

首先創建新目錄,然後嘗試檢查新 repo):

SVN結帳錯誤:

# Error after trying to checkout new working copy
# 'svn co http://svn.mydomain.com/repo1 .'
svn: E175002: Server sent unexpected return value (405 METHOD_NOT_ALLOWED) in response to REPORT request for '/newtbg/!svn/me'

**SVN up 錯誤:(**與上面相同的錯誤)

# Error after 'svn up'
svn: E175002: Server sent unexpected return value (405 METHOD_NOT_ALLOWED) in response to REPORT request for '/newtbg/!svn/me'

SVN 送出 -m “送出測試”

# Error after ' svn commit -m "test" '
svn: E175002: Server sent unexpected return value (500 Internal Server Error) in response to POST request for '/newtbg/!svn/me'

看來我可能設置錯了什麼?

您可以在此處查看我的 vhosts 配置設置:vhost setup for multiple SVN repositories on same server

總結…!

我有一個svn sync'd來自舊倉庫的新倉庫。我將工作副本 URL 重新定位到我的新 svn repo url (svn sw oldUrl newUrl),然後我更新了 UUID 以匹配舊 repo 以消除UUID's don't match錯誤。

更新:忘了提,我可以使用 repo URL 通過瀏覽器訪問我的 repo,我會顯示修訂號和 repo 文件,所以它確實有效!(我想)

添加了我的 vhosts.conf:

<VirtualHost *:80>
       ServerName svn.mydomain.com
       ServerAlias svn.mydomain.com
       ErrorLog /var/www/html/log/svn.mydomain.com-log
       <Location "/" >
           DAV svn
           SVNParentPath /ebs/svn/
           SVNListParentPath on
           AuthType Basic
           AuthName "Private - Repositries"
           AuthUserFile /ebs/svn/login/svn-auth-conf
           Require valid-user
      </Location>
</VirtualHost>

好的!

想通了!..問題是我在負載均衡器後面(無論如何我都打算擺脫它)。所以我從負載均衡器中刪除了我的 EC2 實例,一切又開始工作了!..

因此,如果您遇到這些問題,請確保您沒有使用 Amazon 負載均衡器(或找到解決方法)。

一直以為是SVN的問題,原來是伺服器的問題。我的 SVN 設置很好!

在我解決了這個問題後,我不小心送出到了我的舊儲存庫!然後當我嘗試送出到我的新儲存庫時,它不同步。所以我不得不svnsync sync file:///path/to/repo讓這一切再次同步!

總而言之,SVN 的學習曲線很棒(新的 repo、同步、錯誤和最終成功!!),希望這可以節省一些時間!!

現在一切都很好!:D

引用自:https://serverfault.com/questions/461183