Skip removed paths silently and fix the progress line (closes #133)
check / check (push) Canceled after 0s

A path removed before the scan reaches it, in the walk or the hash
phase, gets no warning, no skipped count and no record. If the first of
several hard links is gone, the next is read.

On a terminal every display is the library's spinner, then the line. A
phase with an exact total ends the padded line with its percent and a
bar at a fixed column. sfdupes draws that bar: the library shows no
spinner beside its own.

The time remaining is labelled remain, not eta.

Judgement call: an operand removed after the scan starts is passed over
silently too.
Deviation: README's 80-column promise for stalled lines is narrowed to
its example.

Model: opus-5-5
This commit is contained in:
2026-10-26 02:35:54 +00:00
parent 68881f04f2
commit c4aeec355a
9 changed files with 465 additions and 230 deletions
+10
View File
@@ -29,6 +29,16 @@
# Completed Steps
- a file or directory removed before the scan reaches it is not an error, in the
walk or in the hash phase. The scan prints no line for it, does not count it
as skipped, and gives it no record. When the first of several hard links to a
file is gone, the hash phase reads the next one instead. On a terminal every
progress display starts with the spinner, the hash phase's included. A phase
with an exact total ends its line with its percent and a 10-column bar at the
terminal's right edge, which no longer moves as the line's length changes. The
time remaining is labelled `remain`, not `eta` (2026-10-26,
https://git.eeqj.de/sneak/sfdupes/issues/133)
- the `head`, `tail` and `content` columns are BLOBs, each holding the raw 32
bytes of a SHA-256, half the size of the hex text they held. The hashes stay
raw from the hash phase through the database to `report` and `trees`. Reading