Having recently been exposed to several presentations and articles aggressively touting the superiority of feature toggles over feature branches, I decided to examine the two techniques a little more closely.
Defining terms: feature branch and feature toggle
A feature branch is a fork in the history of a codebase allowing concurrent development of different features on different version control system (VCS) branches. A feature toggle is a conditional statement that enables or disables a particular feature. All feature development is conducted on mainline, and when features are ready to be deployed the toggle is changed to enable the feature.