For the last five hours I’ve been ponderously deciding which flavor of version control to put on the VGDC server for the club to use next year. I set my sights on Git, Mercurial, Perforce and Subversion. We’re currently using Subversion (SVN) which has been sub-useful for a lot of the tasks we’re setting out to do. The Nextchess people have been complaining about it, and we had a pretty poor experience using it on Broadsides.
So, that leaves Mercurial, Git, and Perforce. Luckily, this question has been asked before, and I stumbled on this great overview of the topic:
I was pretty interested in at least reading about Git this morning because it’s so popular, especially with the open-source community. Both Git and Mercurial are examples of distributed version control - that is, there’s no master record of your project - the entire project exists on every developer’s computer. For a huge project with gigabytes of assets, this would be pretty terrible, but it’s okay for our needs.
I gravitated toward Perforce at first due to its familiar client-server architecture and reputation as the industry standard in version control, but proprietary applications to access the server and a 20 developer limit pushed me back toward Git. If we were developing another 3D game, I’d be pushing for Perforce, but for a 2D game with rapid iteration and development, I wanted to go with Git.
The only problem I have with Git is that it’s a pain in the ass to add new users (rsa-id handshaking business and key generation is not something that happens easily on windows computers, which most of VGDC develops on.) If there’s a simple solution for either automating key authorization through a web interface, or allowing users to log into git through their shell accounts, I’d love to hear about it.