git-svn使用時にgithubでContributionsが正しく表示されるようにする
えらくターゲットの狭い小ネタなんだけど、RubyCocoaの開発は手元ではgitでやってて、
- ローカルのgitで開発、コミット
- SourceForge.netのリポジトリにgit svn dcommitで反映
- 気が向いたときにgithubのミラーにpush
というようにしている。
ふと気付いたのだけど、けっこうコミットしてる期間にContributionsが緑にならないし、Commitsも自分のアイコンがでてない。gitのuser.emailも正しく設定してるしなんでだろ?と思って調べてみた。
その結果、svn dcommit時にユーザがsvnのものに書き換えられていて、user.emailが残っていない。ということがわかった。ミラーへのpush時は別の名前(メールアドレス)になっているから、github上では自分じゃないと判定されてしまっていると。
こんな感じ。@の後ろがよくわからん識別子みたいのになってる。
Author: kimuraw <kimuraw@f4f36d40-9719-0410-9868-dde021a23eda> Date: Thu Nov 28 14:41:28 2013 +0000 Fix error with ruby-2.0 - tc_bool.rb: require path of .bundle to relative. - tc_nsstring.rb: add magic comment for encoding. git-svn-id: https://svn.code.sf.net/p/rubycocoa/svn/trunk/src@2512 f4f36d40-9719-0410-9868-dde02
そんなときどうするかというと、ファイルを用意してsvn.authorsFileを指定しておけばよい。
% cat svn-authors kimuraw = kimura wataru <kimuraw@i.nifty.jp> % git config svn.authorsFile svn-authors
これでちゃんと自分のコミットとしてgithub上で扱われるようになる。初回なんかはpush前にgit logあたりでちゃんとコミット者の名前が意図したとおりになっているかを確認したほうがよいかも。