Mac OS X and Subversion

Non-geeks can skip all of this! Subversion is a very nice version-control system which fixes many of the problems with its predecessor, CVS. You can use, for example Martin Ott's packages to get an up-to-date copy for your Mac. There's some support for it in XCode, and in general it works very nicely on the Mac as long as you don't mind using the command line. I haven't found a Mac GUI for it yet that I like; the best is SvnX and frankly, that's not saying much, though I applaud Dominique Peretti for doing something.

Anyway, there is one thorny issue on the Mac. Many things which appear to be files in the Finder are in fact directories - 'bundles', they're officially called. In the past, they were mostly just used for applications, but an increasing number of document formats are now bundles as well. Apple's Pages and Keynote packages are examples.

When you check a directory tree out of Subversion onto your local disk, a hidden '.svn' directory is created in each directory in the hierarchy. That's where subversion keeps its stuff. Having this in a document bundle does not upset an application; they normally just ignore it. But some apps assume (reasonably) that they're the only ones interacting with the bundle. If you open a document in Pages, change something and then save the doc, it will overwrite the directory with a new one and in the process delete and .svn directories within it, which will confuse Subversion if you then try to check it back in. The latest version of Keynote doesn't do this; it reuses its old directory, but it's unusual in that respect - most things which create bundles will cause a problem if that bundle is managed using Subversion.

There are manual fixes for this (see 'Things to watch out for' at the bottom of this page, for example), but it's very inconvenient if you do this often. Especially if your bundle includes multiple subdirectories because you'll need to do it for each one.

Probably the right way to fix this is for Subversion to be able to view certain directories as untouchable, and store the information about them within the .svn directory of the parent. An alternative would be to tar and un-tar all such directories behind the scenes and check them in and out of the repository as if they were a single file. I discovered a thread from about three years ago discussing this, but I don't think anything was done.

I'm really hoping that Apple, having made a major step forward in file systems by making them searchable, will be the first to introduce decent version control at a fundamental level. Well, the first since VMS, anyway.

Interesting patents - the Munch Box

munch box Here's one I came across by accident. In 1979, Susan E Brownlow patented a small 'cool box' in the shape and size of a cigarette packet. There's a removable section at the bottom which you can put in the freezer, and the box is insulated so that you can carry it in your pocket and the contents are kept cool.

The motivation? People giving up smoking need something to chew on which doesn't include too many calories. Carrot sticks are apparently good. But how do you carry carrot sticks around with you all day and keep them fresh and crunchy?

Florida madness comes to the UK

Oh dear. Someone in the UK has been prosecuted for using an open wifi connection. Three questions occur to me here:

  • If you connect to someone's network by accident, like my aunt, are you liable for prosecution?
  • In any incident, does the owner of the network have to press charges?
  • Is there a way to say 'I believe in sharing my resources and any passer-by is welcome to use this network?' We should establish a convention, perhaps like including 'open' in the network name.

What Business Can Learn from Open Source

Paul Graham comes up with very good essays in an annoyingly consistent way. His recent one entitled What Business Can Learn from Open Source is particularly interesting because it isn't about software.

Print it out, find a comfy chair and a good cup of coffee, and enjoy...