Git Undo
I freely admit to being an Hg fan, but that this stuff is accepted as common practice kinda blows my mind.  What's so wrong with keeping an accurate picture of history that people do all kinds of manipulation to their history to keep from the VCS system from accurately reflecting history of development?