[Subversion]日本語ファイル名をコミットするとエラー
日本語を含む名前のファイルをTortoiseSVNでコミットしようとするとエラーになったときの覚書。
環境: Amazon Linux AMI release 2013.09, Subversion Server 1.7.13, TortoiseSVN 1.8.2
SubversionはYUM経由でインストール。
それまでは日本語でもコミット出来ていた。たぶんサーバー側でyum updateしてSubversionのバージョンが上がったからだと思う。
TortoiseSVNのエラー
Command: Commit
Modified: C:\Users\daiki\Documents\Projects\hoge\Documents\99.Etc\アンケート.xls
Sending content: C:\Users\daiki\Documents\Projects\hoge\Documents\99.Etc\アンケート.xls
Error: Commit failed (details follow):
Error: File
Error: 'C:\Users\daiki\Documents\Projects\hoge\Documents\99.Etc\アンケート.xls'
Error: is out of date
Error: File not found: transaction '668-jc', path
Error: '/trunk/documents/99.Etc/%A2%E3%83%B3%E3%82%B1%E3%83%BC%E3%83%88.xls'
Error: You have to update your working copy first.
Completed!:
サーバー側のエラーログ
# tail -f /var/log/httpd/error_log
[Wed Oct 23 08:24:04 2013] [error] [client 61.205.209.20] Could not fetch resource information. [404, #0]
[Wed Oct 23 08:24:04 2013] [error] [client 61.205.209.20] Could not get created rev of resource [404, #160013]
[Wed Oct 23 08:24:04 2013] [error] [client 61.205.209.20] File not found: transaction '673-jt', path '/trunk/documents/99.Etc/%A2%E3%83%B3%E3%82%B1%E3%83%BC%E3%83%88.xls' [404, #160013]
もちろんアップデートやクリーンアップしても変わらず。
サーバーの設定を見なおして、なぜかSVNAdvertiseV2ProtocolをOnにしたら直った。
# less /etc/httpd/conf.d/subversion.conf
<Location /repos>
DAV svn
SVNParentPath /home/svn/RepositoriesSVNAdvertiseV2Protocol On
RewriteEngine off
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /home/svn/.htpasswd# Limit write permission to list of valid users.
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
< 2014/02/21 Modified >
Subversionを1.7.14にアップデートしたら今度は(日本語とか関係なく)コミット出来なくなった。
Error: Commit failed (details follow):
Error: POST of '/repos/hoge/!svn/me': 404 (http://hoge.net)
なぜか「SVNAdvertiseV2Protocol Off」にしたら直った。
何なんだ。
< Related Posts >