about:me
Marcos Placona

Decentralized
Branching Strategy

Decentralization is the process of redistributing or dispersing functions, powers, people or things away from a central location
http://en.wikipedia.org/wiki/Decentralization
The plan
Instead of only having a master branch, we introduce a "develop" branch. this becomes the main branch AKA "the integration branch".
Any automatic nightly builds are built from this.

Supporting Branches
- Feature
- Release
- HotFix



marcosp @ ~/Projects/www/www.hostelbookers.com
$ git checkout -b jira-1234 develop
$ git add <some-file>
$ git commit
marcosp @ ~/Projects/www/www.hostelbookers.com
$ # many more commits
$ git pull origin develop
$ git checkout develop
$ git merge some-feature
$ git push
$ git branch -d some-feature
Nitty gritty


$ git flow feature start homepage


From the top - Feature
John & Mary start working on new Feature branches

maryb @ ~/Projects/www/www.hostelbookers.com
$ git flow feature start jira-1234
From the top - Finishing
A few git commit later, Mary is ready to finish her feature

maryb @ ~/Projects/www/www.hostelbookers.com
$ git flow feature finish jira-1234
From the top - Releasing
Once Mary's peer code review has completed, she begins a Release

maryb @ ~/Projects/www/www.hostelbookers.com
$ git flow release start v0.0.34
More on semantic versioning: http://semver.org/
From the top - Finishing
Mary has commited any last-minute bugs and bumped up the system's version. She will now finish the Release

maryb @ ~/Projects/www/www.hostelbookers.com
$ ./bump-version.sh 0.0.34
$ git flow release finish v0.0.34
From the top - Problem
QA has found an issue in Mary's release. It requires a hotfix

From the top - Problem
Mary starts a hotfix branch off master to address the reported issue.

maryb @ ~/Projects/www/www.hostelbookers.com
$ git flow hotfix start myfix
From the top - Problem
With this issue now fixed, Mary is ready to merge it back.

maryb @ ~/Projects/www/www.hostelbookers.com
$ git flow hotfix finish v.0.0.35
Commands

What have we done?
- Enabled one or more developers to work on a feature
- Allowed them to independently ship that feature
- Allowed for hotfixes to exist at any time
- Versioned our application to allow for continuous release

Where to go from here?
- GitFlow - A successful branching model
- Atlasian - GitFlow Workflow
- Gitflow - Cheasheet
- Gitflow - Installation

Image Credits:
https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
http://danielkummer.github.io/git-flow-cheatsheet/
Questions?

Branching Strategy
By Marcos Placona
Branching Strategy
- 764