Friday, May 14, 2010

Commit early, commit often!

A huge commit was made in a log4j branch yesterday. The followup discussion:


"I haven't had a chance to review the rest of the commit, but it seems like a substantial amount of work that was done in isolation. While things are still fresh, can you walk through the whats in this thing and the decisions that you made."


"I didn't want to commit code until I had the core of something that actually functioned. I struggled for a couple of weeks over how to attack XMLConfiguration. [...] See below for what I came up with."

Followed by ten bullet points about the changes made. Unfortunately the only thing our version control system now knows about these changes is "First version".


  1. Good thing you can adjust revision logs after the fact in Subversion: just edit the svn:log property on the revision. Anyone with commit on the directory can do this.

  2. [...] probably heard it before: “Commit early, commit often“. It applies to teams, and it applies to [...]

  3. Yeah, this kind of issue is endemic to centralized VCSs like Subversion. The only way to avoid it is to use branches for every such experimental feature (or just use a DVCS like Git and avoid the whole mess ;)