svn checkoutはできるけどsvn commitできない時の対処法

subversionを最初に使ってはまったエラー。checkoutはできるのにcommitしようとした時にエラーが発生。

Transmitting file data .svn: Commit failed (details follow):
svn: Can't open file '/var/svn/repos/db/txn-current-lock': Permission denied

デーモンの立ち上げはrootで行っているので、ファイルもroot所有なら問題ないのにと思っていたら、どうやら内部でファイルの使用者をチェックして書き込み可能なユーザーからのアクセスのみ許可するようになっているようです。

なので、chmodでリポジトリのフォルダのパーミッションを777にすれば一応書けるのですが、全ユーザーが閲覧できてしまうとまずい場合は、プロジェクトに参加している人同士でグループを作成して、パーミッションは775にすればいい。

そして、これで気づいたのですが、subversionsshログインを通して使用すれば、各ユーザー個別にhomeフォルダ下にリポジトリ作ることができると知った。一人でリポジトリを使いたい場合は、別にサーバー管理者にお願いしなくてもリポジトリ機能が使えるのね。ある程度出来上がって他の人と一緒に開発したい場合はその時点でパーミッションを変更すればいい。