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!