[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で、肥大化したレポジトリをダイエットさせる方法
カテゴリ:
Subversion
sysadmin