Check every group member and show the content phase from its start
check / check (push) Successful in 57s

The content phase now checks every record sharing a size, head and
tail with lstat, including those that already have a content hash, and
reads those without one only when at least two pass. Only a missing
file is passed over silently; any other lstat error is warned about and
counted as skipped. The phase shows a running count while it queries
and checks, then its bar. The README states once when content is empty.
New tests cover these and hard links.

Model: opus-5-5
This commit is contained in:
2026-09-23 13:09:03 +00:00
parent 89fc9e4595
commit fff4409a24
6 changed files with 243 additions and 81 deletions
+1 -3
View File
@@ -118,9 +118,7 @@ func collectDupeGroups(recs []scanRec) []dupeGroup {
for _, r := range recs {
// A record without a content hash has unknown content and is
// never reported as a duplicate: its size was unique when last
// scanned, or it is headTailMin or more and has not yet matched
// another record on size, head, and tail.
// never reported as a duplicate (README "Database").
if r.content == "" {
continue
}