Last week, I did a comparison between the upcoming SCM package: GIT (http://git-scm.com/) and SVN (http://subversion.tigris.org/). We are planning to switch to GIT, but we wanted to make sure it should be useful to switch.
In my opinion, these are the advantages:
- with GIT, you're moving from a centralized architecture to a distributed architecture. This means we can easily create GIT repositories all over the world and merge them with very commands. It's not necessary to be connected to one single SCM server. You can get data from other repositories using the pull commando, or you can push your data to the other repository
- it's so much easier/faster to branch and merge
- it's so easy to create a local repository and to start working. I even tried ViewGIT (http://viewgit.sourceforge.net/) which is a repository browser. The installation & configuration was made in just 5 minutes work
- there's no sh*t about every folder having a .svn folder ... the root folder contains a .git folder, and that's it :-)
- commands are executing very fast
- working with a distributed architecture seems nice. But in my company, we only need the client/server model. So every time we want to commit something, we have to:
- add the file to the local repo
- commit the file to the local repo
- push the new revisions to the central repo
- working with a centralized architecture seems to be going faster
- add the file to the central repo
- commit the file to the central repo
- I tried setting up a central repository http://gitorious.org/, but I had a lot of trouble configuring it on Ubuntu. It really looks nice, but I wasn't convinced the central repo was working fine
- SSH keys are needed to commit to the central repository ... which is great for Linux users, but you need some extra configuration for Windows clients
- GIT is not fully supported in certain IDE's, or Ubuntu packages, etc, ...
GIT is so cool! But I'm not convinced to switch now from SVN to GIT. All developers will need an extra training, but I can't really find the advantage to switch.
But, I'm pretty much convinced GIT is nice for teams/projects were developers are located everywhere in the world ...