Under git’s model, there will be as many ‘versions’ of the book as there will be authors.
This is not necessarily true; you can organise your project that way, but you don’t have to. There’s nothing stopping you from maintaining a canonical version and asking contributors to do pull requests, or even just giving them push privileges. True, there’s also nothing stopping anyone from forking the project and doing what they want with their version, but it seems to me that short of really Major Creative Differences, most who are interested enough to contribute in the first place will want to contribute to the main branch. Just because Git doesn’t treat any branch as privileged doesn’t mean humans won’t. :)
People don’t have to ‘announce’ their branches on github, and even seperate github branches can push/pull to each other. However, it’s true that in practice a lot of projects wind up having some kind of community-selected ‘mainline’ branch. Linux is a good example of this.
I don’t think Linux is an example of this at all. If I’m not mistaken, the “mainline branch” of the Linux kernel has always been controlled by Linus Torvalds, not by the community in general; and if you wanted to create your own version of Linux, you wouldn’t be allowed to call it “Linux”, because Torvalds owns the trademark on that term.
This is not necessarily true; you can organise your project that way, but you don’t have to. There’s nothing stopping you from maintaining a canonical version and asking contributors to do pull requests, or even just giving them push privileges. True, there’s also nothing stopping anyone from forking the project and doing what they want with their version, but it seems to me that short of really Major Creative Differences, most who are interested enough to contribute in the first place will want to contribute to the main branch. Just because Git doesn’t treat any branch as privileged doesn’t mean humans won’t. :)
People don’t have to ‘announce’ their branches on github, and even seperate github branches can push/pull to each other. However, it’s true that in practice a lot of projects wind up having some kind of community-selected ‘mainline’ branch. Linux is a good example of this.
I don’t think Linux is an example of this at all. If I’m not mistaken, the “mainline branch” of the Linux kernel has always been controlled by Linus Torvalds, not by the community in general; and if you wanted to create your own version of Linux, you wouldn’t be allowed to call it “Linux”, because Torvalds owns the trademark on that term.
How does that contradict what I said?
To me, your post seemed to imply that the mainline branch of Linux is selected by the community rather than by Linus Torvalds.