Two great posts on build process

The Build Doctor (a.k.a. Julian Simpson) has posted two really interesting entries.

The first says not to store big binary files in your VCS. Boy do I agree – we have a number of big binary files and they cause headaches galore. One he doesn’t mention that we tripped over recently: keep checking in a multi-megabyte file and eventually the corresponding CVS file grows to the largest size your filesystem will support (in our case, two gigabytes), preventing all project activity. That one required some nasty repository hacking (the other choice was switching filesystems to one that handles larger files, but that would have meant developers playing Braid or something while they waited hours for us to figure out how to fix the repository). A question for him: how are you supposed to handle file types like Excel that can’t be converted to an all-text form, but that need to be versioned?

The other article describes a few very interesting software build patterns. The checkin gate seems particularly relevant to us, as developers have told me they’d like a sandbox where they can run tests before checkin, without hammering their own machines.