Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Gerrit vs Github final war
Search
KONDO Uchio
October 17, 2012
Technology
6.7k
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
340
Narrative of Ruby & Rust
udzura
0
290
開発者生産性指標の可視化 / pepabo-four-keys
udzura
3
1.9k
Talk of RBS
udzura
0
520
Re: みなさん最近どうですか? / FGN tech meetup in 2021
udzura
0
880
Dockerとやわらかい仮想化 - ProSec-IT/SECKUN 2021 edition -
udzura
2
840
Device access filtering in cgroup v2
udzura
1
1.1k
"Story of Rucy" on RubyKaigi takeout 2021
udzura
0
960
Other Decks in Technology
See All in Technology
【dbts2026】AIエージェントの 判断と探索を変える、 データベース エンジニアリング― 既存DBの処理と依存関係から作る、オペレーショナルオントロジー ―
shisyu_gaku
0
150
Copilot Coworkで「みのるん式」やってみた
minorun365
PRO
2
1.5k
これだけは抑えておきたい!後悔しない re:Invent の過ごし方 / AWS re:Invent 2026 prestudy
kinunori
2
710
基本から分かる!AWSセキュリティ運用の考え方と任せ方
cmusudakeisuke
1
410
`go get`したらELFが降ってきた件
taiyow
0
170
Active Directory と Entra ID のむむむな関係
murachiakira
PRO
2
1.3k
新米を「売り越さない」、Aurora DSQLで作る在庫ゼロ死守の限定ドロップEC
yama3133
0
170
AI時代に求められる優秀なTechLeadの振る舞い
pospome
8
11k
スマートロックを支えるFlutter × ネイティブ連携の実践 / Flutter and Native Integration in Practice: Powering Smart Locks
bitkey
PRO
0
150
2026 Apache Flink Community Checkpoint
rmetzger
0
170
Strands Decider 2BでAWSアップデートの目利きをしてみた
sato4mi
1
110
新卒エンジニア、 介護士になる
ryu1013
1
690
Featured
See All Featured
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
280
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.3k
Large-scale JavaScript Application Architecture
addyosmani
516
110k
Statistics for Hackers
jakevdp
799
230k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
400
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
330
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
From π to Pie charts
rasagy
1
430
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
460
Claude Code のすすめ
schroneko
67
230k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1.1k
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 なプロジェクトに移行した • 彼もきっといいことを言ってくれるはず……