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.

2 thoughts on “Two great posts on build process”

  1. A third option to solve your 2GB file problem might have been to migrate to Subversion.

    SVN has much better binary handling – only the successive differences between binaries are stored. There are numerous tools for migrating CVS repositories complete with the change history.

    Having migrated from CVS about 3 years ago I now couldn’t live without atomic commits, commit-sets, and full history retention over file renaming/moving – essential when refactoring.

    Also updates and checkins are transferred as diffs which means the bandwidth requirements are small compared to CVS, which is a godsend for the guys in our Beirut office.

  2. Our nice new tech services person is planning a migration to Subversion soon, for these and other reasons. However, if you have a large binary file that changes frequently and substantially (even minor changes to a spreadsheet can lead to big diffs – thanks Bill Gates!), you could still easily hit the filesystem size limit.

Leave a Reply

Your email address will not be published. Required fields are marked *