やりたいこと
GitでSubversionリポジトリと連携するときの手順です。
前提条件
概要
手順
リビジョンを指定したクローン
REVISION=100
URL=http://svn.example.com/
git svn clone -s -r${REVISION}:HEAD ${URL}
リモートへコミット
git svn dcommit -n # dry-run
git svn dcommit
特定のリビジョン番号まで戻す
途中でログが書き換えられたときに有効です。
REVISION=100
git svn reset -r ${REVISION}
SubversionリポジトリのGitリポジトリへの変換
- svn2git
- Git標準の
git svn
では、SubversionのタグがGitではブランチになっている。これを修正して、SubversionのタグをGitのタグに変換してくれる。
- Git標準の
- (未確認)メッセージが空のコミットを修正する方法: Rebasing a git history with empty commit messages - Stack Overflow
- Subversion側でメッセージが空でコミットした場合、Gitでめんどくさくなる(
--allow-empty-message
オプションが必要)。フィルタで自動的にメッセージを追加する。 - 履歴を改変するため、
push -f
が必要になるのに注意。
- Subversion側でメッセージが空でコミットした場合、Gitでめんどくさくなる(