Question on Global/Parent File Policy

I’m having a difficult time understanding how global policy is applied for files when I do not have the “Ignore parent rule policy” set to true.

Here is an example.

Global Policy: I’ve got an ignore rule for “globalignore”
Local policy for /parent: I’ve got an ignore rule for “parentignore”
Local policy for /parent/child: I’ve got an ignore rule for “childignore”

Then in /parent/child I’ve got the following files
/parent/child/globalignore
/parent/child/parentignore
/parent/child/childignore
/parent/child/notignored

When I create a snapshot of /parent then inspect the snapshot contents I see the following files
/parent/child/globalignore
/parent/child/notignored

parentignore is correctly ignored due to the local policy on the /parent folder.
childignore is correctly ignored due to the local policy on the /parent/child folder.
notignored is correctly included because there is no file policy excluding it.

globalignore is (as far as I understand) being incorrectly included in the snapshot.

Shouldn’t global policy be considered the “parent” to the top level local policy? I’d expect global ignores to be included unless I enable the “Ignore Rules from Parent Directories” flag, which is not checked on any of these policies.

Am I misguided in my understanding? I want to set common exclusions in global policy that should be enforced across all my computers (cache folders, log files, etc.) then use local policies for other exclusions specific to that machine. This doesn’t work because the global ignore policy is always ignored once a single local ignore policy is set. (again… i do not have the ignore parent policy option set :grinning:)

If I’m able to resolve this issue/misunderstanding then Kopia looks to be my dream backup utility!

There could be a bug. At least I found one (actually two) related to noParentIgnore rules. See also

But it would save the developer quite some time (and increase his motivation to look into this…) if you created a simple reproducer with a few commands that the developer could run as well. See also my example.