How often should I commit changes to source control ? After every small feature, or only for large features ?
I’m working on a project and have a long-term feature to implement. Currently, I’m committing after every chunk of work, i.e. every sub-feature implemented and bug fixed. I even commit after I’ve added a new chunk of tests for some feature after discovering a bug.
However, I’m concerned about this pattern. In a productive day of work I might make 10 commits. Given that I’m using Subversion, these commits affect the whole repository, so I wonder if it indeed is a good practice to make so many ?
Anytime I complete a ‘full thought’ of code that compiles and runs I check-in. This usually ends up being anywhere between 15-60 minutes. Sometimes it could be longer, but I always try to checkin if I have a lot of code changes that I wouldn’t want to rewrite in case of failure. I also usually make sure my code compiles and I check-in at the end of the work day before I go home.
I wouldn’t worry about making ‘too many’ commits/check-ins. It really sucks when you have to rewrite something, and it’s nice to be able to rollback in small increments just in case.