Often trying to keep everyone on the same tree, insynch, is more trouble than
it's worth.
For one it creates a situation where everyone is waiting for the other people
to implement feature X, and then feature X never gets done.
For seconds it creates _enormous_ tension around the question of weather
feature X should be coded at all, massive arguments, etc.
Nothing gets done.
And then after that... automatic merging of patches. Breaks things in subtle
ways, you never get a stable piece of software, etc.
No one know the whole volume of the work either in their head, as everything
is changing codewise, yet nothing is getting done (just churn, because to add
a NEW feature, requires consensus, so just old features are recoded and
recoded and recoded and recoded and recoded and recoded).
That's why ChaosEsque forked off Xonotic 2 years or so ago.
Working alone is the way software can get done.
Git makes this easy: fork and don't look back!
Design by committie takes the only currency OSS has away: the fun of it.