"One caveat in version control that often programmers fall into is
trying too much to have a perfect versioning history. In this
situation, the developer spends too much time trying to separate
commits in semantically well described changes and attach too
well written description messages."
I plead guilty!