技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

mercurial にコミット出来ないサイズ

久々にハマったのでメモを残す。

413: Request Entity Too Large

のエラーで突然pushできんようなった。
サーバ構成は Apache2.2 + Mercurial(hgwebdir.cgi) 過去設定偏で、1M 以上のファイルをコミットしようとしたら発生した。

で、原因さがすの手間取った。
まずはリクエストサイズが大きいというので、コミットしようとしている個々のファイルサイズを眺めて、Max 1.1Mなのを確認。
httpd.conf に

LimitXMLRequestBody 6000000

書くも失敗。

クライアントのキャッシュ?とも思ったけど、Totoise hg ではそれも関係ないはず。

easy_install -U mercurial

かけて、1.9 にバージョン上げても改善せず。
で、エラーログ眺めたら(本来最初にやるべきタスク)、

[Wed Jul 06 00:11:29 2011] [error] [client xxx.xxx.xxx.xxx] Requested content-length of 6243131 is larger than the configured limit of 4194304

orz

単に値が足りなかっただけかYO。

LimitXMLRequestBody 10000000

設定したら動いたワーイ。
つまり mercurial は個々に送信するんじゃなくて、一括一発pushなのねん。