Skip to content

Instantly share code, notes, and snippets.

@shiftkey
Last active August 29, 2015 13:57
Show Gist options
  • Select an option

  • Save shiftkey/9779646 to your computer and use it in GitHub Desktop.

Select an option

Save shiftkey/9779646 to your computer and use it in GitHub Desktop.
Every Branching Model Is Terrible

It's only been recently that our version control systems have matured to a point where we have the freedom to think about how to collaborate with our colleagues. But we still make mistakes and suffer through bad life decisions. "Bollocks!" you might say.

Well, when was the last time you heard something like this?

  • "Version Control, you say? never heard of it"
  • "uh, what version am I supposed to be working from?"
  • "we don't use branches, they just get in the way"
  • "we're going to gate your checkins and review them"
  • "don't worry about it, just hit that merge button"

Well, your branching model should be:

  • be easy to understand
  • let developers do work with minimal friction
  • allow you to test old versions of your code
  • let you deploy without pain

In this talk, I will walk through some of the mistakes I've seen various teams make, how it hurts them (both immediately and down the track) and strategies to mitigate or avoid the pain. I'll be using Git to demonstrate some scenarios, but much of the concepts should be reusable with other version control systems.

@AwesomeGuyWhoIsAwesomeAtStuff
Copy link
Copy Markdown

TALK ABOUT 9FEAF9

@mat-mcloughlin
Copy link
Copy Markdown

Its a good idea for a talk. I think there are a lot of people out there who have been so frustrated with VC in the past that they assume complexity. Not using branches and "just hit the merge button" are two important points in my mind.

@camassey
Copy link
Copy Markdown

The implication is that there's no such thing as a completely effective branching model, and that you'll be talking about things you need to bear in mind when you're working out the trade-off for any given branching / merging decision.

OR that there aren't branching models that are really fully coherent, but that you know how to fix them :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment