svndumpfilter
Subversionリポジトリをダンプする際、特定のパスのみを抽出したり、逆に特定のパスのみを除外するためのツールとして、svndumpfilterってのがあります。詳細はリポジトリの保守(多分原文)にまとめられています。
あるフォルダを除外する場合は、
svnadmin dump Hoge | svndumpfilter exclude /fuga > Hoge_ExcludeFuga.dat
逆にあるフォルダのみを抽出する場合は、
svnadmin dump Hoge | svndumpfilter include /fuga > Hoge_IncludeFuga.dat
って感じで実行することとなります。
複数のパスをまとめて処理する場合は
svndumpfilter exclude /fuga /foo /bar
のような感じで複数指定することも可能。既にDump済みのファイルを処理する場合、Windowsでは
type Hoge.dat | svndumpfilter
って感じでtypeコマンドとパイプで連結すればOK。
指定したパスは基本的に"Prefix"として扱われるため、指定した文字列で始まるパスが処理対象となるようです(なので、/fugaと指定した場合、/fuga2とか/fuga3とかも処理対象となります)。
オプションとして、--drop-empty-revs、--renumber-revs、--preserve-revpropsの3つがありますが、多くの場合は--drop-empty-revsと--renumber-revsを指定して扱うことになるのではないかと思います(--renumber-revsを指定せずに--drop-empty-revsだけを指定する(→リビジョンが飛んだ状態のダンプファイルができあがる)とどんな動きになるんでしょ?)。
なお、「コピーされたパスは問題を起こすかも知れません。」と記載されていますが、例えば、
/hoge/hogehoge.txtファイルを/fuga/hogehoge.txtに移動した
リポジトリにおいて、/hogeをexclude指定した場合、エラーが発生してしまいます。なので、こういう状態のリポジトリにおいては、/hogeを「存在しなかった」ことにするのは無理?(もちろん、hogehoge.txtが不要なのであれば、これもexcludeに指定すればいいわけですが)
「Subversion・Trac・etc.」カテゴリの記事
- TortoiseSVNで特定のフォルダーを取得しない(2011.10.31)
- TortoiseSVN 1.7 And Windows7 Library(2011.10.19)
- Trac>DiscussionPluginへのメールアドレスの登録(2011.07.13)
- Could not execute PROPPATCH.(2011.07.02)
- TortoiseSVNとSSLクライアント証明書(パスワードが保存されない)(2011.06.28)


















![アスキー: UNIX MAGAZINE (ユニックス マガジン) 2008年 01月号 [雑誌]](http://ecx.images-amazon.com/images/I/11Z7w19zJ3L.jpg)













Comments