svnadmin dump — ファイルシステムの内容を標準出力にダンプします。
ファイルシステムの内容を「dumpfile」可搬可能形式でダンプし、進行状況 を標準出力に表示します。 リビジョン LOWER から、 UPPERまでをダンプします。リビジョンが指定 されなければすべてのリビジョンツリーをダンプします。 LOWERだけが 指定された場合は一つのリビジョンツリーのみダンプします。 実際の使い方についてはリポジトリの移行の項 を見てください。
デフォルトでは、Subversion ダンプファイルの内容は 以下のようになります。まず要求されたリビジョン範囲の最初のリビジョン の内容が出力されます。ここにはそのリビジョンに含まれるすべてのファイルと ディレクトリが、すべて一度にリポジトリに追加されたかのような形式に なります。その後に、(要求されたリビジョン範囲内の)引き続くすべての リビジョンの内容が続きます。ここにはそれぞれのリビジョンで修正された ファイルとディレクトリの情報だけが含まれます。修正されたものがファイルの 場合には、そのファイルの完全な内容と、属性が出力されます。 ディレクトリの場合には、そのすべての属性が出力されます。
ダンプファイル生成する際に有用な二つのオプションがあります。 一つ目は --incremental オプションで、これを指定すると ダンプファイル出力中の最初のリビジョンが、そのリビジョンを示す新しいツリー 全体ではなく、そのリビジョンで修正のあったファイルとディレクトリのみに なります。それ以降のリビジョンについてもまったく同様です。これは ダンプ元のリポジトリに存在しているファイルとディレクトリをすでに含んで いる別のリポジトリにロードするためのダンプファイルを生成する場合に便利です。
もう一つの有用なオプションは --deltas です。 このスイッチは、ファイルの内容と属性についての完全なテキスト表現を出力 するかわりに、それぞれのリビジョンの直前のリビジョンとの差分だけを 出力するよう svnadmin dump に指示します。これは svnadmin dump が生成するダンプファイルのサイズを (場合によっては劇的に)減らします。欠点としてはこのオプション—差分化 ダンプファイルの指示—は生成にあたって CPU により大きな負荷が かかること、svndumpfilter によって処理できなくなって しまうこと、そして、サードパーティー製のgzip や bzip2 を使う場合には、差分化しないものに対するほど圧縮されない傾向があること、 があります。
リポジトリ全体のダンプ:
$ svnadmin dump /usr/local/svn/repos SVN-fs-dump-format-version: 1 Revision-number: 0 * Dumped revision 0. Prop-content-length: 56 Content-length: 56 …
リポジトリの一つのトランザクションの 差分ダンプ:
$ svnadmin dump /usr/local/svn/repos -r 21 --incremental * Dumped revision 21. SVN-fs-dump-format-version: 1 Revision-number: 21 Prop-content-length: 101 Content-length: 101 …