Subversion リポジトリにある1ディレクトリ以下について別プロジェクトで派生して使いたいのでコピーすることにしたのだが、履歴を維持してコピーするのは結構手間だった。
repos1 上の trunk/dir1/dir2 以下を、新しく作った repos2 (svnadmin create 済み)の trunk/dir2 としてコピーする:
svnadmin dump /path/to/repos1 > dump cat dump | svndumpfilter include trunk/dir1/dir2 | perl -pe 's|^Node-path: trunk/dir1/dir2|Node-path: trunk/dir2|' > dump.new svnadmin load /path/to/repos2 < dump.new
一応1回やってみたけれど、考えてみると今回は履歴維持する必要性もないので結局一旦 repos2 を破棄して必要なもののみ作業ディレクトリ上で追加してコミットしなおした。
サーバ上で作業しなければならないし、まあ今後やる機会はほとんどなさそう。
[ Subversion ]
Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。
nDiki は1999年1月に始めたコンピュータ日誌を前身とする Naney の Web 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。
※内容は個人的見解であり所属組織とは関係ありません。