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.


5 thoughts on “Trebuchet diff

  1. rsync’s batch mode would also work. You give rsync the two filesystems, it writes a batch update file, to distribute and apply to your clients.


  2. Tobu – that’s a damn fine point. I’ll make a comparison re performance, memory and compression. If rsync batch mode does the job, we have less code to maintain. Win.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s