Some thoughts on repository-dictated configuration

Introduction
============
Many software development shops of non-trivial size desire to have an enforce
a uniform configuration environment among the various clients which commit
to their repositories.  Although these shops my have the ability to control
the environment on the client machines (dictating software versions, etc),
relying up on the client for setting various configuration parameters can
be time-consuming and problematic.

Subversion already provides the means of enforcing much (but not all) of this
configuration through the hook script mechanism.  What our users desire is
some way of having the server dictate a default or recommended configuration
to clients.  The parameters of interest typically come from the standard
client-side config: things like global-excludes or auto-props.  Allowing the
administrator to store a default config on the server, which then gets pushed
to the clients, would save both time and frustration.


Behavioral specification
========================
The high-level behavior for repository-dictated configuration is relatively
simple: the repository maintains a list of configuration parameters and
values, and upon request, provides these to the client who then applies them
appropriately.

It should be noted that the configuration the server dictates is only a
*suggestion* to the client.  Clients may choose to override the suggestion
with a configuration of their own, so appropriate server-side enforcement
(often via hook scripts) is still recommended.


Server-client transmission mechanism
====================================
As part of the OPTIONS request, the client will send to the server the 
sha1 hash of the version of the server-dictated config that it current has
cached.  If the server has a different version, it will send that to the
client in the OPTIONS response.


Server-side storage
===================
[TODO]


Client-side storage
===================
The client current maintains a global configuration file in
~/.subversion/config  This feature will introduce the ~/.subversion/repos/
directory, which will hold additional subdirectories keyed on the UUID of the
repository.  It is in this subdirectory that the cached version of the
repository configuration will be stored.


Configuration Hierarchy
=======================
[TODO]
