VM has only 2 strict rules:
1. commit only code that has no compile errors
2. make sure you're on the latest revision before committing (update)
i always commited when it seemd the right thing to do :D that was usually when i had something done, but sometimes also when i wanted a safe backup before trying something funky.