In the example, the non-versioned folder "SubFolder" is _always_ a child of "Code". It is not being moved. "SubFolder"s parents are not changing but the properties being inherited are.
If you are saying that it's expected for the ignore property of "Code" to not be applied to the file "trunk/Code/NonVersionedSubDirectory/shouldbeignored.txt2" when committing from "trunk", then that is inconsistent with how versioned directories are behaving.
Consider these four cases:
1. When committing relative to "trunk", the file "trunk/Code/NonVersionedSubDirectory/shouldbeignored.txt2" will be shown in the Tortoise commit/add views.
2. When committing relative to "trunk", the file "trunk/Code/VersionedSubDirectory/shouldbeignored.txt2" will NOT be shown in the Tortoise commit/add views.
3. When committing relative to "Code", the file "trunk/Code/NonVersionedSubDirectory/shouldbeignored.txt2" will NOT be shown in the Tortoise commit/add views.
4. When committing relative to "Code", the file "trunk/Code/VersionedSubDirectory/shouldbeignored.txt2" will NOT be shown in the Tortoise commit/add views.
The only difference between cases 1 and 2 is if the subdirectory (child of "Code") is versioned or not. I would expected the results to be the same for cases 1 and 2.
I understand what you're saying about the status command not showing contents of non-versioned folders. The recursive `svn add` command is a better example.
From the "trunk" directory, calling `svn add Code/NonVersionedSubDirectory/` will NOT add the file located at "trunk/Code/NonVersionedSubDirectory/shouldbeignored.txt2".
From the "Code" directory, calling `svn add NonVersionedSubDirectory` will NOT add the file located at "trunk/Code/NonVersionedSubDirectory/shouldbeignored.txt2".
Regardless of the current directory, calling `svn add path/to/NonVersionedDirectory` will always result in the ignore property from the "Code" directory being inherited by the child ("NonVersionedSubDirectory") and it's contents.