svn から git に author 情報を引き継ぎ移行するメモ

CodeRepos から GitHub に移行するパターンで,両方のレポジトリでユーザ名が同じでも,結局別人扱いされてしまうのでどうしたもんかなぁと思っていたのだけど,こことかこことか見るとマッピングファイルを作ればいいということがわかった.

git help svn すると -A(--authors-file) というオプションがあって,これに次のフォーマットでマッピングを記述しておいて読ませるらしい.

loginname = Joe User <user@example.com>

loginname には svn での名前を書いておけばいい.行区切りで複数のマッピングを書ける.

さらに svn.authorsfile という config にファイル指定しておけば良さげだったので,git config --global で登録してみた.これで git svn の度に -A しなくていい.

以上を踏まえつつ実際に couchdb-object を移行してみたらこんな感じになった.

% vi ~/.svnauthors
% git config --global svn.authorsfile ~/.svnauthors
masaki = NAKAGAWA Masaki <masaki.nakagawa@gmail.com>
% git svn init -s http://svn.coderepos.org/share/lang/perl/CouchDB-Object couchdb-object
% cd couchdb-object
% git svn fetch
% git svn info # check trunk or not
% git reset --hard remotes/trunk
% git remote add origin git@github.com:masaki/couchdb-object.git
% git push origin master