Store mtime in nanoseconds so a same-second rewrite is re-hashed (closes #12)
check / check (push) Canceled after 0s

scan recorded mtime in whole seconds, so a file rewritten in place at
the same size within the same second as its recorded mtime was classed
unchanged and kept its old hashes. The walk, a file given as an operand,
and the content phase's recheck now all use ModTime().UnixNano(); the
change rule itself is unchanged. The column stays INTEGER and
PRAGMA user_version stays 1, per the owner's ruling. A database written
by an earlier build holds seconds, so its files count as changed once,
at the next scan that covers them. README states the new resolution.

Model: opus-5-5
This commit is contained in:
2026-10-07 21:21:38 +00:00
parent 0064eba542
commit afb404b1c1
4 changed files with 59 additions and 7 deletions
+4
View File
@@ -29,6 +29,10 @@
# Completed Steps
- `scan` records mtime in Unix nanoseconds and compares it at that resolution,
so a same-size rewrite within the same second is re-hashed (2026-10-07,
https://git.eeqj.de/sneak/sfdupes/issues/12)
- cut the narration from `TODO.md` Completed Steps and from the comments in
`script/` and both Dockerfiles; §Workflow now branches from and merges to
`next` (2026-10-04, https://git.eeqj.de/sneak/sfdupes/issues/49)