Source Control In A Binary File Environment

The year is 2009 AD. Development is entirely occupied by the Text File Environment. Well, not entirely … One small village of indomitable Coders still holders out against the invaders.

(Paraphrased from that most excellent of stories, the Asterix series)

Source Control In A Binary File Environment I work with Binary files. That’s right. And I’m okay with that.

However, as with that small village of indomitable Gauls, it’s a big world of text-editing coders out there.

If you fire up SVN or CVS or VSS (three letters seems to be the norm), they are built around having many developers working on text files and who want to merge and branch and slice and dice. Fancy stuff.

Source Control with Binary Files just doesn’t work the same, inherently.

“Yeah yeah” You say. “Stop boring me and being lame. We all know that.”

Actually, I had head knowledge of this truth for a long time, but until the last week when it was tested, I truly did not _know_.

We have a small development team, but it’s larger than one. There are three of us who work with a development tool that creates binary files. Sure, there are source files that are text, but we don’t work IN them, usually.

Circumstances changed over the past couple of months, so that we had to implement a serious (not just copy and paste backups, which I do with great gusto, having retentive folder structures and the whole kit) source control solution.

Having used Tortoise SVN for a couple of years for myself, I put my hand up to implement that.

It worked, until the “multi” part of multi-developer kicked in.

It failed big time.


Because of two reasons:

– I didn’t know Tortoise SVN well enough. All my limited experience had been single-user. We needed a solution that would work multi.

– I did not ask the right questions. Yes, SVN can handle what we need (explanation of that coming). But I didn’t ask the right questions when doing some research into it to find out HOW to get SVN to work.

The big problem was that, out of the box, Tortoise SVN doesn’t stop you from committing files other people are working in.

Yes, it allows you to lock a file. And yes, you can make it work this way. But this requires more knowledge and understanding than I had at the time.

So we turned to Visual Source Safe (the VSS from above).

Out of the box, after a nice MS wizard, we populated the repo and assigned our working folders. It makes all the files in the repo read-only. Which means our “app” files are read-only. Which means we’d actually have to make the decision to “UN” read-only them before we could get around the problem. And that step is one big wall in the way of accidental code loss.

What’s my point?

If you develop with binary files, in a multi-developer environment, make sure your Source Control implementation stops you working on a file unless you’ve checked it out.

Installing Windows 7, Even A Monkey ..

Windows 7 Over the past couple of days I’ve put myself through installing the Windows 7 RC.

Apart from one grossly stupid moment of my own doing, it’s been a fantastic experience.

If there was a single word I could give about Windows 7, it would be:


I’ve gotten a few tips together in this experience.


  • Get an External Hard Drive (and BE PATIENT).
    • I picked up a Terabyte one from JBs. While the copying of files can be stupidly slow (especially if you’re using Vista), it’s worth it. I’ve got a lot of potential and actual money on my Development Laptop (DevTop, just because).
    • I lost my 8G music collection because I was too quick to delete folders without waiting to see what I’d forgotten _about_ said folder.
    • Makes me cry on the inside AND outside.
    • Also, I’m not sure about plugging my iPhone in. It’ll Synch, which is bad. It’s currently got my latest music on it. The music that doesn’t exist anywhere else.
  • Be courageous.
    • Especially if you’re running Vista, and you’re a Developer, MAKE THE LEAP.
    • The Windows 7 installer makes some really intelligent decisions, the best by far being to back up NOT ONLY your Vista (or other) Windows folder, but all of the “windows” folders throughout the system. Users, Documents, etc etc. Very handy.
  • While Installing, make a list of essential programs you remember.
    • I found it a good experience to go from memory. Why?
      • Because it removes the clutter. Only install what you remember using a lot. The other stuff will come.

My Important List

That’s what I’ve got so far.

And there you have it. Tonight will be my first foray into some serious development, using Clarion 6. Have had a few gotchas implementing that as well. Being that Clarion 6 is a 16-bit IDE doesn’t help so much :)

Windows 7 .. Tip of the hat and kudos to the team!