git-svnで特定のサブプロジェクトを扱う
- svn
- trunk
- project-a
- project-b
- branches
- rc1
- project-a
- project-b
- rc1
- tags
- v1.0
- project-a
- project-b
- v1.0
- trunk
みたいになってるケースにおいて、subproject-aだけをgitリポジトリとして管理したいというケース。
git svn cloneの引数をうまく指定してハンドリングする方法がわからなかったんだけど、設定ファイルを自分で書けばうまくいきそう。
man git-svn
の、CONFIGURATIONの項目を見ればやりかたがかいてある。
.git/config に、
[svn-remote "project-a"] url = http://server.org/svn fetch = trunk/project-a:refs/remotes/project-a/trunk branches = branches/*/project-a:refs/remotes/project-a/branches/* tags = tags/*/project-a:refs/remotes/project-a/tags/*
という記述をする。
で、git svn fetchすると
$ g b -r project-a/trunk project-a/branches/rc1 project-a/tags/v1.0
となって幸福が実現。
svn-remoteの記述を自由に書きかえたあとは、.git/svnディレクトリを削除してgit svn fetchするとうまくいく。と思う。