Patch Set 3:

In case of equals(Object) implementation. I rewrite it and now it is more readable. The main idea of comparing 'baseCommit' is that, when obj.getBestCommit() is null then also 'local' 'baseCommit' should be null. When obj.getBaseCommit() isn't null it should be same as 'baseCommit'. I hope that I didn't miss anything here ...