One thing that I have picked up as a good habbit is when to check source code in. I remember a day when I would check out in the morning and check it in when I went home.
The best habbit I have gotten into is doing a checkin when the code is in a working state. This could be when all of my tests pass or when a manual test is successfull (if you don't have tests or good coverage). I think this probably happens more due to the use of a continuous integration server that you can get feedback on code you just commited very quickly.
I now find myself doing a checkin every 15-20 minutes which has several bennefits:
-Other people on my team never run into something where their change and my change is not compatable. This is due to short changes so we are only 15-20 minutes out of sync and working on seperate pieces.
-If I really screw up something. I can rollback my code to a point in time and loose very little work
-I get quick feedback on my changes from the build server. I know that something I did in the last 15 minutes broke the build and not something I did over the last 1-3 days.
-It keeps me focused on writing the smallest code to get something working and to not leave loose ends laying around