I am completely switching for freelancing and I wanted to maintain my client codes in a Version Control system, ideally Git, SVN & Mercurial What’s is the best?
I would opt for a distributed VCS. So no SVN.
Why?
- You don't need a server.
- It's easier to share code without giving access to your repo
- You can do commits without ruining code for everyone
EDIT:
- with SVN you have a lot of .svn directories scattered in your filesystem. I like the way Git handles that better. It's easier to copy directories without the VCS-information.
EDIT END.
See http://www.youtube.com/watch?v=4XpnKHJAok8 about Git.
I personally use Git and have no idea about Mercurial.
At work I have to use SVN and I started to hate it since I switched to Git.
Hope this helps...
There is no such thing as "the best SCM".
By all means give both Mercurial and Git a try, as they are both distributed and have very similar capabilities. Don't even bother to read reviews about which is best, simply play with them and figure out which works best for you.
If you're using it on your own, it really doesn't make that much difference. As important is where you keep the code - is it just on your machine on a remote repository somewhere? I use SVN with Google Code - I think that's only for open source, but there are plenty of others available.
I tried Git and found it more work than SVN, with little benefit if you're working alone - but maybe that's because I'm a Windows guy who used to GUIs!