ハマったのでメモ。
実行権限
post-commitを実行するユーザーが誰か
post-commitの中に下記を書いて確認
whoami > /tmp/postcommit.log
2バイト文字のファイルがないか
svn up /foo/bar
を実行したいとして、/foo/bar配下に2バイト文字のファイルがあると、post-commit経由の時に失敗します。
コマンドラインで実行したときには、問題ないのに、post-commit経由の時だけ失敗するから厄介でした。
post-commitの時だけに失敗するのは、LANGの設定の問題らしいです。
post-commitにLANGの設定をいれれば2バイトのファイルがあっても問題なくなるらしいですが、未検証です。
このケースの場合、今まで動いてたのに急に動かなくなることがあります。
不具合発生時刻の前後までさかのぼって、その間に作成されたファイルの中に2バイト文字のファイルがないか確認します。
警告: post-commitフックが失敗しました (終了コード: 1)。出力: svn: Error converting entry in directory '/foo/bar' to UTF-8 svn: Can't convert string from native encoding to 'UTF-8':