でかいバイナリファイル

とある操作を動画でキャプチャーしたら760Mbyteほどのサイズに。
これどうしよう...と思ったらsvnにあげとけって言われた。
実はsvnを触ったことがないのだがこんなでかいのあげても大丈夫なんかい...

Subversionのすばらしい特徴は, 扱うファイルのサイズに制限がないことです. ファイルはSubversionクライアントとサーバの間で「ストリーム的」に転送さ れます. その際, どちらでも小さな一定量のメモリしか使われません.
もちろん, 実際には考えるべき点が多々あります. キロバイトサイズのファイ ルであれば何ら問題はありません(通常のソースコードファイルであればこの 範囲です)が, より大きなファイル(数十〜数百メガバイトのファイル)をコミッ トする際には時間とスペースがとても必要になります.

まず, Subversionワーキングコピーはバージョン管理されたすべてのファイル の原本を .svn/text-base にもっています. つまり, 単純に2倍のスペース が必要となっているわけです. さらに, Subversionクライアントはファイルを コミットする際, (現在のところ調整できない)アルゴリズムを採用しています:

ファイルを .svn/tmp/ にコピーする(時間がかかる上, 一時的にディスク スペースを要する)
一時ファイルと原本ファイル(新規追加の場合は空ファイル)とのバイナリ diffをとる. (ネットワーク負荷を最小とするための工程だが, 計算にとても 時間がかかる)
サーバに差分を送り, 一時ファイルを .svn/text-base/ に送る
このため, 理論的にはファイルに上限はないけれど, 巨大なファイルはクライ アントが上述のような処理をするのをひたすら待つ必要があるわけです. ただ, CVSと違って, 待ちさえすればよいので, 巨大なファイルのせいでサーバがダ ウンして他のユーザに影響を与えるようなことはありません.

Subversion最短攻略

誰も触ってない時間帯ならぶちこんじまってもいいんかな?
ディスク容量はたんまりあるらしいんだけど...