Wednesday, January 30, 2008

Git-ty up (Part 1)

2 days ago I was introduced to git, a distributed version control system (DVCS). A DVCS basically creates a copy of the repository on your local PC allowing you to work without access to the main server. You can do everything you need i.e. create new branches, tags, etc all locally. Especially useful to those working via laptops on the go. There have been opinions on VCS and DVCS even by Linus torvalds himself. In fact, in there was a guy in Drupal groups who did an evaluation on git. A few days prior to discovering git, i was reading up on Bazaar, another DVCS system sponsored by Canonical, the creators of Ubuntu. After trying out git and comparing it with SVN, here are my personal opinions on it :-

  • + Git is extremely fast. Syncing with the server was significantly faster than via SVN.
  • + Git uses SSH by default so no extra tunneling to secure your connection is required. This also means that user authentication is simplified whereby only uses who have their public key can even attempt to connect.
  • + Branching is supported natively.
  • + There is only 1 place where details of your files are stored, in .git, which, unlike SVN stores it in each folder. This also has the benefit of less space being used.
  • - Learning curve is slightly higher than SVN (took me longer to get a working copy with Git than SVN).
Don't get me wrong, but once you get your head wrapped around how and what Git does, it's actually pretty easy and fast to get things done. In my next post, I'll outline the steps I used to get Git working.

No comments: