Factor SVN file handling into a separate app.

Seems we'll have to do this at least one more time.