Read the Diffs

Tuesday, February 3rd, 2009 at 11:34pm

Tonight I went to the camera club meeting and I have some thoughts to post about that, but right I know I’m going to mention a post from one of the blogs that end up in my Inbox: Read the Diffs.

A few years ago at work we setup our CVS repository (it’s not shiny, but it does what we need it too and there are other issues in the team to address before the choice of revision control) to send an email whenever a commit is made. Instead of spamming everyone in the dev team, the email actually ends up in an NNTP group for people to check as required.

At least once a day I use Thunderbird to scan through the message and diff of each commit so I can be both aware of what is changing and to pick up things that might be problematic. I can be fairly confident when I say that I am the only one who does this. There used to be one or two others, but they moved on.

So when I saw Eric’s post I got a nice warm feeling to know that I am not alone in thinking that it is a good idea to know what is happening to the code.

Tomorrow is our weekly dev meeeting (with cake!) and I am going to recommend that everyone in the dev team looks at the commits everyone else is making. As well as the technical benefits that Eric mentions, I believe there are benefits in relation to the revision control process that can arise by simply making the commits more visible.

These include:

  • Making sure that the commit message efficiently communicates to others in the team why the change is being made
  • Committing files in batches with the same message (they end up in the group as a single email and all the diffs attached) instead of as lots of little commits with slightly different messages (because they have different typos each time they type it)
  • Not commiting multiple changes with an overly broad message (we have discussed not doing this, but it hasn’t sunk in)

An example of the last one that really annoys me is a commit of multiple files that has a commit message separated into points, but the points only relate to some of the files. The dev has spent the time working out the separate points, but then they negate the benefit of that by lumping them into a separate commit. So when you look at the diff it can be difficult to determine the reasons behind the actual changes as only one point may relate to the change in that file, or different points relate to different changes in the file.

Hopefully I can report back in a few weeks if the commits are being read, and if there is any improvement in CVS usage.

Tagged with: , ,