Earlier this month, I took a careful look at version management for Tinderbox files. My paper at this year's Hypertext conference will be about comparing spatial hypertext collections, so I was curious to see just how well Tinderbox worked with existing solutions, such as git and SVN.
Badly, it turns out. But it's not the fault of Tinderbox.
Tinderbox files are stored in XML, a plaintext format which is easy for other programs (like my Web Viewer) to load.
In theory, the Tinderbox XML files should work well with Version Management software. The tools are designed for plaintext, and Tinderbox files are plaintext. Perfect!
Unfortunately, the XML standard breaks some assumptions of version control systems. In most plaintext formats, the order of the lines is significant. Code is executed line by line, so software such as git and SVN treats the reordering of lines as a change. In some parts of XML however, the order of lines is insignificant. In those cases, changing the order of the lines does not imply a significant chance to the XML. Such changes confuse version tracking systems.
Tinderbox follows the assumptions of XML. Two saves of the same tinderbox can look very different. As a result, git and SVN get very confused. This flickr gallery demonstrates just how confused version control systems can become:
I discovered this issue in advance of Tinderbox Weekend London, where I was speaking about version history, backups, and collaboration with Tinderbox. So late on Saturday night, Mark and I had a conversation at Spoons (yeah, I know), and he offered to look into it.
Last week, I had a chance to look at beta versions of the next release of Tinderbox. These betas output consistent line order, and work smoothly with the version control systems I have tested.
(in the next post, I explain how to set up and use Git on the Mac)