$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
マジカルsvnとキュアgit
Search
Takafumi ONAKA
PRO
March 22, 2013
Technology
0
8
マジカルsvnとキュアgit
2013-03-22 第5回テックヒルズ『Go to Git !』~さらばSVN~
Takafumi ONAKA
PRO
March 22, 2013
Tweet
Share
More Decks by Takafumi ONAKA
See All by Takafumi ONAKA
気づけばこうなる運用 ~運用現場の現実と理想~
onk
PRO
0
10
強いチームと開発生産性
onk
PRO
44
17k
ADRを運用して3年経った僕らの現在地
onk
PRO
22
24k
1文字エイリアスのすゝめ
onk
PRO
0
89
すこやかなサービス運営のための PWG (Performance Working Group)
onk
PRO
0
1.1k
オブザーバビリティの Primary Signals
onk
PRO
2
6.3k
Cache Stampede
onk
PRO
1
2.3k
ORM - Object-relational mapping
onk
PRO
3
4k
デュアルトラックアジャイルとの向き合い方
onk
PRO
5
13k
Other Decks in Technology
See All in Technology
Uncertainty in the LLM era - Science, more than scale
gaelvaroquaux
0
840
SSO方式とJumpアカウント方式の比較と設計方針
yuobayashi
7
590
A Compass of Thought: Guiding the Future of Test Automation ( #jassttokai25 , #jassttokai )
teyamagu
PRO
1
250
Challenging Hardware Contests with Zephyr and Lessons Learned
iotengineer22
0
180
Reinforcement Fine-tuning 基礎〜実践まで
ch6noota
0
170
学習データって増やせばいいんですか?
ftakahashi
2
300
形式手法特論:CEGAR を用いたモデル検査の状態空間削減 #kernelvm / Kernel VM Study Hokuriku Part 8
ytaka23
2
450
EM歴1年10ヶ月のぼくがぶち当たった苦悩とこれからへ向けて
maaaato
0
270
GitHub Copilotを使いこなす 実例に学ぶAIコーディング活用術
74th
3
2.5k
AWSセキュリティアップデートとAWSを育てる話
cmusudakeisuke
0
230
新 Security HubがついにGA!仕組みや料金を深堀り #AWSreInvent #regrowth / AWS Security Hub Advanced GA
masahirokawahara
1
1.8k
文字列の並び順 / Unicode Collation
tmtms
3
530
Featured
See All Featured
Bash Introduction
62gerente
615
210k
Typedesign – Prime Four
hannesfritz
42
2.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
970
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
97
Being A Developer After 40
akosma
91
590k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Balancing Empowerment & Direction
lara
5
790
It's Worth the Effort
3n
187
29k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
720
Transcript
マジカルsvn と キュアgit 2013-03-22 #techhills 大仲 能史 a.k.a. @onk
宣 伝 Platinum Sponsor of Rubykaigi2013
自己紹介 • 大仲 能史 • @onk • 普段の仕事 – アプリケーションエンジニア
– ソーシャルゲーム開発部 – 前線でアプリ開発をしています copyright© DRECOM Co., Ltd All Rights Reserved. 3
今日のアジェンダ • マジカルsvnとは • gitに移行して感じているメリット • 柔軟に移行するための戦略 • 移行時の準備チェックリスト
マジカルsvnとは • 「マジカル」直訳で「不思議な」 • 現実には存在しない不思議なsvnの使い方
Our subversion branches 我々の取ってい たブランチ戦略 6
3 main branches 7 trunk staging release
Commit to trunk 8 trunk staging release
Cherry pick & test on staging 9 trunk staging release
Release 10 trunk staging release
Commit 11 trunk staging release
Cherry-pick 12 trunk staging release
Release 13 trunk staging release
14 マ ジ カ ル
マジカルsvnは なぜ発生するか 15
の前に 16
理想の開発 フローとは 17
世界中の開発者の中でpull request文化が主流になりつ つあるので、普段の開発にも 取り入れたい 18
理想の開発フローとsvnとgit • チケット駆動開発をしたい – OSSで成功しているモデルだし、作業管理がし やすくなる • svnは各所でTiDDを妨げてくる – ブランチを切るコストが高い
– mergeが頭悪い • gitにはTiDDを実行する周辺環境が揃って いる – githubとpull request、travis-ci等
svnではできないのか • svnは重い • 1.7で緩和したけどまだまだ重い • 本当に重いです。やりたい開発フローに 合わせられない重さ – そしてマジカルsvnが生まれる
• 「trac-svnのリポジトリブラウザ便利だ わー」と言っている人は世界を知ってく ださい
svnではできないのか • ツールが文化を規定する – 速くなる、楽になるだけで世界が変わる • svnでは到達しづらい目標点に軽くたどり 着くことができる • 「知の高速道路」「巨人の肩」
• 乗らない手はない
今日話すこと • 話すこと – みんなでgit化する方法 • 話さないこと – 一人でgitを始める方法 –
例えばgit-svnで今すぐ中央svnリポジトリ<-> 自分はgitで開発、とするとか – git-svnは1年半ほど使い倒したので興味があ る方は直接聞きに来てください
gitに移行して感 じているメリッ ト 23
gitに移行して感じているメリット • 十分に速いリポジトリブラウザ • TiDDをやりやすい • メンバーの意識改革につながった
十分に速いリポジトリブラウザ • github、bitbucket、gitlab、etc.. • tracやredmine+svnとは桁が違う閲覧性
TiDDをやりやすい • ブランチを切るコストが低い • ブランチをマージするコストが低い • diffを見ながら会話し、1クリックでマー ジできるpull requestという仕組み
メンバーの意識改革につながった • ちゃんとコードを見てもらえる安心感 • ちょっとした思いつきをcommitする障壁 が下がる • みんなが知っていれば僕だけが悪いん じゃないという逃げ腰の人にとって、ペ アプロやコードレビューはものすごく幸
せな環境
外に出ていくようになる • 「githubにアカウントを持っていなかっ たけど作りました」 • github Organization Accountで運営して いたプロジェクトに気軽にpull request
を送ってもらえる環境を作れた • OSSに貢献しやすくなる
git移行時の フロントエンド選定ポイント • web UI • ユーザ管理やリポジトリ管理等もwebから 行える • pull
request相当の機能がある • 継続してメンテナンスできる • OSSに貢献する敷居を下げる
柔軟に移行する ための戦略 30
柔軟に移行するための戦略 • 新規アプリには勝手に始めてもらう – やる気がある人を妨げない環境があればいい – 中央のgitリポジトリだけ用意すると開発が始 まる • 既存の数年運用してきたアプリをどう移
行するかが最大の肝だった – クロスコミットで解決
subversion git 32 trunk master topic topic 移行期間を設ける
移行期間を設ける • クロスコミットするようにした – git-svn-bridge • svnにcommit / gitにpushどちらでもいい –
「重要なので、svnで失礼します」 – リリースフローはsvnのまま変えない • まずgitに慣れてもらって、その間に cherry-pickが必要なリリースフローを直 す
移行後の開発フロー • git-flow、github-flowは夢物語 • リリースし続けるアプリケーションでは github-flowが理想 – リリースできないものをmasterに入れない • ブランチをdeployしてテストする環境整
備とか。。 • まだ試行錯誤中です。
移行時の準備 チェックリスト 35
「社内に1人は居るgit好 き」に任せると漏れがち になる部分を重点的に 36
移行時の準備チェックリスト • 上を倒す • 横を倒す • 継続的に運用する手段の確保
上を倒す • githubの説明、レビュー文化の説明 • 「正しい文化だから取り入れましょう」 – コードレビューが改善として上がる状況なら これは納得してもらえる • GHEを入れるほどは倒せなかった
– 予算に組み込まれてないので数百万のイニ シャルコストはまずい – 継続的なコストはそこまで気にしていないの で勝手にgitlab化を進めた
横を倒す • 横とは – (svnを上手に使えていない)非エンジニア – svnで回ってるので移行する理由がない人
横を倒す • メリットを提示する – そもそも変更履歴という概念があまりなく、共有 サーバとして使っている – 画像の差分が見られるよ • 元気なプロジェクトで試して便利そう楽しそ
うに見せる – pull requestでワイワイする – 全ユーザが全プロジェクトを見れるようにし、 回ってるプロジェクトを見せて使い方をイメージ してもらう
横を倒す • 移行しない理由を潰す – 推奨クライアントの設定、ドキュメント整備 • windowsがネック。SourceTree出ましたね! • エンジニア向けにはtigやfugitive、magitの説明 –
全プロジェクト、勝手に同期しておく – 全社的に移行する姿勢を見せる • ドメインを会社のトップレベルにした – 使い始めてくれたプロジェクトのIRCを張って、 不満を言われた瞬間に直す
横を倒す • 移行しない理由を潰す – 詰まった時にすぐ聞ける環境を作る – 各プロジェクトに2人以上gitのコミットオブ ジェクトを理解している人を配備 – 置き換えるための不安を潰し続ける
• 今やってる~の作業、gitではこの手順書を見てく ださい • コンフリクトが起きたらコミットツリーを描いて 何故おきたのか、どうすればいいのかを説明する
継続的に運用する • バックアップ • 冗長化 – gitoliteのミラーリング – mysqlのレプリケーション •
gitlabのコミッタ数名 – vagrantを用意 – gitlabの更新手順を用意
全てのプロジェクトを移行する • gitでの様々な手順書を用意する • 上手い使い方を発表してもらう • キリ番を祝う – 【祝】issue 100
• 移行してないプロジェクトは仲間外れだ よね、カッコ悪いよねという空気の醸成 – 「開発者はうまく怒らせるとすごい生産性を 発揮する」
gitである必要は あったか 45
結論を言うと 「ない」 46
十分に速いソースコード リポジトリと、TiDDをや りやすい周辺環境が揃っ ていれば何でも良い 47
svnには欠けていた gitには揃っている 48
リポジトリをgitにするだけじゃダ メなの? • ワークフローはツールが規定する – UIが使われ方を決める。UI大事。 • web UIが無かったら? –
ほぼsvnと同じ使われ方をします – ゴールは「pull request文化の輸入」 – 個人で幸せになってていいのは小学生まで – チームの生産性最大化を考えよう
ソフトウェアだけじゃな く、チームも、組織も、 すべてを設計せよ 50
ご清聴 ありがとうございました 51