Their point is that they attach data to nodes (data(node) = hash(node + (data(c) for each child c of node))) and can therefore compare hashes at the roots[1] to quickly determine which dependencies have changed and whether changes clash.
Perhaps you’re complaining about it not being a tree because there can be multiple roots which seems fair enough.
[1] I think there are many ‘roots’ as roots are going to be leaf build targets like various executables or test results
Perhaps you’re complaining about it not being a tree because there can be multiple roots which seems fair enough.
[1] I think there are many ‘roots’ as roots are going to be leaf build targets like various executables or test results