Never scan an operand inside a .zfs directory (closes #142)
check / check (push) Canceled after 0s

An operand inside a directory named .zfs was walked, because the
operand check looked only at the operand's own name. The check now
also looks at every directory above the operand. Such an operand gets
a warning, counts as skipped and is not walked, whether given alone or
under another operand. The check runs before overlapping operands are
pruned, so an operand under another one still gets its warning.

The test for an operand named .zfs now writes its record beneath .zfs
straight into the database, since no scan stores one there any more.

Judgement call: a path component named .zfs counts whatever it is, a
symlink included.

Model: opus-5-5
This commit is contained in:
2026-10-26 13:19:09 +00:00
parent aa99b37b99
commit ec263f2987
4 changed files with 100 additions and 33 deletions
+5
View File
@@ -29,6 +29,11 @@
# Completed Steps
- an operand at or inside a directory named `.zfs` is never scanned, whether
given alone or under another operand. `scan` warns about it, counts it as
skipped and does not walk it (2026-10-26,
https://git.eeqj.de/sneak/sfdupes/issues/142)
- a file or directory removed while the scan runs is not an error, in the walk
or in the hash phase. The scan prints no line for it and does not count it as
skipped. When the first of several hard links to a file is gone, the hash