| |
| 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..... |
| |