4 ms·
Maybe this is unpopular. mtime and make work in non-edge cases. eg no NFS, no FUSE, no clock changes, etc. And you don't need a database of hashes.
by ape4 6y ago
Maybe this is unpopular. mtime and make work in non-edge cases. eg no NFS, no FUSE, no clock changes, etc. And you don't need a database of hashes.
- JdeBP 6y agoYou have a lot of background reading to catch up on. Start at http://jdebp.uk./FGA/introduction-to-redo.html http://jdebp.uk./FGA/introduction-to-redo.html .
- usr1106 6y agoI agree. I would estimate 90% of all Linux packages (over all distros) are based on make. Well, for the distro it does not matter, because packages are typically built from scratch and not incrementally. But everybody hacking on such a package will be affected by the mtime issues. I would claim it hardly ever happens. Of course if it happens it might cause great frustration and waste of half a day.
- adrianmonk 6y agoThe article describes a third way which is neither mtime nor hashes. It's basically a database of (mtime, size, inode number, file mode, owner, group) tuples. So it still requires keeping a database. But because all of that would come out of inodes, it avoids all the I/O of reading the files' contents. Compared to mtime, it's harder to implement, but more resilient and at a similar cost. Compared to hashes, it's almost as resilient but much faster.