あまり頻繁にやらない→やるたび毎回忘れるのでメモ。

環境

  • 中央リポジトリは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側のバージョン情報をローカルにマージしておく。