Subversionの続き履歴を残したままリポジトリ間でファイルを移動

普通にエクスポートすると、svnの管理情報が無くなった普通のディレクトリツリーが出来る。
これをインポートすると当然履歴は無くなるわけで・・・

リポジトリを増やしたり統合したりして、整理したいような場合に、これまでの履歴を残したままリポジトリ間でファイルを移動するにはどうしたらいいのか?

svnadmin dump

ありました、svnadminで出来るんですね。

svnadmin dump 元のリポジトリパス > dumpfile

とすると、手元にリポジトリの中身を全部一つにまとめたdumpfileが出来ます。
小さいリポジトリでしか試していないけど、リポジトリが大きくなったら大変そう。。。

type dumpfile | svndumpfilter include 取り出したいディレクトリのパス > sub-dumpfile
unix系ならtypeはcat

取り出したいディレクトリのパスはスペース区切りで並べれば複数指定できる。
例:svndumpfilter include hoge/ foo/ bar/subbar/
※ こうやって指定しても、hogeOLDみたいなディレクトリまで含まれてしまうのはどうにかならないのかな。

svnadmin load 移動先のリポジトリパス < sub-dumpfile

これで移動先のリポジトリに、sub-dumpfileに収められた内容が履歴を残したままインポートできる。
移動先にもともとあるファイルで、異なるファイル名(パス)のファイルはもちろん消えたりしなかったけど、同じファイル名(パス)があったらどうなるかは試してません。
移動先のリポジトリパスは、URLでは指定できません。
ローカルで実行してください。