The ignore lists are first loaded into a global array. Then they should be distributed onto the directory structure; all applicable patterns get referenced by a directory.
     root
       +-- dirA
       +-- dirB
             +-- dirB1
        *.tmp
        **~
        dirA/tmp*.lst
        dirB/**/*.o
     root:               *.tmp, **~
       +-- dirA          **~, tmp*.lst
       +-- dirB          **/*.o
             +-- dirB1   **/*.o
Ignore patterns apply only to new entries, ie. entries already in the .waa-dir file get done as usual. That's why we need an "add" command: 
     $ fsvs ignore '/proc/*'
     $ fsvs add /proc/stat
/proc/stat , but nothing else from /proc .A negative ignore-list is named take list.
The default behaviour is best described with the take-list
add = **
The storage of these values will (sometime) be done in svn:ignore and svn:recursive-ignore ; in the waa-area the format is 
     header: number of entries
     %u\n
     pattern\0\n
     pattern\0\n
Whitespace are not allowed at the start of a pattern; use ./* or something similar.
As low-level library pcre is used, the given shell-patterns are translated from the shell-like syntax into PCREs.
     *      ->  [^/]*
     **     ->  .*
     ?      ->  .
     .      ->  \.
\W are escaped. 
 1.5.9