[Subversion]レポジトリ内で容量をくってるリビジョンを突き止める方法

どのリビジョンの容量が大きいのかを調べる

レポジトリ内のdbディレクトリを直接調べたらできました。
こんなコマンドです。
$ du /path/to/myrepo/db/revs/*/*  | sort -nr | head -n 10
2774140 /path/to/myrepo/db/revs/0/529
979560  /path/to/myrepo/db/revs/12/12171
122600  /path/to/myrepo/db/revs/8/8236
109608  /path/to/myrepo/db/revs/0/554
104784  /path/to/myrepo/db/revs/10/10849
76400   /path/to/myrepo/db/revs/7/7936
リビジョン529のコミットが、1コミットで2GBも食っていることがわかります。:(

誰だ、こんな巨大なファイルをコミットした奴わ!?
ログを見てみたら、自分のコミットでした orz

これのパス名を調べて、
svndumpfilter exclude /trunk/images/foo  < old.dump  > new.dump
としたら、見事この2GB分を削除できました!

他にも余分なファイル・ディレクトリを除去したら、レポジトリのトータルサイズが半分に減りました。
やはりレポジトリはときどき掃除するのが大事ですね!

ちなみにGitだとどうやるんでしょうね。

参考

[Subversion]svndumpfilterで、肥大化したレポジトリをダイエットさせる方法
カテゴリ: