Question: I'm running Ubuntu on VM and MsysGit on Vista. I'm using Github as the git host and tracking the same repository from Msysgit too.

When I pull all the changes from Mysysgit and do the "git status", it lists the uncommitted changes. But when running "git status" from the Ubunutu, its all clean. No uncommitted changes.

Why is this happening in Msysgit.
Both version is 1.6

Answer: 
Given that you deal with immutable objects with readonly fields, I would say that you have hit the one case when I don't find public fields to be a dirty habit.
I know you feel kind of dirty doing this, but it isn't uncommon for rules and guidelines to get shot to hell when performance becomes an issue. For example, quite a few high traffic websites using MySQL have data duplication and denormalized tables. Others [go even crazier](http://bret.appspot.com/entry/how-friendfeed-uses-mysql).

Moral of the story - it may go against everything you were taught or advised, but the benchmarks don't lie. If it works better, just do it.