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 **

posted by genki genki on Fri 13 Jun 2008 at 15:22 with 0 comments