PR

SVN の分割ダンプとリストア

1. はじめに

SVN リポジトリをダンプしてバックアップを取ろうとしたところ空き容量が足らず・・・、
リポジトリを分割してダンプする方法とリストアする方法を調べました。

2. 分割ダンプ

# 最新リビジョン番号の確認
svnlook youngest /path/to/repo

最新のリビジョン番号がわかったら、以下のコマンドで分割ダンプを行います。

# リビジョン番号を指定してダンプ
svnadmin dump -r 0:1000 /path/to/repo > repo1.dump
svnadmin dump -r 1001:2000 --incremental /path/to/repo > repo2.dump
svnadmin dump -r 2001:HEAD --incremental /path/to/repo > repo3.dump

HEAD はコマンドを実行した時点での最新リビジョン番号を指します。
--incremental を使用すると、各ダンプファイルは指定した範囲での差分のみを記録します。

3. リストア

リストアは以下のコマンドで行います。

# リポジトリの作成
svnadmin create /path/to/repo

# リストア
svnadmin load /path/to/newrepo < repo1.dump
svnadmin load /path/to/newrepo < repo2.dump
svnadmin load /path/to/newrepo < repo3.dump

svnadmin load で同じリポジトリに複数回リストアすることで、分割したリポジトリを復元することができます。

4. 確認

リストア後のリポジトリの最新リビジョン番号が元のリポジトリの最新リビジョン番号と一致していることを確認します。

svnlook youngest /path/to/newrepo

5. まとめ

SVN リポジトリを分割してダンプする方法とリストアする方法を説明しました。
リポジトリのサイズが大きい場合、分割ダンプを行うことでバックアップを取りやすくなります。

今回の記事も、Github Copilot が7割くらい書いてくれました。

A. 参考サイト

SVNコマンド一覧
SVN引っ越し

B. 参考書籍

コメント