Subversionの不要な履歴を削除して容量を削減

年末にやっているバックアップ作業。
Subversionの全体容量が大きくなってきたので、不要な履歴 (リビジョン)を削除してバックアップ容量を削減しようとしているときの覚書。

環境: CentOS Stream 8, Subversion 1.14.1

どのリポジトリが容量を食っているか調べる。
# cd /home/svn/repo/
# du -hx --max-depth=1

容量の大きいリポジトリに移動して、容量が大きい順に並び替えて先頭10件だけ表示。
# cd project
# du -hxa --max-depth=4 ./db/revs/ | sort -hr | head -n 10

TortoiseSVNでどのリビジョンのコミットか調べる。
除外するパスを指定してdumpファイル生成。
(TortoiseSVNのPath部分をCtrl-Cでコピーできる)
# cd /home/svn/repo/
# svnadmin dump project/ | svndumpfilter exclude /trunk/90.Maintenance/Backup > project_20231225.dump

リポジトリを作り直してdumpファイルをインポート。
# mv project project.bak
# svnadmin create project
# svnadmin load project< project_20231225.dump
# chown apache. -R project

使用容量確認。
# du -hx --max-depth=1

Apacheを再起動。
# systemctl restart httpd

TortoiseSVNでcleanupしてupdateする。

大丈夫そうなのでdumpとバックアップを削除する。
# rm -rf project.bak/ project_20231225.dump


全リポジトリをアーカイブしてバックアップする。
# cd ../
# tar czvf repo_server02_20231225.tgz repo/

ダウンロードして外部ストレージとGoogle Cloud Storageに保存しておく。
68GBをダウンロードするのに2時間ぐらい掛かった。

Google Cloud StorageのArchive Storageなら100GB保存しても月額30円ぐらい。
参考: 料金  |  Cloud Storage  |  Google Cloud



【関連記事】