git bisect saved my day !

This morning one of the Jenkins job went red, 5 tests were failing, and it was very difficult to find out which commit caused the break (69 commits were concerned), I used git bisect to run maven tests to find the guilty one. Here is a quick howto:

  • find a stable commit (in my case it was 2ea34cf09cc83804cdcc445476bfb597c617a034)
  • write a short script (myScript.sh) allowing you to run the tests:
#!/bin/sh
 mvn -f path/to/my/pom.xml -Dtest=MyTestClass test
  • git bisect start HEAD 2ea34cf09cc83804cdcc445476bfb597c617a034
  • git bisect run ./myScript.sh

That’s all, in a few runs (6 in my cases), git found out the commit causing the test failure, a simple git revert and tests were back to green !

dotfiles or easily manage your shell environment

Like many terminal geek, I have a bunch of dot rc files allowing me to configure my environment. While this is a very powerful way to setup an environment, it is painful to log in a machine and set it up like you are used to, you often discover too late your favorite alias is missing.

I found a nice way to manage this thing by browsing the github account of one of a man coming frequently to the Tours Java User Group meetings. It is commonly called dotfiles and can not be better named I found.

I forked the repository to customize it to my needs, it is now possible to define aliases and to configure the shell on a per machine basis.
To install, you will only need ruby and rake (manual install is also possible by symlinking the files) :

  • cd; git clone git://github.com/CedricGatay/dotfiles.git .dotfiles
  • cd .dotfiles; rake install
  • logout and login, or source your .zshrc / .bashrc

  • Please notice that I am a zsh user, the bashrc file provided should work but it will surely need some fixes. There is no better way than digging into the source to understand and adjust it.