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/config
ファイルに項目を加えます。
1 [svn-remote "svn"]
2 url = http://svn.repos.com/foo/branches/bar
3 fetch = :refs/remotes/git-svn
4 [svn-remote "trunk"]
5 url = http://svn.repos.com/foo/trunk
6 fetch = :refs/remotes/git-svn-trunk
下の方が今回追加したものです。
あとは、以下のコマンドを実行してSVNからfetchしてきます。
1 % git svn fetch trunk
そうすると、以下のようなブランチが作成されます。
1 % git branch -r
2 git-svn
3 git-svn-trunk
ここから先は、普通にGitのbranchとしてmergeすればOKです。
See Also