Hash a file again when its mtime moved back, not only forward (closes #176)
check / check (push) Canceled after 0s

scan treated a recorded file as unchanged when its size matched and its
mtime was not newer. A file replaced by other content of the same size
with an older mtime, as cp -p, rsync -a or a restore writes it, kept the
hash of the file it replaced. Any mtime difference now counts as a
change. README.md says so, and a new test covers the older mtime.

Model: opus-5-5
This commit is contained in:
sneak committed 2026-11-11 02:29:36 +00:00
1 parent 202f083cc0
commit ab15cf32c6
4 files changed
+54 -19

No files matched your search

+5
View File
@@ -29,6 +29,11 @@
Newest first. An entry ends with its date and its issue or branch, where those
are known.
- `scan` hashes a file again when its mtime differs from its record, older or
newer. Before, an older mtime counted as unchanged, so a file put back by
`cp -p` or a restore kept the hash of the file it replaced (2026-11-11,
https://git.eeqj.de/sneak/sfdupes/issues/176)
- The Go code moved out of the repository root. `cmd/sfdupes/main.go` is the
command, and it calls `Main` in the package `internal/sfdupes`. `main.go`
became `internal/sfdupes/cli.go`. Every other file kept its name. The install