svn上のプロジェクトを手元にcheckoutしてgitで開発する
あまり頻繁にやらない→やるたび毎回忘れるのでメモ。
環境
- 中央リポジトリはsubversion (http)
- 手元のVM(CentOS)ではgitを使いたい
- ホストはWindows、Turtoise SVNを使う
- ファイルシステムはWindows上に置き、VMからマウントして使う
作業
チェックアウト
% git svn clone http://exapmle.com/project_name/trunk project_name
チェックアウトしたディレクトリをWindows上で右クリック→SVN Checkout→該当プロジェクトをチェックアウト。git svnでcloneしたディレクトリに重ねてチェックアウトする。
日常の開発
普段はgitでbranchを切って、その上で生活する。svn commit(中央リポジトリへpush)するときは…
% git checkout master # git側をmasterに切り替える
% git svn rebase # svn側の変更を取り込む
% git rebase master branch_name # masterの変更をbranchに適用
% git checkout master # git側をmasterに切り替える
% git merge branch_name # branchの開発成果をmasterにmerge
% git svn dcommit # 変更をsvnにcommit
プロジェクトディレクトリを右クリック→SVN Updateし、svn側のバージョン情報をローカルにマージしておく。