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年编译)。我不拥有它,但是我找到了解决办法;请参阅下面的答案。 –