たきるブログ

C#やOracleなどの情報を書いています。

【SVN】リポジトリの統合方法

いっつも忘れるので備忘録を。

-- 旧リポジトリからすべてダンプエクスポート
svnadmin dump D:\oldrepos > D:\oldrepos.dump

-- newreposにnewdirディレクトリを作成。

-- 新リポジトリのnewdirディレクトリ配下にダンプをインポート
svnadmin load D:\newrepos --parent-dir newdir < D:\oldpres.dump

oldpres
 ├ branches
 ├ tags
 └trunk

だった時、

newrepos
 └ newdir
   ├ branches
   ├ tags
   └ trunk

になる。
例えば、ユーザーのプロジェクト単位にリポジトリが存在していて、それを統合し、ユーザー単位にリポジトリをしたい時、有効だと思う。

リポジトリから特定のディレクトリのみ、新リポジトリに統合させたい場合は以下のようにする。

-- 旧リポジトリからtrunkのみダンプエクスポート
svnadmin dump D:\oldrepos | svndumpfilter include /trunk > D:\oldrepos.dump

-- newreposにnewdirディレクトリを作成。

svnadmin load D:\newrepos --parent-dir newdir < D:\oldrepos.dump

svndumfilter include は、半角スペースで区切ることで複数ディレクトリを同時に指定可能。