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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
KONDO Uchio
October 17, 2012
Technology
6.5k
7
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Gerrit vs Github final war
Githubへの歪んだ感情をGerritにかこつけてぶつけよう!あと Patchset便利
KONDO Uchio
October 17, 2012
More Decks by KONDO Uchio
See All by KONDO Uchio
大規模レガシーテストを 倒すための CI基盤の作り方 / #CICD2023
udzura
5
2.6k
Ruby x BPF in Action / RubyKaigi 2022
udzura
0
310
Narrative of Ruby & Rust
udzura
0
270
開発者生産性指標の可視化 / pepabo-four-keys
udzura
3
1.8k
Talk of RBS
udzura
0
500
Re: みなさん最近どうですか? / FGN tech meetup in 2021
udzura
0
860
Dockerとやわらかい仮想化 - ProSec-IT/SECKUN 2021 edition -
udzura
2
810
Device access filtering in cgroup v2
udzura
1
1k
"Story of Rucy" on RubyKaigi takeout 2021
udzura
0
920
Other Decks in Technology
See All in Technology
Diagnosing performance problems without the guesswork
elenatanasoiu
0
170
AWSシリコン最前線 〜AI時代のチップ選択を読み解く〜
htokoyo
1
130
地元にいないローカルオーガナイザーの立ち回り
uvb_76
1
730
Agentic Web
dynamis
1
140
「気づいたら仕事が終わっている」バクラクAIエージェント本番運用の裏側 / layerx-bakuraku-aie2026
yuya4
18
10k
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
3
220
Agentic Defenseとともにセキュリティエンジニアが輝き続けるには / How Security Engineers Can Keep Excelling with Agentic Defense
yuj1osm
0
110
Sony_KMP_Journey_KotlinConf2026
sony
2
210
Ruby::Boxでできること、Refinementsでできること
joker1007
3
400
Databricks における 生成AIガバナンスの実践
taka_aki
1
330
EventBridge Connection
_kensh
4
590
ポケモンの型をTypeScriptの型システムで表現してみた
subroh0508
0
330
Featured
See All Featured
Faster Mobile Websites
deanohume
310
31k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
200
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
820
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
430
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Making Projects Easy
brettharned
120
6.7k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
170
Automating Front-end Workflow
addyosmani
1370
210k
Facilitating Awesome Meetings
lara
57
6.9k
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 なプロジェクトに移行した • 彼もきっといいことを言ってくれるはず……