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…
I found these resources for getting familiar with Git. If you do have anything more or better please do leave a comment.
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.
3. Now extract the source into the /usr/local/src directory assuming that your tar file is in downloads folder.
tar -xzvf ~/Downloads/git-x.x.x.x.tar.gz
4. cd into the extracted folder.
5. Build it. I like this to be installed into /usr/local/ directory others prefer /opt/
5. Install it.
sudo make install prefix=/usr/local/git
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.
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.
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.
I’m not a gui person anymore as i work mostly on terminal on os/x just as in linux. Rather than doing a safe delete as in Linux i prefer to move the files to trash in OS/X and clean up the trash whenever i’ve sometime to kill.
mv myfile.file ~/.Trash
If you manually parse the RSS2 feed and extract the date from it you need to first know that the format of the date in RSS2 xml schema is based on RFC 822. See this link on the format of date for various rss/atom feeds.
Format of date in RFC 822 (4 digit year) is Thu, 01 Jan 2004 19:48:21 GMT.
The solution is to use the python’s core datetime object of datetime module. See the code snippet below…
str = "Thu, 17 Dec 2009 08:00:00 GMT"
dt = datetime.datetime.strptime(str, "%a, %d %b %Y %H:%M:%S %Z")
See the python documentation for the various date format directives. You can follow this approach for parsing date from rss1/atom xml feeds by compiling the date format directives based on the date format used within the feed.