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 検索をいくつか試しましたが、回避策が見つかりませんでした。