Hi Ryan, thanks for the swift reply.
Basically I've been trying to trace through the code and establish which bits I'd need to hook into in order to work out how I might add page versioning. WHat I had in mind was to make the page saving function save a new copy into the 'Pages' DB table each time (on the understanding that each unique page is based on a set of page name, parent and template which I think won't be duped between pages) and then have a separate table that jsut stores which version of each page that is live.
As a newbie to PW I'm probably overshootig myself a bit but I thought it'd be a good learning experience to get to grips with module development and learning the inner workings.
With that in mid, I'd have to write a module thyat hooked into many parts of the system to make this idea work, as every page save would need to work in a new way, page load/filtering would need to take into account the new system etc so it's quite a big undertaking.
Just to be clear, I'm not just talking about a temporary page to be able to preview edits, I'm talking about every page save being a new version, and being able to preview any version and then publish any version as the current 'live' version.
Another concern is that your code treats lots of elements in the system as "pages" including users, roles etc so I don't know if this adds complexity. You wouldn't want to be able to version-control things like users, roles, admin pages etc. It's just standard pages that need to be version controlled. It ultimately may not be worth the grief of the development complexity against the benefits gained.