Subversion リポジトリの結合

Subversion

結合でもMergeでも統合でも何でも良いんだけど。

プロジェクトによってリポジトリを使い分けてたけど、思い切ってひとつにまとめてみた。チームなら複数リポジトリもアリなんだろうけど、個人で使うならひとつで問題になる事は無さそう。逆に「このプロジェクトはどこのリポジトリだっけ?」ってな事態に陥るので「個人利用なら単一リポジトリ」を推奨しますよ?

そんなわけでGoogleさんにお伺いを立てつつコマンドの調査。世の中的にはLinuxでリポジトリを立てているようでWindowsの情報が見当たらなかったけど、やる事的には一緒だった。

事前にTortoiseSVNを使って、統合先のリポジトリにfugeフォルダ作っておいてね。で、Windows+Rで"cmd"開いて、こんな感じでコマンド入力。

> svnadmin dump D:\repos\srcProj > hoge.proj
> svnadmin load D:\repos\dstProj --parent-dir fuge < hoge.proj

元のリポジトリ「D:\repos\srcProj」からdumpで「hoge.proj」を抜き出して、統合先の「D:\repos\dstProj」にloadするだけ。

注意点が1つあって、ただの load だとリポジトリトップに展開されちゃうのよ。なので事前にload用のfugeフォルダを作っておいて、parent-dirオプションでfugeフォルダを指定してやる。こうするとfuge配下にsrcProjの内容が読み込まれるのよ。

今回は既存のリポジトリに統合したけど、複数リポジトリを新規リポジトリにまとめるんでも、やることはいっしょ。元のデータをdumpして、新しいところにloadしてやる。load位置はparent-dirで調整。簡単でしょ?