This branch (^/subversion/branches/authzperf) will be used to build a better search engine. Er ... that is, reimplement svn_authz_t & co. so that it allows much faster authz resolving and avoids the many full authz file scans. The new authz implementation on this branch will also be used for implementing lookup access rights (a.k.a. directory traversal rights), which are implicit in current released and trunk authz semantics. More information may be found here: https://wiki.apache.org/subversion/AuthzImprovements TODO: * remove no-op escape sequences from wildcard rule segments * implement lookup access rights DONE: * O(1) check that a rule applies to a given user * construct a prefix tree from the path rules * pre-calculate rule sets for the given user * implement recursive tree checks * implement evaluation shortcuts * parametrize in-memory representation constructor in the config parser * add support for full-segment wildcards ("/*/") * add support for variable length full-segment wildcards ("/**/") * add support for prefix segment patterns ("/foo*/") * add support for suffix segment patterns ("/*foo/") * add support for arbitrary patterns ("/foo*bar*baz/" etc.) * implement an authz-specific constructor for the config parser * implement access chek for (user, repository) against an ACL * calculate global access rules in svn_authz_tng_t * expose the svn_stringbuf_t buffers in the config parser constructor and use the known sizes when calling intern_string in authz_parse.c * rewrite the filtered rules generator to use svn_authz_tng_t * rename svn_authz_tng_t to svn_authz_t * implement wildcard escaping in glob rules * in the implementation, replace the public access rights enum with a private variant, in preparation for adding lookup access rights. * implement precedence rules * make models read-only such that they may be cached * implement global authz and filtered tree caches * add fast lookup path for in-repository authz files * support in-registry authz * correct the global <-> per-repo rule precedence to match 1.9 behavior * use a user's accumulated "global" access rights where sufficient