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
Branching - Getting It Right for Us
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Luke van der Hoeven
August 30, 2013
Programming
2
48
Branching - Getting It Right for Us
Sometimes the way you do it is not the way we do it...
Luke van der Hoeven
August 30, 2013
Tweet
Share
More Decks by Luke van der Hoeven
See All by Luke van der Hoeven
TrainWreck: Architecture
plukevdh
1
60
Other Decks in Programming
See All in Programming
AgentCoreとHuman in the Loop
har1101
5
240
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
130
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
450
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
190
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
290
高速開発のためのコード整理術
sutetotanuki
1
400
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
240
CSC307 Lecture 08
javiergs
PRO
0
670
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
170
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6.1k
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.4k
Patterns of Patterns
denyspoltorak
0
1.4k
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
77
5.3k
Everyday Curiosity
cassininazir
0
130
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
57
50k
Building AI with AI
inesmontani
PRO
1
690
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
BBQ
matthewcrist
89
10k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
We Are The Robots
honzajavorek
0
160
Balancing Empowerment & Direction
lara
5
890
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Transcript
Branching Getting It Right...
...for us
We’ve Been Here Before Now we know what we’re doing...
...maybe
The Hybrid Model
• Master Integration • Feature • Release Assembly Three Types
of Branches
• Contains only released code • Always releasable (continuous deployment)
• No active work ongoing What Is: Master
• Active, in-progress work • New code is always done
in a feature branch • Contains an independent, fully-functional feature What Is: Feature
• Contains code being prepared for release • Made up
of merges from feature branches • No active work ongoing. What Is: Release
A Generic Scenario
None
Another day, another promotion
None
Break Them Up
None
Work Progresses and Time Passes
None
Time to Think QA and Releases
None
What’s Going On • QA starts testing the release •
Developers are working on the feature branches • Life is good...
When suddenly, QA finds a BUG as they often do
If the bug is with Feature A, where does the
fix go? QA starts testing here, finds bug...
fixed here
QA resumes testing here Merge feature branch to release branch
again
Good thing we branched.
None
None
And finally, it’s ready for release!
After the release is done, code is shipped, everyone is
happy...
None
But wait, someone decided to kill Feature B two days
before release! WHAT DO WE DO?
We burn the office to the ground.
Not an option?
Good thing we branched.
None
Delete the release branch!
Create a new release branch! QA resumes testing with new
release
That was easy.
Good thing we branched.
None
Oh snap, we need to start on the next release
RIGHT NOW
None
Good thing we branched.
None
got the theme yet?
The Rules • All work is done in feature branches
• All release branches must be branched from master • Master contains only released code
An Important Note • Merge direction is critical to keeping
code isolated • Releases only merge down to master or from features. • Features only merge up from master
Note the direction of the dotted lines
Any Last Thoughts?
I’m glad you asked
Use GIT