きりかノート 3冊め

おあそびプログラミング

git-svn使用時にgithubでContributionsが正しく表示されるようにする

えらくターゲットの狭い小ネタなんだけど、RubyCocoaの開発は手元ではgitでやってて、

  1. ローカルのgitで開発、コミット
  2. SourceForge.netのリポジトリにgit svn dcommitで反映
  3. 気が向いたときに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あたりでちゃんとコミット者の名前が意図したとおりになっているかを確認したほうがよいかも。