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
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
Microservices Platforms: When Team Topologies Meets Microservices Patterns
cer
PRO
0
520
Eloquentを使ってどこまでコードの治安を保てるのか?を新人が考察してみた
itokoh0405
0
3.2k
競馬で学ぶ機械学習の基本と実践 / Machine Learning with Horse Racing
shoheimitani
14
13k
GeistFabrik and AI-augmented software development
adewale
PRO
0
180
AIを駆使して新しい技術を効率的に理解する方法
nogu66
1
660
スタートアップを支える技術戦略と組織づくり
pospome
8
11k
Phronetic Team with AI - Agile Japan 2025 closing
hiranabe
2
670
オフライン対応!Flutterアプリに全文検索エンジンを実装する @FlutterKaigi2025
itsmedreamwalker
2
280
CloudNative Days Winter 2025: 一週間で作る低レイヤコンテナランタイム
ternbusty
7
1.7k
歴史から学ぶ「Why PHP?」 PHPを書く理由を改めて理解する / Learning from History: “Why PHP?” Rediscovering the Reasons for Writing PHP
seike460
PRO
0
170
詳細の決定を遅らせつつ実装を早くする
shimabox
2
1.3k
AIと協働し、イベントソーシングとアクターモデルで作る後悔しないアーキテクチャ Regret-Free Architecture with AI, Event Sourcing, and Actors
tomohisa
2
8.9k
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Documentation Writing (for coders)
carmenintech
76
5.1k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
How STYLIGHT went responsive
nonsquared
100
5.9k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Designing Experiences People Love
moore
142
24k
What's in a price? How to price your products and services
michaelherold
246
12k
Building an army of robots
kneath
306
46k
jQuery: Nuts, Bolts and Bling
dougneiner
65
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