Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Gerrit vs Github final war
Search
KONDO Uchio
October 17, 2012
Technology
7
6.3k
Gerrit vs Github final war
Githubへの歪んだ感情をGerritにかこつけてぶつけよう!あと Patchset便利
KONDO Uchio
October 17, 2012
Tweet
Share
More Decks by KONDO Uchio
See All by KONDO Uchio
大規模レガシーテストを 倒すための CI基盤の作り方 / #CICD2023
udzura
5
2.5k
Ruby x BPF in Action / RubyKaigi 2022
udzura
0
260
Narrative of Ruby & Rust
udzura
0
240
開発者生産性指標の可視化 / pepabo-four-keys
udzura
3
1.7k
Talk of RBS
udzura
0
460
Re: みなさん最近どうですか? / FGN tech meetup in 2021
udzura
0
810
Dockerとやわらかい仮想化 - ProSec-IT/SECKUN 2021 edition -
udzura
2
750
Device access filtering in cgroup v2
udzura
1
950
"Story of Rucy" on RubyKaigi takeout 2021
udzura
0
860
Other Decks in Technology
See All in Technology
開発者から見たLLMの進化 202511
ny7760
1
120
文字列操作の達人になる ~ Kotlinの文字列の便利な世界 ~ - Kotlin fest 2025
tomorrowkey
2
540
プロダクトエンジニアとしてのマインドセットの育み方 / How to improve product engineer mindset
saka2jp
1
200
技術の総合格闘技!?AIインフラの現在と未来。
ebiken
PRO
0
180
ソフトウェアテストのAI活用_ver1.50
fumisuke
0
220
なぜ新機能リリース翌日にモニタリング可能なのか? 〜リードタイム短縮とリソース問題を「自走」で改善した話〜 / data_summit_findy_Session_2
sansan_randd
1
140
窓口業務を生成AIにおまかせ!Bedrock Agent Coreで実現する自治体AIエージェント!
rayofhopejp
0
240
DMARCは導入したんだけど・・・現場のつぶやき 〜 BIMI?何それ美味しいの?
hirachan
1
170
Data Engineering Guide 2025 #data_summit_findy by @Kazaneya_PR / 20251106
kazaneya
PRO
10
1.8k
新米エンジニアをTech Leadに任命する ー 成長を支える挑戦的な人と組織のマネジメント
naopr
1
370
設計は最強のプロンプト - AI時代に武器にすべきスキルとは?-
kenichirokimura
1
230
仕様駆動開発を実現する上流工程におけるAIエージェント活用
sergicalsix
12
6.1k
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Music & Morning Musume
bryan
46
6.9k
We Have a Design System, Now What?
morganepeng
54
7.9k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
The Language of Interfaces
destraynor
162
25k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.1k
Done Done
chrislema
186
16k
BBQ
matthewcrist
89
9.9k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
2
290
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Transcript
Github vs Gerrit -‐ 最終決戦 -‐ @shibuya.rb
近藤うちお 2012-‐10-‐17
@udzura -‐ 近藤うちお • エイミングでレールズ書いています • 社内でパデュリーノはじまりました – でも、ぼくのプロジェクトはレールズ…
• 最近Elixir再開しつつある • 最近見てるアニメはゆるゆりです • h;p://udzura.jp 提供
[PR] • Web+DB Press vol.71 • 書いた •
今回のテーマは Pry です!!! • (Thanks @ainame)
今日 • レビューツールの話です • ここはシブヤ・ルビー…… • いや、ルビーでの開発で使っていますので
コードレビュー • してますか?
プルリクエスト • してますか?
あなたと
プルリクエストで • 初めて人のコ〜ドをちゃんと見たな〜 • レビュ〜初めてだったわ〜 • という方?
コードレビュー • 古典的イメージ – インスペクション – ウォークスルー – あっ、この用語
基本情報処理技術者試験で見たやつだ! – レビュー会議する – ウォーターフォールのいち工程 – コストがヤバい – ダルそう……
いま、プルリクエスト • 本質はコードのレビューだと思います • 「ソーシャルコーディング」は、コードレビュー というプラクティスを – 対等
– 双方向的 – 軽量 • に変えるのに役立ったと思っていて とてもすばらしい
突然のプルリクエスト • PR、確かにコードレビューを身近にしたけど • で、いきなり「レビューしてください」 • できるもんなの?
• 地味にみんな戸惑ったのではないかと 思っている
もっとレビューの話をしたい
ぼくのレビュー事始め • Gerrit code review – h;p://code.google.com/p/gerrit/
Gerrit Code Reviewとの出会い • 入社前から存在は知っていたけど、某A社に 入ってから使い始めた • 入社1日目にモヒカン1さんとペアプロをし、
数日後モヒカン2さんによりレビュー→直し • レビューされる → レビューする側にも _人人人人人人_ > 突然の斧 <  ̄^Y^Y^Y^Y^Y^ ̄
Gerrit Code Review • GoogleのMondrianの • クローンのRietveld(独自言語製) •
のforkらしい • ジャバ言語と言う言語で 書かれている • Android、Qt あたりが採用 • Gerrit Rietveld さんどんだけ 偉いのか…… • h;p://code.google.com/p/gerrit/wiki/Background
利用例: Androidの開発 h;ps://android-‐review.googlesource.com
一方 • は、Githubを使いやがった……
gerrit と github • 比べてみた • Githubも(社内で)少し触って、 「えっ」とか「うーん」って
なったところとかを交えつつ
gerritのいいな〜ってところ • Patchsetの存在
Patchset? • コミット一つ一つに対して「Change-‐ID」が割り 振られる • gerritは、 Change-‐IDが同じコミットは、SHA1 の値が違っていても「同一のコミット」と見なす •
Change-‐IDが同じコミット群は変更履歴が残る • 各コミットのdiffを参照できるし、過去のコメン トも消えない
Patchsetの状態ごとに チェックアウトできる
議論が拡散しない • コミットとPatchsetの記録のおかげで、 「コミットへのコメント」がそのコミットに集約する • h;ps://twi;er.com/kyanny/status/257670367504654336
歴史改変 • git rebase -‐i で履歴を奇麗に保つ運用と 親和性が高い •
h;p://d.hatena.ne.jp/sinsoku/20110925/1316933393
歴史改変 in github • rebaseとかしたらgit push -‐fとかになる – 他の方法があるかもしれないが……
多くの人がこのやり方を推奨する旨書いてる – 恐ろしい…… • もしくはコミットをあとから追加していく – 一度上げちまったプルリクは改変しない
c.f. 消しゴム vs 破り捨て • “この間ちょうどオフィスで「アメリカ人はなんでシャー ペンの良さが分からないんですか?」って話があった んだけど、これもまさに象徴的なことだよね。アメ リカ ではそもそも消しゴム全然使わないから、書いた後に
直すっていうコンセプトが無い。シリコンバレーでもな んでもそうだけど、作ってとりあえずリリース する。消 しゴム、ないんだよね。この国。(笑)だけど日本人は 直して直して、完璧になるまでなかなか出さない。ダメ だったら破って次に進めばいいんだよ。” • h;p://blog.btrax.com/jp/2012/05/09/int-‐designer/
もしかして • あんまりrebase -‐i でコミット直すのって • みんなやってない? •
Githubの人ってrebase -‐i使わなさそう…
gerrit merit • 無料です – Githubの利用もロックインはロックインなのです – まあ、Bitbucketとかもありますけど…… •
連携プラグインとか – gerrit -‐> Jenkins – h;p://developer.aiming-‐inc.com/ci/jenkins-‐gerrit-‐ trigger-‐plugin-‐usage/ – gerrit はコマンドラインAPIもあるよ
クラウドに置けない系開発 • 主にアイピーモノですね • Github Enterprise?いいと思いますよ • h;ps://enterprise.github.com/pricing
• お金で躊躇して導入できない とかであれば、まずは gerritを試すといいのでは
ソーシャルコーディングへの橋渡し • Githubほどのオープンっぽさが無いので そこが逆にいいかも • Aimingでは、そんなにwebッ子じゃない エンジニアにも普及している
• 文化が違うエンジニアだっているという話 tool social
gerrit cons • 社内でホストするのってやっぱ大変…… – 重くなったり…… – アップデート…… •
UIはやっぱりGithubの方が良い :bomb: • 「複数コミットのつながり」へのコメントが できない • ミサワリンクが画像展開されない
まとめ • gerritのよいところ – オ〜プンソ〜ス – Patchsetの存在 – マニー
– クローズドから始められる • 「ソーシャルなんて……」と躊躇するなら いっそgerritから始めてはいかが?
see also • 藤村さん(卒業)の発表 • 「AimingのGitHubを使った開発フロー」 • h;ps://speakerdeck.com/u/fujimura/p/
aiminggithub
ask him • gerrit → github なプロジェクトに移行した • 彼もきっといいことを言ってくれるはず……