I am working on a repository management system for my university that will provide a gui for modifying permissions to individual folders in a subversion repository, and make it easy for professors to add directories for students and TA's, with the appropriate permissions. In order to make this work, I need to be able to retrieve the directory structure of an existing svn repository, and present it on the web. I have looked at several methods, and was wondering if anyone had other ideas, or suggestions. Some things I have looked at:
Every hour, run a script that runs 'svn ls -R --xml'  on all of the repositories and populates a mysql database
Positive:

Fast page loads afterwards
Doesn't take a lot of disk space
Easy to manage permission, i.e. the website doesn't need to touch svn directly at all

Negative:

Really slow on some of our more complicated repositories
No 'live' updates
Has to run whether there are changes or not

On page load, run 'svn ls -R --xml' and retrieve only the directory I need to render the current page
Positive:

updates live
no cron job to tie up the server

Negative:

website is slow as molasses
webserver uses a lot more resources

Directly read svn database
Positive:

Fast page loads
live updates

Negative:

Difficult?

I am very curious what alternatives there are that I have not seen or thought of, because I feel like any of these would be quite awful and inelegant in one way or another. Also I don't want to reinvent the wheel if it can be avoided.
Thanks!
you should use direct repository access via file:// this comparable to a slow hd (if you have fast CPU and HD)
use the svn bindings for your respective scripting language, do not rely on xml parsing, as they are much slower
do not read the whole tree out, but maintain a navigational hierarchy and read directories on demand, usually if you read the whole hierarchy, you end up with hundreds/thousands directories in the deeper levels which are usually not interesting for your application, so you can omit them and display them on demand(if user browse this deep)
if you are doing svn access modifications use the entries in your access file to get to know your important directories beforehand
Quickly retrieving svn directory trees