2014年11月16日日曜日

Subversion で過去のリビジョンを永久に削除する方法

Subversion は、その特性上、ファイルの追加や削除を問わず、過去のリビジョンをすべて管理する。
したがって、そのリポジトリのサイズは減少することがない。

長い間リポジトリを運用すると、リビジョンの中に今後一切不要なものも生じてくる。
このようなリビジョンは永久に削除したい。

まず、リポジトリに残したいリビジョンをダンプによりバックアップする。
以下の例では、repo リポジトリから、リビジョン5以降をダンプファイルとして取得している。
そののち、該当のリポジトリをいったん削除したのち再度作成し、ダンプファイルをリロードすればよい。
sudo sh -c "svnadmin dump -r 5:HEAD repo > repo.dump"
sudo rm -rf repo
sudo svnadmin create repo
sudo svnadmin load repo < repo.dump
なお、Apache 経由で TortoiseSVN を利用している場合は、再構築したリポジトリディレクトリを apache ユーザ の所有にすることを忘れないように。
また、SELinux を起動している場合は、以下のコマンドを投入する必要がある。
sudo chcon -R -t httpd_sys_content_t (リポジトリへのフルパス)
sudo chcon -R -t httpd_sys_rw_content_t (リポジトリへのフルパス)

0 件のコメント:

コメントを投稿