Git Branching for Agile Teams
Helping agile teams be awesomemoar^
@svenpet
@svenpet
Sven Peters !
Atlassian Ambassador & Geek
Guten Morgen
Housekeeping
Submit Qs for A!
Smile, we’re on camera.
Tweet to #code4acause
1
2
3
Agenda
Git + agile = BFFs
Branching models for agile teams
Incorporating best practices
Trade-offs to consider
1
2
3
4
Why Git + Agile?
Build in narrow vertical slices
DATA B A S E
B AC K E N D
F R O N T E N D
T E ST I N G
Time
“big bang” launch
DATA B A S E
B AC K E N D
F R O N T E N D
T E ST I N G
MVP launch
1
potentially shippable, even without this piece
Build in narrow vertical slicesI have a roof!
Make releases a non-eventjust a few dependencies...
2
Make releases a non-event
Chaos!
look Ma, a goat!
I do my thing, too
I do my thing
Hoarding
Isn‘t it ironic?
A Few Words About Git
Branching & merging is hell
In Subversioneverybody stops work until merge is done
waiting until implementation is done
afraid that the build will fail
Branching & merging is a breeze
In Git
Branch-per-Issue Workflow
Keep the main line clean
dev branch = isolation chamber
Clarity & traceability
Branch-per-Issue Workflowfor SaaS teams
sgd-IRKD-30
sgd-IRKD-45
master
A branch for every issue
fortunately, no goats here
sgd-IRKD-30
A branch for every issue
master
sgd-IRKD-30
God-like admin rights optional
A branch for every issue
master
sgd-IRKD-30
A branch for every issue
master
sgd-IRKD-30
A branch for every issue
master
sgd-IRKD-30
gatekeeper
A branch for every issuestill no goats!
Using an Integration Branch
sgd-IRKD-30
sgd-IRKD-45
master
Surprise!
sgd-IRKD-30
sgd-IRKD-45
master
Using an integration branch
integration
sgd-IRKD-30
sgd-IRKD-45
master
Using an integration branch
integration
Branch-per-Issue Workflow
for installed app teams
sgd-IRKD-30
master
Multiple-version support
v 1.2
v 1.1
sgd-IRKD-30
master
Multiple-version support
v 1.2
v 1.1
sgd-IRKD-31
sgd-IRKD-30
master
Multiple-version support
v 1.2
v 1.1bugfix-IRKD-32
master
Multiple-version support
v 1.2
v 1.1
bugfix-IRKD-32
master
Multiple-version support
v 1.2
v 1.1
manually
automatically
https://bitbucket.org/durdn/automatic-merge-hook
The Atlassian Way
Continuous Integration &
Peer Review
Running CI on dev branches
all active branches are under test
1
2
3
Running CI on dev branches
Clone master’s CI configs
Jenkins plugin or Git hook
bitbucket.org/tpettersen/git-ci-hooks
Running CI on dev branches
Running CI on dev branches
sgd-IRKD-30
master
v 1.2
Peer code review
1
2
3
Create request via UI or git request-pull
Review, revise, rinse & repeat
Approve & merge
Peer code review
Additional Considerations
It’s not “pure CI”beware of goats
Dark features
Q & A
#code4acause
@svenpet
Sven Peters !
Atlassian Ambassador & Geek
THANKS
Top Related