[Subversion]日本語ファイル名をコミットするとエラー

subversion_commit_error日本語を含む名前のファイルを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/Repositories

   SVNAdvertiseV2Protocol 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 >