2
如果我從svn存儲庫中檢查目錄,並且存儲庫中的路徑包含括號,我嘗試檢查工作目錄時收到svn'Commit failed'消息。包含圓括號的路徑中的故障檢查
我知道在路徑名中使用圓括號不是很好的做法;我只是想清理別人的混亂。
這裏的簽出這樣一個信息庫的一個例子:
$ svn co http://cvs.xyzzy.com/svn/ie/Userhome/bchittenden/Test%20%28With%20Stupid%20Parentheses%29/
A Test (With Stupid Parentheses)/foo
A Test (With Stupid Parentheses)/bar
A Test (With Stupid Parentheses)/baz
Checked out revision 61793.
當我嘗試提交,我得到以下信息:
$ svn ci
Adding branches
Adding tags
Adding trunk
svn: Commit failed (details follow):
svn: A MERGE response for '/svn/ie/Userhome/bchittenden/Test%20(With%20Stupid%20Parentheses)/tags' is not a child of the destination ('/svn/ie/Userhome/bchittenden/Test%20%28With%20Stupid%20Parentheses%29')
svn: Your commit message was left in a temporary file:
svn: '/tmp/Test (With Stupid Parentheses)/svn-commit.tmp'
注意,改變做得到住進存儲庫,我可以檢查一個新版本的存儲庫並在那裏工作,但當我嘗試檢查時,我會得到相同的消息。
如果我正確地解釋了這一點,當SVN服務器嘗試驗證提交文件的名稱時,它不正確地對路徑名中的'('和')'字符進行URL編碼。我在錯誤消息is not a child of the destination
上嘗試了幾次Google搜索,但找不到解決方法。
聽起來好像是我的錯誤。只是爲了確保:您* *安裝了最新版本? – cxxl
svnserv是古老的(這是2009年編譯)。我不擁有它,但是我找到了解決辦法;請參閱下面的答案。 –