Proposal from the acceptance test (#164). It needs your decision before anyone builds it.
What is missing
Empty files are reported as duplicates of each other, and no option leaves them out.
report puts every empty file in the database in one group.
trees reports directories that hold only empty files as duplicate trees of 0 bytes.
Example from the test: six empty files (.gitkeep and the like) gave five report rows, and two directories holding one .gitkeep each gave this trees row:
first dupe files size disk_size
.../emptyA .../emptyB 1 0 512
On a real machine these are every __init__.py, .gitkeep, lock file and empty log: thousands of rows that free nothing. They sort last, so they do not hide the large duplicates, but they inflate the group and file counts in both summaries.
This is as specified. The test in README.md under "Definition of done" expects the pair empty1 and empty2 in the report, and has since your first version of the spec. So it is a question, not a bug.
Why a user expects it
Removing an empty file frees nothing. jdupes leaves empty files out unless -z is given, and fdupes has -n for it.
Your choices
Reports leave out empty files: report drops the group of size 0, and trees drops a group whose trees hold 0 bytes. An empty file still counts toward the digest of a tree that holds other files. No option. The README's test loses its empty1 and empty2 pair.
A minimum size option: report --min-size N and trees --min-size N leave out groups below N bytes, and the default keeps today's output. It also serves a user who only cares about large files, at the price of a flag on two commands.
Leave as is: the user filters the output on the size column.
Recommended: Reports leave out empty files.
Model: fable-5-2
Proposal from the acceptance test (https://git.eeqj.de/sneak/sfdupes/issues/164). It needs your decision before anyone builds it.
## What is missing
Empty files are reported as duplicates of each other, and no option leaves them out.
- `report` puts every empty file in the database in one group.
- `trees` reports directories that hold only empty files as duplicate trees of 0 bytes.
Example from the test: six empty files (`.gitkeep` and the like) gave five `report` rows, and two directories holding one `.gitkeep` each gave this `trees` row:
```
first dupe files size disk_size
.../emptyA .../emptyB 1 0 512
```
On a real machine these are every `__init__.py`, `.gitkeep`, lock file and empty log: thousands of rows that free nothing. They sort last, so they do not hide the large duplicates, but they inflate the group and file counts in both summaries.
This is as specified. The test in `README.md` under "Definition of done" expects the pair `empty1` and `empty2` in the report, and has since your first version of the spec. So it is a question, not a bug.
## Why a user expects it
Removing an empty file frees nothing. `jdupes` leaves empty files out unless `-z` is given, and `fdupes` has `-n` for it.
## Your choices
- **Reports leave out empty files**: `report` drops the group of size 0, and `trees` drops a group whose trees hold 0 bytes. An empty file still counts toward the digest of a tree that holds other files. No option. The README's test loses its `empty1` and `empty2` pair.
- **A minimum size option**: `report --min-size N` and `trees --min-size N` leave out groups below `N` bytes, and the default keeps today's output. It also serves a user who only cares about large files, at the price of a flag on two commands.
- **Leave as is**: the user filters the output on the size column.
Recommended: **Reports leave out empty files**.
Model: fable-5-2
sneak
was assigned by clawbot2026-11-11 01:06:06 +01:00
sneak approved the recommendation above (chat via tracker, 11 November about 02:20 UTC); it is the definition of done, built as one PR into next with tests and README changes.
Model: opus-5-5
sneak approved the recommendation above (chat via tracker, 11 November about 02:20 UTC); it is the definition of done, built as one PR into `next` with tests and README changes.
Model: opus-5-5
sneak
was unassigned by clawbot2026-11-11 03:24:00 +01:00
Built in #183: report drops the size-0 group, trees drops groups of 0-byte trees, and empty files still count toward a tree's digest. No option.
Model: opus-5-5
Built in https://git.eeqj.de/sneak/sfdupes/pulls/183: `report` drops the size-0 group, `trees` drops groups of 0-byte trees, and empty files still count toward a tree's digest. No option.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Proposal from the acceptance test (#164). It needs your decision before anyone builds it.
What is missing
Empty files are reported as duplicates of each other, and no option leaves them out.
reportputs every empty file in the database in one group.treesreports directories that hold only empty files as duplicate trees of 0 bytes.Example from the test: six empty files (
.gitkeepand the like) gave fivereportrows, and two directories holding one.gitkeepeach gave thistreesrow:On a real machine these are every
__init__.py,.gitkeep, lock file and empty log: thousands of rows that free nothing. They sort last, so they do not hide the large duplicates, but they inflate the group and file counts in both summaries.This is as specified. The test in
README.mdunder "Definition of done" expects the pairempty1andempty2in the report, and has since your first version of the spec. So it is a question, not a bug.Why a user expects it
Removing an empty file frees nothing.
jdupesleaves empty files out unless-zis given, andfdupeshas-nfor it.Your choices
reportdrops the group of size 0, andtreesdrops a group whose trees hold 0 bytes. An empty file still counts toward the digest of a tree that holds other files. No option. The README's test loses itsempty1andempty2pair.report --min-size Nandtrees --min-size Nleave out groups belowNbytes, and the default keeps today's output. It also serves a user who only cares about large files, at the price of a flag on two commands.Recommended: Reports leave out empty files.
Model: fable-5-2
rec approved
sneak approved the recommendation above (chat via tracker, 11 November about 02:20 UTC); it is the definition of done, built as one PR into
nextwith tests and README changes.Model: opus-5-5
Built in #183:
reportdrops the size-0 group,treesdrops groups of 0-byte trees, and empty files still count toward a tree's digest. No option.Model: opus-5-5