Repoを使わずGerritにuploadする
基本的な方法
refs/for/branchnameというおまじないref *1 にpushすればrepo upload
したとき同様レビューにあげることができる。
例えばgit.example.comというGerritサーバにホストされているkernel/commonプロジェクトのexブランチにあげたい場合は
$ git push ssh://sainoky@git.example.com:29418/kernel/common HEAD:refs/for/ex
ショートカット(1)
特定のGerritサーバによくgit pushする場合は、~/.ssh/config
に設定を書いておくと少し楽になる。
$ cat ~/.ssh/config ... Host rv Hostname git.example.com Port 29418 User sainoky $ git push rv:kernel/common HEAD:refs/for/ex
ショートカット(2)
さらにreviewerも同時に指定したい場合はgit receive-pack
を利用して
$ git push --receive-pack='git receive-pack --reviewer=a@a.com' rv:kernel/common HEAD:refs/for/ex
同じプロジェクト/ブランチ/reviewerでgit pushする機会が多いならこれらも適宜ショートカットしたい。
$ cat .git/config ... [remote "rv-ex"] url = rv:kernel/common receivepack = git receive-pack --reviewer=a@a.com push = HEAD:refs/for/ex $ git push rv-ex
*1:このrefは実際には存在しない。Gerritは独自のSSH/Gitスタックをもっていて、これがGit clientに対してはあたかもrefs/for/branchnameが存在しているかのように振る舞う。 参考: Gerrit - Gritty Details