Trebuchet diff

It's been a few hectic weeks for me. I managed to get a flat in a really nice area of Las Palmas de Gran Canaria before I left for the Canonical Design sprint and UDS in Orlando.

I wanted to blog about my last project for Codethink which I find quite exciting. Trebuchet Diff, or tbdiff, is a pretty neat tool that Ben Brewer started, I continued and now Richard Maw is maintaining.

Tbdiff is targetted to create update images between two systems. It basically takes two directory trees and creates a binary diff for both content and the metadata. So if you remove a file, change its contents or delete it, you can record that change and apply it.

We did quite a lot of search and surprisingly we couldn't find a similar tool, the closest thing we found was dt, which just reports the differences in a fancy output format. I reckon this is a really useful tool.

Trebuchet is a subproject of the Baserock initiative inside Codethink and it aims to provide a generic framework for fault tolerant atomic/over the air updates, leveraging the BtrFS snapshot and rollback mechanism.