我使用Apache(和mod_dav_svn)通過https訪問服務器上的SVN存儲庫。檢出存儲庫並添加,刪除或編輯文件完美無瑕,但當我重命名或複製文件時,服務器在提交時返回400錯誤請求。svn COPY results in 400 Bad Request
Apache配置:
<VirtualHost *:443>
ServerName ***
SSLEngine on
SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem
SSLCertificateFile /etc/ssl/certs/***.crt
SSLCertificateKeyFile /etc/ssl/private/***.key
<Location />
DAV svn
SVNParentPath /var/local/svn
SVNListParentPath on
Order deny,allow
Allow from all
</Location>
<LocationMatch /.+>
AuthzSVNAccessFile /var/local/conf/access.authz
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /var/local/conf/.htpasswd
require valid-user
</LocationMatch>
</VirtualHost>
精確錯誤消息:
svn: E175002: Commit failed (details follow):
svn: E175002: COPY of /***/!svn/bc/94/***: 400 Bad Request (https://***)
SVN服務器:
$ svnadmin --version
svnadmin, version 1.6.17 (r1128011)
SVN客戶端通過我的IDE使用(IntelliJ IDEA的11):
Version: 1.7
Format: 29
很遺憾,我在apache錯誤日誌中找不到任何關於該問題的提示。 有什麼可以解決這個問題的建議?
編輯: 我注意到,當改變配置來
<LocationMatch /.+>
DAV svn
AuthzSVNAccessFile /var/local/conf/access.authz
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /var/local/conf/.htpasswd
require valid-user
</LocationMatch>
修復問題,並允許我使用SVN拷貝,但是當我現在嘗試更新我的本地工作目錄,我得到這個錯誤:
svn: E190001: Unusable URI: it does not refer to this repository
svn: E175002: REPORT of '/.+/***/!svn/vcc/default': 500 Internal Server Error (***)
錯誤在Apache的錯誤日誌:
[Thu Jan 23 18:00:18 2014] [error] [client 94.222.125.77] Could not parse 'src-path' URL. [500, #190001]
[Thu Jan 23 18:00:18 2014] [error] [client 94.222.125.77] Unusable URI: it does not refer to this repository [500, #190001]
在客戶端和服務器上哪個版本的顛覆? –
$ svnadmin的--version svnadmin的,版本1.6.17(r1128011) 工作在我的筆記本電腦複製是格式29(更高的格式不被我的IDE(IntelliJ IDEA的11),但支持) – Dero
你真的不應該正在使用LocationMatch。只是把所有東西在 –