2026-10-12 - 2026-11-12
Overview
5 Releases published by 1 user
Published
v0.0.4
Published
v0.0.3
Published
v0.0.2
Published
v1.0.0-rc2
Published
v1.0.0-rc1
49 Pull requests merged by 1 user
Merged
#195 Say "skipped" in scan's warnings for skipped paths (closes #170)
Merged
#192 Leave caches out of the walk by default (closes #181)
Merged
#190 Keep a non-root user's database in the XDG state directory (closes #171)
Merged
#166 Show the walk path on the line below its display (closes #160)
Merged
#188 trees: count a nested dupe tree once in the reclaimable total (closes #168)
Merged
#191 Limit report and trees to given paths (closes #174)
Merged
#186 README: guard the daily cron scan against an unmounted disk (closes #175)
Merged
#180 TODO.md: keep only open work (closes #167)
Merged
#193 dwim: take the scan flags (closes #162)
Merged
#189 Say in --help where the database is and what each report prints (closes #177)
Merged
#165 Add scan --exclude PATH (closes #163)
Merged
#184 Leave removed copies out of report and trees (closes #173)
Merged
#187 scan: drop the stray [flags] from the usage line (closes #169)
Merged
#182 Hash a file again when its mtime moved back, not only forward (closes #176)
Merged
#183 Leave empty files out of report and trees (closes #178)
Merged
#159 next into main: the command moves to cmd/sfdupes
Merged
#158 Move the command to cmd/sfdupes and the code to internal/sfdupes (closes #157)
Merged
#137 next into main: the trial's fixes, real-path arguments, and sfdupes dwim
Merged
#156 Add sfdupes dwim: scan / then print duplicate trees (closes #154)
Merged
#155 Resolve scan operands to their real paths (closes #144)
Merged
#153 Say ZFS counts a new file's blocks up to seconds after the write (closes #152)
Merged
#151 Stop the disk size tests failing at random on ZFS (closes #150)
Merged
#141 Rewrite TODO.md sentence by sentence (closes #135)
Merged
#140 Rewrite README.md sentence by sentence for a newcomer
Merged
#149 Record each file's size on disk and print it in trees (closes #147)
Merged
#148 Keep the record count and total size in a totals table (closes #146)
Merged
#145 Never scan an operand inside a .zfs directory (closes #142)
Merged
#139 Skip removed paths silently and fix the progress line (closes #133)
Merged
#138 Store each hash as its raw 32 bytes in a BLOB column (closes #134)
Merged
#136 Hash every file's head, tail and content in the hash phase (closes #132)
Merged
#110 next into main
Merged
#131 Keep modules, lint cache and system packages in check builds (closes #109)
Merged
#130 Install from @latest, retract v0.0.1, print a go-installed binary's version (closes #116)
Merged
#129 scan: create the database's directory where its path leads (closes #119)
Merged
#128 scan: never record its own database files (closes #115)
Merged
#127 scan: skip OS default excludes, and record nothing on filesystems that are not persistent (closes #124)
Merged
#126 Show the progress rate over the last 5 seconds, and where a phase waits after 10 seconds with no item done (closes #125)
Merged
#123 Add sfdupes info: show the database's details (closes #117)
Merged
#122 report: show its phases as N of M, with progress, elapsed time and ETA (closes #114)
Merged
#121 trees: show its phases as N of M, with progress, elapsed time and ETA (closes #113)
Merged
#120 scan: show each phase as N of M, with progress, elapsed time and ETA, also while it waits (closes #112)
Merged
#118 Name the database each command uses on stderr (closes #111)
Merged
#97 Re-vendor the canonical files from sneak/prompts at e3f79c4 (closes #95)
Merged
#69 next → main: trial-run fixes (escaping, read-only reports, scan lock, interrupts, streaming, README)
Merged
#108 Walk an operand nested on another filesystem with -x (closes #106)
Merged
#105 Keep records on other filesystems under an operand with -x (closes #99)
Merged
#107 Open files to hash without blocking and reject non-regular ones (closes #100)
Merged
#104 Name the scan lock file from the database's resolved path (closes #101)
Merged
#103 Redraw a finished bar below a warning for its last file (closes #102)
1 Pull request proposed by 1 user
Proposed
#185 next into main
46 Issues closed from 2 users
Closed
#194 Make next merge cleanly into main again
Closed
#164 Acceptance test: use sfdupes end to end as a user, and list missing basics
Closed
#170 scan: warnings for skipped paths do not say "skipped", and the lines that say it are not counted
Closed
#181 default exclude list should be smarter
Closed
#171 scan and dwim without root: the error does not say to run as root or set SFDUPES_DATABASE
Closed
#160 once per frame update, show the currently scanning path in the walk phase in the line below the status line
Closed
#168 trees: the reclaimable total counts a duplicate tree twice when it lies inside another reported one
Closed
#174 proposal: limit report and trees to given paths
Closed
#175 proposal: guard the daily scan against a disk that is not mounted
Closed
#167 TODO: remove work logs; keep only open work
Closed
#162 dwim should take many of the same options as scan (like exclude)
Closed
#177 proposal: say in --help where the database is and what each report prints
Closed
#163 scan has no exclude option?
Closed
#173 proposal: a way to drop the records of a tree that no longer exists
Closed
#169 scan: the usage line ends in a stray [flags]
Closed
#176 proposal: hash a file again when its mtime moved back, not only forward
Closed
#178 proposal: leave empty files out of report and trees
Closed
#157 can't install
Closed
#154 sfdupes dwim: scan / with the default excludes, then print duplicate trees largest first
Closed
#144 An operand reached through a symlink below another operand is skipped without a line
Closed
#152 README and a code comment overstate how late ZFS counts a file's blocks
Closed
#150 A disk size test fails at random on ZFS, which fails the build
Closed
#135 Rewrite README.md and the other prose documents sentence by sentence, on Fable
Closed
#147 dupe tree report needs to include a column for the size of the tree (in bytes on disk)
Closed
#146 info subcommand is slow
Closed
#142 scan walks an operand inside a .zfs directory
Closed
#133 display issues
Closed
#134 hash storage efficiency
Closed
#132 the algorithm in "Duplicate detection" is nonsensical
Closed
#109 make test goes over 60 seconds when the kept Go build cache has been removed
Closed
#116 go install @latest must install main's tip; retract v0.0.1; a go-installed binary must say which version it is
Closed
#119 scan creates the database's folder in the wrong place when the path holds .. after a symlink
Closed
#115 scan records its own database files when the database is inside a scanned operand
Closed
#124 scan skips OS-appropriate default excludes (/proc, /sys, /tmp, /run, /var/tmp on Linux)
Closed
#125 scan prints nothing for long stretches and looks frozen, then reports over 1,000 files a second
Closed
#117 Add sfdupes info: show the database's details
Closed
#114 report: never sit silent; show its phases as N of M with progress, elapsed time and ETA
Closed
#113 trees: never sit silent; show its phases as N of M with progress, elapsed time and ETA
Closed
#112 scan: show each phase as N of M, with progress, elapsed time and ETA, also while it waits
Closed
#111 Say which database file each command uses, and document when scan writes to it
Closed
#95 Re-vendor the canonical files from sneak/prompts at dd4027b
Closed
#106 With -x, an operand nested under another but on another filesystem is never walked
Closed
#99 scan -x deletes the records of every other filesystem mounted under its operand
Closed
#100 A regular file replaced by a FIFO before the hash phase reads it hangs the scan for good
Closed
#101 Two scans run at once when the database is reached through a symlink
Closed
#102 On a terminal, a warning for the last file of a phase erases the finished progress bar
48 Issues created by 2 users
Opened
#99 scan -x deletes the records of every other filesystem mounted under its operand
Opened
#100 A regular file replaced by a FIFO before the hash phase reads it hangs the scan for good
Opened
#101 Two scans run at once when the database is reached through a symlink
Opened
#102 On a terminal, a warning for the last file of a phase erases the finished progress bar
Opened
#106 With -x, an operand nested under another but on another filesystem is never walked
Opened
#109 make test goes over 60 seconds when the kept Go build cache has been removed
Opened
#111 Say which database file each command uses, and document when scan writes to it
Opened
#112 scan: show each phase as N of M, with progress, elapsed time and ETA, also while it waits
Opened
#113 trees: never sit silent; show its phases as N of M with progress, elapsed time and ETA
Opened
#114 report: never sit silent; show its phases as N of M with progress, elapsed time and ETA
Opened
#115 scan records its own database files when the database is inside a scanned operand
Opened
#116 go install @latest must install main's tip; retract v0.0.1; a go-installed binary must say which version it is
Opened
#117 Add sfdupes info: show the database's details
Opened
#119 scan creates the database's folder in the wrong place when the path holds .. after a symlink
Opened
#124 scan skips OS-appropriate default excludes (/proc, /sys, /tmp, /run, /var/tmp on Linux)
Opened
#125 scan prints nothing for long stretches and looks frozen, then reports over 1,000 files a second
Opened
#132 the algorithm in "Duplicate detection" is nonsensical
Opened
#133 display issues
Opened
#134 hash storage efficiency
Opened
#135 Rewrite README.md and the other prose documents sentence by sentence, on Fable
Opened
#142 scan walks an operand inside a .zfs directory
Opened
#144 An operand reached through a symlink below another operand is skipped without a line
Opened
#146 info subcommand is slow
Opened
#147 dupe tree report needs to include a column for the size of the tree (in bytes on disk)
Opened
#150 A disk size test fails at random on ZFS, which fails the build
Opened
#152 README and a code comment overstate how late ZFS counts a file's blocks
Opened
#154 sfdupes dwim: scan / with the default excludes, then print duplicate trees largest first
Opened
#157 can't install
Opened
#160 once per frame update, show the currently scanning path in the walk phase in the line below the status line
Opened
#161 is there some way to estimate walk time before the walk begins?
Opened
#162 dwim should take many of the same options as scan (like exclude)
Opened
#163 scan has no exclude option?
Opened
#164 Acceptance test: use sfdupes end to end as a user, and list missing basics
Opened
#167 TODO: remove work logs; keep only open work
Opened
#168 trees: the reclaimable total counts a duplicate tree twice when it lies inside another reported one
Opened
#170 scan: warnings for skipped paths do not say "skipped", and the lines that say it are not counted
Opened
#169 scan: the usage line ends in a stray [flags]
Opened
#171 scan and dwim without root: the error does not say to run as root or set SFDUPES_DATABASE
Opened
#172 proposal: do not report hard links to one file as duplicates
Opened
#173 proposal: a way to drop the records of a tree that no longer exists
Opened
#174 proposal: limit report and trees to given paths
Opened
#175 proposal: guard the daily scan against a disk that is not mounted
Opened
#176 proposal: hash a file again when its mtime moved back, not only forward
Opened
#177 proposal: say in --help where the database is and what each report prints
Opened
#178 proposal: leave empty files out of report and trees
Opened
#179 proposal: print --help to stdout so it can be paged and searched
Opened
#181 default exclude list should be smarter
Opened
#194 Make next merge cleanly into main again
2 Unresolved Conversations
Open
#56
Trial run at real scale on the target server before tagging 1.0.0
Open
#98
Finish 1.0 and tag it; after that, bugfixes only