Commit early and often, that's what I say. It offers measurement and accountability. If I make a bug fix or create a feature and check it in, and things break, I know what caused the problem. If I check in 512 unrelated tasks all at the same time, and things get fucked up, then I have no idea where to point my finger. For that matter, I might even question whether things are really fucked up or if they are now working by design because of all of the changes.

Checking code in small chunk at a time ensures measurement and accountability. I guess that's why congress always lumps 512 issues together into one bill, even though they are utterly unrelated. Who in congress would want to possibly be measured or held accountable?

And you must go check this out: The response Tim got from his senator inspired my post.