Software development students need practice with revision control tools. To that end I'm looking for a plugin for our LMS that will give the students an individual SVN repository. We use angel, but BlackBoard, Moodle or whatever else you might use are also interesting to me.

Currently the system involves a seperate system with bash scripts; being able to automate construction and population of repos at course creation time would be spectacular.

Figure out where your documents for the files are stored. You can find this out by looking in your config file for <code>$CFG->dataroot</code>. The config file can be found in your main moodle directory (for debian it's /usr/share/moodle)

Go to your data directory. You'll see a directory for each module you have
added files to. The directory is named with the module number.

If you want to use the files for a module that isn't there yet, upload a placeholder file from the in-moodle file interface, and the directory will be created.

Check out your code somewhere central, and link from each required module directory to that checked out copy

Update the checked out copy as and when required, or set up a cron job to do it regularly for you

You'll then be able to see the files from the file interface and use them with your course materials

Kudos for teaching version control in school. A lot of students come out of school with only a vague notion of version control is or why they should care.

However, I doubt you're going to find something like that -- why not get a grad student to mash up one of the web-based SVN browsers and your repository creation scripts? If your students are already set up in your LMS, then you could use the attendance list to figure out how many repositories to create.

I would take a serious look at Mercurial(hg) rather than SVN..
An architecture I'd suggest would be to give them each a repository on the server to which they can push their deltas, and you can have one they can pull from for assignment details. Using Hg they can still do LOCAL commits and tags, and push the data to the server when convenient.
And if all the "right" assignments derive from the same tag, you could detect copying..
Unless they did a simple cp from on repos to the other.
Those not on a linux box could even use it.