
Subversion has a standard config file format:

[section]
key : val
key : val
key : val

[section]
key : val
key : val


This format is similar to the Win32 .INI format, and is general enough
for most purposes.  Each section name, key, and val are UTF-8 encoded.


This format is currently used by:

     * `svn.conf', which specifies general Subversion server policies

     * `svn_security', a file which lives in each repository and
        defines ACLs for the plugin_security module

     * all files within a working copy's .svn/ administrative directory


This format is parsed by svn_parse(), located in svn_subr/svn_parse.c.
This routine stores all key/vals as svn_string_t (bytestrings) within
ap_hash_t (APR's hash type).


----------------

Let's rethink this, and create a system which allows "nesty" syntax,
something like scheme.

The main point is still to define sections/keys/vals.



