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
7
6.4k
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
290
Narrative of Ruby & Rust
udzura
0
260
開発者生産性指標の可視化 / pepabo-four-keys
udzura
3
1.8k
Talk of RBS
udzura
0
490
Re: みなさん最近どうですか? / FGN tech meetup in 2021
udzura
0
840
Dockerとやわらかい仮想化 - ProSec-IT/SECKUN 2021 edition -
udzura
2
800
Device access filtering in cgroup v2
udzura
1
990
"Story of Rucy" on RubyKaigi takeout 2021
udzura
0
900
Other Decks in Technology
See All in Technology
中央集権型を脱却した話 分散型をやめて、連邦型にたどり着くまで
sansantech
PRO
1
190
20260320_JaSST26_Tokyo_登壇資料.pdf
mura_shin
0
110
SLI/SLO 導入で 避けるべきこと3選
yagikota
0
140
GitHub Copilot CLI で Azure Portal to Bicep
tsubakimoto_s
0
170
20260323_データ分析基盤でGeminiを使う話
1210yuichi0
0
170
スピンアウト講座01_GitHub管理
overflowinc
0
850
The Rise of Browser Automation: AI-Powered Web Interaction in 2026
marcthompson_seo
0
290
SaaSに宿る21g
kanyamaguc
2
110
生成AIで速度と品質を両立する、QAエンジニア・開発者連携のAI協調型テストプロセス
shota_kusaba
0
370
プラットフォームエンジニアリングはAI時代の開発者をどう救うのか
jacopen
8
4.2k
Phase08_クイックウィン実装
overflowinc
0
1.1k
AlloyDB 奮闘記
hatappi
0
190
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
200k
How to train your dragon (web standard)
notwaldorf
97
6.6k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Accessibility Awareness
sabderemane
0
84
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
570
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
200
Statistics for Hackers
jakevdp
799
230k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Balancing Empowerment & Direction
lara
5
960
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
The SEO Collaboration Effect
kristinabergwall1
0
400
What's in a price? How to price your products and services
michaelherold
247
13k
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 なプロジェクトに移行した • 彼もきっといいことを言ってくれるはず……