About
tarn started as a replacement for a fragile pile of rsync and cron on a home file server, and stayed small on purpose.
Scope
It snapshots a local directory to another local path. That is the whole feature set, and it is meant to stay that way.
Explicitly out of scope:
- Network transports — pair it with rsync, ssh or a mounted share.
- Encryption — use the filesystem or block layer underneath.
- Deduplication across unrelated files. Hard links cover identical files between snapshots; content-defined chunking does not fit in a tool this size.
- A GUI.
Stability
The on-disk layout has been stable since 0.5. The index format changed in 0.7 and
is upgraded automatically; downgrading afterwards requires deleting
tarn.index, which only costs one slower run.
Command-line flags follow semantic versioning. Anything documented here will keep working within the 0.x series unless a changelog entry says otherwise.
Testing
The test suite runs against ext4, xfs and btrfs on Linux, and ZFS on FreeBSD, including deliberately interrupted runs to confirm no partial snapshot is ever published under its final name.
Licence
ISC. Source tarballs ship with the full text in LICENCE.
tarn --version and the filesystem type
of the destination.