subversionでcommitのサイズを制限する

へっぽこサーバにsubversion(apahe + mod_svnで)を入れることになったので、ちょっとサイズ制限してみようと思った。当初はファイルサイズで制限できるかなーとか考えてたんだけど、subversion内のトランザクションではデータは圧縮されるし、textだと差分しか送信されないので、ファイルサイズで制限するのは難しそうですかね。

apacheで制限

てっとり早く制限するなら、apacheのLimitRequestBodyで設定してしまえば楽ですね。

subversionで制限

subversion clientへ適切なエラーメッセージを返すことまで考えたら、hookスクリプトのpre-commitに書けばいいのかな。というわけで、ググったら誰かがpython script書いてくれてた。

このpythonでは、ALLOWED_USERSについてはサイズ制限をせず、それ以外のユーザについてはMAX_BYTES以下のトランザクションしか受け付けない。