svnadmin dump — ファイルシステムの内容を標準出力にダンプします。
ファイルシステムの内容を、「ダンプファイル」 可搬形式で標準出力にダンプし、進行状況を標準エラー出力に表示します。リビジョン LOWER
から、リビジョン UPPER
までをダンプします。リビジョンを指定しなければ、すべてのリビジョンツリーをダンプします。LOWER
だけ指定した場合、一つのリビジョンツリーをダンプします。実際の使い方については、リポジトリデータを別の場所へ移動項 をご覧ください。
デフォルトでは、Subversionの ダンプファイルストリームは、 ツリー全体を一度に追加したかのように、単一リビジョン (要求したリビジョン範囲の先頭リビジョン) のリポジトリにある全ファイル・ディレクトリを含みます。続いて、その他のリビジョン (要求した範囲の残りのリビジョン) で変更されたファイル・ディレクトリのみを含みます。ダンプファイルには、変更があるファイルでは、完全なフルテキストとすべての属性を含みます。ディレクトリでは、すべての属性を含みます。
ダンプファイルジェネレータの動作を変更する、二つの有用なオプションがあります。一つ目は --incremental
オプションです。これは、そのリビジョンが表す新しいツリーではなく、そのリビジョンで変更されたファイルやディレクトリのみを含む、ダンプファイルストリームとなります。ダンプファイル内にある、その他すべてのリビジョンについても、まったく同じです。これは、ダンプ元のリポジトリに存在しているファイルとディレクトリを、すでに含んでいる別のリポジトリにロードするための、ダンプファイルを生成する場合に便利です。
二つ目の便利なオプションは --deltas
です。このオプションは、ファイルの内容と属性についての完全なテキスト表現を出力するのではなく、それぞれのリビジョンの直前のリビジョンとの差分だけを出力するよう svnadmin dump に指示します。これは svnadmin dump が生成する ダンプファイルのサイズを (場合によっては劇的に) 減らします。しかし、このオプションを使う場合、欠点 — dumpfile の差分化には、作成する際の CPU 負荷増大、svndumpfilter での操作不能、gzip や bzip2 といったサードパーティツールを使う際に差分化していないものほど圧縮率が高くないといったこと、もあります。
リポジトリ全体のダンプします。
$ svnadmin dump /usr/local/svn/repos SVN-fs-dump-format-version: 1 Revision-number: 0 * リビジョン 0 をダンプしました。 Prop-content-length: 56 Content-length: 56 …
リポジトリから、1 トランザクションの差分ダンプを行います。
$ svnadmin dump /usr/local/svn/repos -r 21 --incremental * リビジョン 21 をダンプしました。 SVN-fs-dump-format-version: 1 Revision-number: 21 Prop-content-length: 101 Content-length: 101 …