branchless development (2015)

19 points by quobit


arxanas

Trunk based development is a more coherent explanation, although OpenBSD does something a little different. We don’t cherry pick changes from a single trunk to pull back to a release. The release is tagged, and then it’s done.

I think the approach in this article is still just trunk-based development. The original link in this paragraph itself links to https://trunkbaseddevelopment.com/, which defines it as

A source-control branching model, where developers collaborate on code in a single branch called ‘trunk’, resist any pressure to create other long-lived development branches by employing documented techniques. They therefore avoid merge hell, do not break the build, and live happily ever after.

That criterion seems to apply here; I would argue that the release strategy is orthogonal to the version control strategy.

doug-moen

I've worked at a couple of companies where we did branchless development (using a small team who were in constant communication) and it was very productive.

My last company used branches, and merging all those long term development branches at the last minute, just before the major release, was a huge productivity drain and a scheduling risk.

amro

From the title I thought it would be more about managing changes without branches. Maybe I'm missing something but I don't understand how this is different given the motivating example about merging. Commits conflict just as easily as branches. A commit can sit in review (or on someone's computer) just as long as a branch, and have just as much trouble applying on main. I also don't know that anyone wants long lived branches. A statement like:

The solution is to bring all the code together as early and often as possible.

makes sense but isn't really all that actionable, "as possible" is doing a lot of lifting. It's like saying code should as few bugs as possible.

And that's also assuming that changes are uncontroversial: usually when there's a long running branch in an open source project, it's because it's not ready to be merged.

Riolku

How do code reviews work in branchless development?