What's your favorite Version Control System (VCS), and why?
Posted on 2011-09-22
Recently, a couple of other experts (I won't say who they I'll leave it up to then if they wish to 'fess up ) and I have been discussing which is our favourite/preferred VCS. I am an ex SubVersion user who finally saw the light and migrated myself (and my team where I work) over to Git and I have never looked back! I still on the odd occasion have to use SVN (we only migrated trunk and on the odd occasion we have to look at old branch code) and it makes me cringe!
Whilst I won't say this migration was a walk in the park it was also not that painful. Git comes with a tool that allows you to clone an SVN repo and it's pretty simple and quick. The most painful part was deciding to break our massive SVN repo into smaller Git repos; one for each project rather than all projects in one repo. This; however, was an internal design decision (it wasn't necessary just for the migration) and even if we'd not moved to Git we'd have eventually had to restructure our repo.
The nice thing about moving to lots of smaller repos are (a) I no longer have to have a mass of code on my laptop that I don't look after and (b) all our code is now fully de-coupled (we can no longer rely on things living in a specific place like we could in one monolithic repo), which means things are more robust -- although there was pain in getting to this point but it was worth the hassle.
I've never looked back since moving to Git. The workflow I get from using it is far superior (in my view) and flexible than that of SVN. Further, Git is just far simpler to use, more powerful (in terms of how cheap it is to branch and merge -- meaning I can experiment without the pain and fear of having to merge my changes (unlike with SVN).
Of course, there are also good arguments (this is where you come in!) for using a centralised VCS -- or, at least, this is what die-hard SVN/CVS/Other users firmly believe :)
So, I just wondered (and this is just for fun, so please no flaming wars!), which is your favourite VCS? Do you even use one? If not how to do manage version control? I'd especially be interested in hearing from anyone who is (forced into?) using Visual Source Safe; possibly the worse VCS ever -- I especially love the way it silently corrupts its contents, especially if you are pro using it :)
I look forward to your views... and I promise I won't let my own personal views cloud my decision when it comes to closing down and awarding points. What I'm after is some interesting and constructive discussion.
Thanks in advance for taking part :)