Is there an in-built way (or an add-on module) to delete old versions of content from the various _versions tables? Ideally what I'd like is to keep at least the most recent version in those tables, and potentially only purge up to a particular date. If there isn't a module for this (I don't recall seeing one) or a built-in way to do it, then I may write a module to do this myself.
There isn't any automated mechanism or even an interface for deleting versions.
At the moment, you'll have to delete the SiteTree_versions (and any derived classes tables) as you see fit. Although I suppose it would be nice if pages only had up to x (configurable) versions, so the last version after x just drops off when someone saves a page.
If you do make something, please submit it to http://silverstripe.org/extensions :)
Solution proposed in http://www.silverstripe.org/general-questions/show/251293#post251293, as emptying the table SiteTree_version will prevent you from being able to restore to the current version.
Nevertheless I think this is an important missing feature of silverstripe that prevents its use in websites that often make small changes to webpages.
My database is ~80Mb before cleaning, and ~8Mb after cleaning the history... after only 3 months of editing, that's not tolerable. Please provide for a "limit" to the amount of revisions stored!
Otherwise great CMS, thanks!