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.」カテゴリの記事
- Kanboard(2017.06.13)
- XML parsing failed : (413 Request Entity Too Large)(2017.06.11)
- TortoiseSVNとクライアント証明書(2012.09.17)
- Trac 1.1.1(dev)(2012.09.15)
- Trac1.0 リリース(2012.09.09)
The comments to this entry are closed.
Comments