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!
I would refer to a database solution.
The problem with a repository is simultaneous access. Using the database that stores the updates the repository gives you a reliable source of information to retrieve its layout.
I have done a fair amount of research for an internship and using a database is almost always the fastest way in which you can read the repo.
To put it in terms of pseudo code:

read repository   
load site
print layout
perform tasks
-- and repeat.

Another option to consider is using a database that tracks the layout of the repository independently. This way, you're sure users won't bump into eachothers updates and it keeps the repository database safe from corruption.
Quickly retrieving svn directory trees