Learning about Git
It has been a long time coming, but now I'm seriously starting to look at Git. Git is the content tracker used by the Linux kernel folks, initially developed by Torvalds.
At Westermo R&D we use Subversion for our daily operations and today I started migrating the software to Git. Mainly just to get a comparison of performance, storage size and to explore how we can use Git on top of svn to become more productive when working in parallel in different teams. We've tried this quite extensively before, using Subversion branches and even though it's a heck of a lot easier to use compared to CVS its strength is not in merging.
The new merge tracking feature in Subversion 1.5 and features like detection of tree conflicts in, the recently released, 1.6 helps. However, working in small teams, disconnected from a centralised server is still not possible with svn, OK sure there is svk, but honestly, doesn't that make you think of CVS and bolting on features after the fact, similar to CVSNT or OpenCVS. Intriguingly bizarre projects. :-)
The reasons for trying out Git are not only related to any short comings of Subversion, Git has lot of strong points on its own. See here for instance:
- SHA-1 hashes for each commit, makes it possible to easier detect history corruptions
- Local developer branches
- Fast branch switching
- Cherry picking commits from other branches, easily
- Stashing/Shelving, i.e. put aside things you're working on for later
I've started collecting a set of links that seem to be useful:
- Learning git-svn in five minutes
- The git-svn(1) man page
- Git - SVN Crash Course
- An introduction to git-svn for Subversion users and deserters
- How to use Git and SVN together
- A guided tour of emacs-git
- Work with Git from Emacs
- EmacsWiki:Git
I'll conclude this post with two YouTube entries, first is the, now classic, presentation by Linus Torvalds on what Git isn't... and then Randal Schwartz on what Git is....
Friday, 10 April 2009 at 16:23 | /programming | permanent link to this entry
Brief libev update
I have now updated the libev examples. It took me a while, but during that time I have been hard at work converting two of our network daemons to use libev. As of today the upcoming Westermo WeOS uses libev in both its rstpd and igmpd implementations.
Updated example code:
Enjoy, and feel free to contact me if you have any questions or comments on the code. For libev specific help I can really recommend its mailing list!
Sunday, 05 April 2009 at 23:53 | /hacks | permanent link to this entry