[$] Merkle trees and build systems

In traditional build tools like Make, targets and dependencies are always
files. Imagine if you could specify an entire tree (directory) as a
dependency: You could exhaustively specify a “build root” filesystem containing
the toolchain used for building some target as a dependency of that target.
Similarly, a rule that creates that build root would have the tree as its
target.
Using Merkle
trees
as first-class citizens in a build system gives great
flexibility and many optimization opportunities. In this article, guest author David Röthlisberger
explores this idea using OSTree,
Ninja, and Python.

Source: LWN.net – [$] Merkle trees and build systems