Hash every file's head, tail and content in the hash phase (closes #132)
check / check (push) Canceled after 0s
check / check (push) Canceled after 0s
Every file the walk records now gets three hashes: head and tail, of its first and last 64 KiB, and content. The content hash covers the whole file under 100 MiB, and 1 MiB at each gigabyte from 100 MiB up, so a large file is never read in full. One 100 MiB constant replaces the 10 MiB and 50 MiB thresholds. The size census, the records stored without hashes and the content phase are gone, so a rescan reads only new and changed files. report and trees no longer special-case a missing content hash. README "Duplicate detection" and "Rationale" are rewritten. Judgement call: info drops its two hash-count lines, which now always equal the record count. Model: opus-5-5
This commit was merged in pull request #136.
This commit is contained in:
@@ -29,6 +29,15 @@
|
||||
|
||||
# Completed Steps
|
||||
|
||||
- the hash phase gives every file the walk records three hashes: `head` and
|
||||
`tail`, the SHA-256 of its first and last 64 KiB, and `content`, the SHA-256
|
||||
of the whole file under 100 MiB and of 1 MiB at each gigabyte from 100 MiB up.
|
||||
The 10 MiB and 50 MiB thresholds, the size census, the records stored without
|
||||
hashes and the content phase are gone, so a scan has four phases and a rescan
|
||||
reads only new and changed files. `info` no longer counts the records with
|
||||
hashes, since every record has them (2026-10-25,
|
||||
https://git.eeqj.de/sneak/sfdupes/issues/132)
|
||||
|
||||
- re-vendor `REPO_POLICIES.md` and the four scripts that pass `CACHEBUST` from
|
||||
`sneak/prompts` `next` at `0653579`: in the `lint`, `test` and `builder`
|
||||
stages of the `Dockerfile` the module download, and in `builder` the
|
||||
|
||||
Reference in New Issue
Block a user