git-svnでSVN上の複数のブランチやtrunkを扱う方法
SVNリポジトリ上に存在する複数のブランチやtrunkの間で、
変更点をマージしたりする方法のメモです。
まず、これからSVNリポジトリをgit svn cloneすると言う場合は、以下のような
オプションを指定して実行します。
pre>>
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
ファイルに項目を加えます。
pre>>
[svn-remote "svn"]
url = http://svn.repos.com/foo/branches/bar
fetch = :refs/remotes/git-svn
[svn-remote "trunk"]
url = http://svn.repos.com/foo/trunk
fetch = :refs/remotes/git-svn-trunk
<<--
下の方が今回追加したものです。
あとは、以下のコマンドを実行してSVNからfetchしてきます。
pre>>
% git svn fetch trunk
<<--
そうすると、以下のようなブランチが作成されます。
pre>>
% git branch -r
git-svn
git-svn-trunk
<<--
ここから先は、普通にGitのbranchとしてmergeすればOKです。
** See Also **