hogepiyoエンジニアリング

トラブルシューティングからノウハウ、作ってみた系まで扱う情報系ブログ

svnでコミット時にinternal Server Errorがでるときの対処

個人用のsvnをたててみようとしたらコミット時にinternal Server Errorが出て困った
一応解決したので、そのときの対処法をメモ

まずエラーが出るまでの道順が以下

リポジトリを作成してから

$ sudo svnadmin create /var/svn/repository

適当なディレクトリにチェックアウトする

$ svn checkout http://sample.com/svn/repository/ repository

次に適当にディレクトリを追加してコミットするとエラーがでる

$ cd repository/
$ svn mkdir testdir
$ svn -m "test commit" commit
svn: E175002: Commit failed (details follow):
svn: E175002: Server sent unexpected return value (500 Internal Server Error) in response to POST request for '/svn/repository/!svn/me


以下解決法

まず、原因はパーミッション

svnのコミットはapache経由で行ってるっぽい

svnの設定でweb-davを使うようにしてるからだと思うが

なので、svnリポジトリの所有者をapacheの実行ユーザにする必要がある

今回の場合は、リポジトリにしているのが /var/svn/repository なので

/var/svn/repositoryの所有者をapacheの実行ユーザ(www-data)に変えて

$ sudo chown -R www-data:www-data /var/svn/repository/

再びコミットに挑戦してみるとコミットできる

$ svn -m "test commit" commit
Adding         testdir

Committed revision 1.

めでたしめでたし