ものがたり(旧)

atsushieno.hatenablog.com に続く

android gerrit / repoのハマりどころ

たかだかパッチを投げるだけなのに何でこんなハマるのか…ともあれ、id:atsushieno:20100305:p1のパッチは無事投げることが出来た。以下僕がハマったgerritとrepoの問題をまとめて置こうと思う。これとは別にgitとssh鍵の基本的な理解が必要になるので、分からない場合はsource.android.comの基本的な説明を読むと良いと思う。

  • androidのソースをチェックアウトするときにrepo initすると思うけど、この時にメールアドレスを訊かれる。単にチェックアウトしてビルドするだけなら何でも良いのだけど、パッチをcommitしてreviewに投げるとなると、そのアドレスが後でgerritで使われることになる。まずこのことに注意。
  • gerritに登録できるユーザ名にはアルファベット、数字、_ - など限られているのだけど、これは後でメールアドレスの@の左側と一致する必要がある*1。僕の場合、最初、 +hogehoge を好きなだけsuffixに使えるgmailを使ったのだけど、+記号をユーザ名として入力できないため、ユーザ名とメールアドレスを合わせることが出来ないのだ。
  • メールアドレスはgerrit上で変更できるけど、それ以前にrepo syncしていたら、その内部でgit cloneした時に、repo initした時に登録したメールアドレスが.gitに保存されてしまっているので、全て消してrepo syncするか、.git/configの中を書き換える必要がある(後者はやっつけっぽいけど僕はこれで対処した)。

この辺は他にもそれなりにハマりどころになるようなので、怪しいと思ったらandroid repo upload gerritあたりのキーワードで探してみるといいと思う。

追記: gerritに登録するメールアドレスには+が入っていても問題ないかもしれない(repo initする時にあるとNG)。ただ僕は+有りも無しも登録しているので、「かもしれない」以上のことは何とも言えない。*2

*1:これはrepoのバグと認識されている

*2:登録アドレスを消せば確認できるけど、パッチレビューとかで出戻りがあっても嫌なのでw後にする