aboutsummaryrefslogtreecommitdiff
path: root/man
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-09-17 13:59:52 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-09-17 13:59:52 +0200
commitb44222fc2b061382dc601014cde287cc41b857ca (patch)
tree3181b6d3336bb6766803a9fc0ab76e09198aa253 /man
parent9ab6686b98499c745024a474a71e3d99b6e14973 (diff)
downloadkrino-b44222fc2b061382dc601014cde287cc41b857ca.tar.gz
krino-b44222fc2b061382dc601014cde287cc41b857ca.zip
a duplicate test in an exclude protects like one in a rule
The scopes that drive "no rule deletes a file krino found to be a duplicate" were collected from rules only. A directory whose duplicate tests lived in (exclude ...) forms had no scopes at all, so the protection never engaged: krino explain said "yes duplicate" and the next rule permanently deleted every copy. The README's promise was false in that shape, and the spec's wording permitted it. What matters is what krino knows, not which form taught it. The spec and krino.conf(5) now say so too.
Diffstat (limited to 'man')
-rw-r--r--man/krino.conf.510
1 files changed, 7 insertions, 3 deletions
diff --git a/man/krino.conf.5 b/man/krino.conf.5
index a9b3ea8..1a60ecc 100644
--- a/man/krino.conf.5
+++ b/man/krino.conf.5
@@ -1319,9 +1319,13 @@ A rule combining
.Ic (duplicate)
with a delete action is refused
.Pq Sx RULES .
-And in a directory whose rules use
-.Ic (duplicate) ,
-a file that is a duplicate under any of the duplicate scopes those rules use
+And in a directory that uses
+.Ic (duplicate)
+\(em in a rule or in an
+.Ic (exclude ...) ,
+since what matters is what krino knows and not which form taught it \(em
+a file that is a duplicate under any of the duplicate scopes that directory
+uses
\(em each distinct set of
.Ar dir
arguments, and the plain