Best screen cast on Git.

I loved this screen cast on Git and i strongly recommend this for any one. It runs for an hour and half. He goes from basics to all the way to advanced in the end. I would rate this to be one of the best screen casts. He explains it so well the internals of the git that it solidified my understanding of branching, merging and using remote repository well. Here are the links…

Best screen cast on Git.

Installing git from source on mac os/x

As usual i need control. So i’m going to install the git from source. It is pretty straightforward just like any other installation from source.

1. Download the source from here.
2. My habit is store all the source under /usr/local/src.
[sourcecode language=”bash”]
cd /usr/local/src
[/sourcecode]
3. Now extract the source into the /usr/local/src directory assuming that your tar file is in downloads folder.
[sourcecode language=”bash”]
tar -xzvf ~/Downloads/git-x.x.x.x.tar.gz
[/sourcecode]
4. cd into the extracted folder.
[sourcecode language=”bash”]
cd git-x.x.x.x
[/sourcecode]
5. Build it. I like this to be installed into /usr/local/ directory others prefer /opt/
[sourcecode language=”bash”]
make prefix=/usr/local/git
[/sourcecode]
5. Install it.
[sourcecode language=”bash”]
sudo make install prefix=/usr/local/git
[/sourcecode]

I’m used to using cheat sheets and don’t need man pages. If you need the git man pages then please see here on how to install it.

Installing git from source on mac os/x

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.

[youtube=http://www.youtube.com/watch?v=4XpnKHJAok8&color1=0xb1b1b1&color2=0xcfcfcf&hl=en_US&feature=player_embedded&fs=1]

Distributed Version Control is the future…

Branching model for web development.

Coming from a background of desktop product development with a large team, i needed to step back and look at the branching model holistically for web development with smaller team. There is a huge shift in the development process. Small team vs large team, hosting vs shrink-wrapped, planned (patching) vs organic (small and frequent changes) etc.,

I found this excellent article and the summary of this article is the best. It answers all the questions i had in my mind. I’m going with the model2. But i still need to decide on the source control to be used. It’s tough given there are too many good choices svn/git/mercurial.

Branching model for web development.