Over here in Google, we constantly build everything from head, to the point that every build invocation is essentially a dramatically optimized (and distributed, and limited to just transitive dependencies of your current target, but still..) “make world”. Pretty much everything is in a single repository.
As a result, we occasionally have to deal with other people breaking out code. That happens.. maybe once every few months. And we don’t need to manage divergent versions, or forget which branches we’d applied some patch to.
I’m pretty sure the non-branching workflow can only be called a stunning success.
On the note of software branching:
Over here in Google, we constantly build everything from head, to the point that every build invocation is essentially a dramatically optimized (and distributed, and limited to just transitive dependencies of your current target, but still..) “make world”. Pretty much everything is in a single repository.
As a result, we occasionally have to deal with other people breaking out code. That happens.. maybe once every few months. And we don’t need to manage divergent versions, or forget which branches we’d applied some patch to.
I’m pretty sure the non-branching workflow can only be called a stunning success.