タツノオトシゴのブログ

主にJavaに関するものです。

Subversionのログ編集設定時にエラーコード255が出るときの対処

Subversionのコミット済みのログを編集する場合、「hooks/pre-revprop-change」ファイルを用意すればよいが、その際にはまったことをメモ。

環境

  • 自宅で独自に構築していたSubversionリポジトリサーバ(Linux環境で構築)
  • チェックアウト時は、ApacheWebDav経由で利用している。
  • リポジトリの配置領域は、Sambaで共有フォルダとしてWindowsからも閲覧できるよう公開。
    • ファイルの権限は、WebDavで更新することを考慮して、apacheユーザで指定。
  • リポジトリを作成する場合は、Sambaで公開している共有フォルダに、TortoiseSVNのメニューからWindowsから直接作成している。
  • コミットやチェックアウトなど、通常の操作は普通にできている。

状況

下記のようにして、「pre-revprop-change」ファイルを作成。

 # Subversionのリポジトリへの移動
 cd <リポジトリパス>
 
 #pre-revprop-changeのコピーと権限設定
 cp hooks/pre-revprop-change.tmpl hooks/pre-revprop-change
 chown apache:apache hooks/pre-revprop-change
 chmod a+x hooks/pre-revprop-change

ログの再編集(コミットプロパティの変更)を行った際に、エラーコード「255」が出力される。

結果&対策

すごい単純なことでした。


【対策】
ShellScript「pre-revprop-change」の改行コードが、Windows形式の「CR+LF」になっていたので、「LF」に変更した。

Linuxなので、shellの改行コードは、LFにすべき。


【原因】
Windowsからリポジトリを作成すると、「hooks/pre-revprop-change.tmpl」ファイルの改行コードが「CR+LF」になるようです。


【正しい手順(ファイルのコピーの代わりにNKFを使用)】

 # Subversionのリポジトリへの移動
 cd <リポジトリパス>
 
 #pre-revprop-changeのコピーと権限設定
 nkf -w -Lu hooks/pre-revprop-change.tmpl > hooks/pre-revprop-change
 chown apache:apache hooks/pre-revprop-change
 chmod a+x hooks/pre-revprop-change