Distributed Version Control is the future…

If you have been following my posts, you would have noticed that I made the decision on branching model for the web development. Usually ISP ‘s provide a lot of choices on VCS (Version Control System) – svn,mercurial,bazzar and git. I wanted to choose one that makes the dev process efficient and fast enough for frequent releases.

Having used powerful and popular commercial VCS which is centralized by the way, I was leaned towards going with svn because it is same as them except for lack of gui tools to admin, locking and painful multiple merges between branches. But it seemed to be the popular open source version control in the dev community now. But i wanted to step back and evaluate other options of git and mercurial which i’ve not used before even as a developer.

I was stumped when i attempted to evaluate git and mercurial. Really these two are DVCS (Distributed Version Control System) which is quite different from the CVCS (Centralized Version Control System) like cvs,perforce and svn. Honestly there are some basic fundamental difference between the distributed & centralized that you need to be aware of. Better explained here.

You need to first get some of the centralized concepts( the painful branching and merging) out of your brain for a while and look at DVCS in a pure mind. I’m planning to install and play with git on os/x as it looks promising among DVCS choices.

If you have sometime to kill take a look at this youtube video where Linus talks about Git. Key take away from this video is that DVCS is better than CVCS and not about the git vs other source controls.