« Apache&Tomcatで連携時のRemoteIPアドレス | Main | 起動後に外部Jarファイル内のクラスを利用 »

2007.06.07

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に指定すればいいわけですが)

|

« Apache&Tomcatで連携時のRemoteIPアドレス | Main | 起動後に外部Jarファイル内のクラスを利用 »

Subversion・Trac・etc.」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference svndumpfilter:

» Sunbversionで無かったことにする [firegoby]
このサイト上で公開しているTracにテストでPHPのマニュアルをコミットしたら、ファイル数がとても多くて(9千件以上!!)、タイムラインやリポジトリブラウザの表示の際に異常にCPU負... [Read More]

Tracked on 2009.07.28 06:04

« Apache&Tomcatで連携時のRemoteIPアドレス | Main | 起動後に外部Jarファイル内のクラスを利用 »