SVNリポジトリ上に存在する複数のブランチやtrunkの間で、 変更点をマージしたりする方法のメモです。

まず、これからSVNリポジトリをgit svn cloneすると言う場合は、以下のような オプションを指定して実行します。

1 git-svn clone http://svn .repos.com /foo -T trunk -b branches -t tags

これで、SVNリポジトリ上のtrunk, branches, tagsをGitのbranchとして全て取り込んだ状態でcloneが実行されます。

git-svnでcloneした既存のWorking copyが手元にあって、 そこに別なbranchやtrunkを追加したい場合は、以下のように.git/confi g ファイルに項目を加えます。

1 [svn-remote "svn"] 2 url = http://svn .repos.com /foo/branc hes/bar 3 fetch = :refs/remo tes/git-sv n 4 [svn-remote "trunk"] 5 url = http://svn .repos.com /foo/trunk 6 fetch = :refs/remo tes/git-sv n-trunk

下の方が今回追加したものです。 あとは、以下のコマンドを実行してSVNからfetchしてきます。

1 % git svn fetch trunk

そうすると、以下のようなブランチが作成されます。

1 % git branch -r 2 git-svn 3 git-svn-tr unk

ここから先は、普通にGitのbranchとしてmergeすればOKです。

See Also