Would you switch a SVN hosted C# project (2-5 developers) to GIT? Does it have any advantages that make it worth the extra effort?
I doubt it, but look for arguments for both sides.
Would you switch a SVN hosted C# project (2-5 developers) to GIT? Does it have any advantages that make it worth the extra effort?
I doubt it, but look for arguments for both sides.
I'd say no because the GUI tools for GIT are really primitive at this point.
Svn has VisualSvn, TortoiseSvn which make Visual Studio and Windows Explorer integration really smooth. IMO the "ease of use" of SVN tools far outweigh the distributed source control and better merging functionality that GIT provides.
Now this is because I have no expectations of working on a source control project without having a connection to the source control repository. If your spending a lot of time on a plane or on a boat ( shortay! ) I'd give GIT a try and see if the command line tools are enough.
I moved all my work from SVN to Git for a 2 dev shop. TortoiseGit works pretty well on Windows, and the gitk tool just makes me a happy person.
You'll still have to get used to the git in shell mode on Windows for some tasks, but for the most of your daily workflow, the Git GUI, gitk, and TortoiseSVN will get you there. The quality of the branching / merging system and local private histories to quickly bang something out are very, very worthwhile to me. I also kind of like skipping away from version numbers and being able to push "clean" stuff to the central repository from my messier personal branches.
Well, that really depends on how your developers work and whether or not they are happy with the Subversion setup as it is. Are you doing lots of merges and swearing over Subversions bad merge support, then Git will probably make your life easier.
What annoys me a little is that many people seem to think that the major benefit of Git and other DVCS is that you can do offline development. That's only a small side-effect of the real feature of having the entire repository on your local machine so branches, merging, etc. can be done without contacting the server. In case of Git you can switch between branches in a matter of seconds, when it takes several minutes in Subversion.
If you're developers are accustomed to and like to learn new things, then converting to Git will probably not be much problem. On the other hand, if you have developers which like how things are and don't really like when their work environment changes, then you're probably better of staying in the Subversion world.
What made me move away from SVN was its slowness over internet. When the repository is even 100ms away, simple operations such as committing and seeing log history take forever (tens of seconds). With Git they take fractions of a second.
Offline work is also great. One day when my university's network was down, I could still commit and do work uninterrupted on my laptop. I can push the updates to the central server some time later, when the feature I was working on is complete and I have internet access.
For open source projects, DVCS is a must, because it allows new developers to begin hacking right away, without any need to give them write access to the central repository. It lowers the entry for new developers to join the project.
I wrote recently a blog post about my experiences on converting SVN repositories to Git. It might help you, if you decide to move away from SVN. Also remember that with git-svn individual developers can use Git on their local machine while the central repository is an SVN repository.