blob: 6417396370b54c0fbc7a22da416546537a0a7ffe [file] [log] [blame]
This is the Subversion Server library.
This library depends on the Subversion filesystem library (libsvn_fs),
and provides an interface to any program that wishes to behave as a
Subversion server.
With this library, your program is able to:
* make filesystem calls into any Subversion repository
* define general server policy behavior and load server-side
plugins by writing a custom `svn.conf' file
The public API is defined in `svn_svr.h'.
---------------------------------
How to write an application that implements a "Subversion Server":
(Assumptions: you already have a Subversion repository on disk
somewhere.)
1. #include <svn_svr.h> and <svn_parse.h>. Initialize an
apr_pool_t to use.
2. Create a svn_user_t structure. Your app is *soley* responsible
for making sure the user is authenticated; the Subversion
Filesystem just assumes so. (Optional: fill in
svn_user_t->svn_username with the name you want to use for
doing filesystem operations, otherwise
svn_user_t->auth_username will be used.)
3. Create (or use a preexisting) `svn.conf' file that contains
general server config options. For example, you can use the
simple 'plugin_security' for basic ACL authorizations. (Or you
can write your own authorization plugin.)
4. Parse the configfile with svn_parse(), and pass the resulting
hashtable to svn_svr_init(). You'll get back a svn_policies_t
structure, which you must then pass to all future server
routines.
5. Call any number of wrappered filesystem calls, passing in the
user structure and the policy structure.
---------------------------------
How to write a server-side plugin.....