A Clarification About Trunk Based Development.
The first time I heard the term Trunk Based Development was in relation to Google's development process, but I'd used it for several years at Google. Over the years I've noticed a misunderstanding about Trunk Based Development. Some users of Git seem to believe that it means committing directly to trunk. This misunderstanding has to do with Google's source code control system, Piper. Piper is a descendent of Perforce. Perforce has the concept of a changelist. A changelist is a group of files that will be committed together as an atomic unit. When you develop with Piper, you group your modified files into a changelist, and then you send the changelist out for review. Once your changelist passes review, it gets committed. Here's where the misconception comes in. The documents describing Trunk Based Development explicitly states that the process doesn't use branches, but branches are a different concept in Piper, and they are distinct from changelists. Git uses br...