Multi-Content Revisions/WikiPage and Revision

This page is part of the MCR proposal. Status: collecting notes.

This page contains migration and compatibility notes for WikiPage and Revision

  • WikiPage::doEditContent() will continue to function for creating new revisions that update only the main slot.
  • WikiPage acts as a factory for PageUpdateController, which can be used for more complex updates
  • Much of the code in WikiPage associated with editing will be factored out, mostly into PageUpdateController

  • Revision::getContent() will continue to function for fetching the content of the main slot. For access to other slots, application logic should use RevisionLookup and RevisionRecord directly.
  • Revision will act mostly as a wrapper around a RevisionRecord.
  • Any code in Revision concerned with loading or storing blob data will be moved to a BlobStored.
  • Any code in Revision concerned with updating the Revision table may be moved to PageUpdateController, though at least during migration, it may be better of PageUpdateController calls the existing methods in Revision, in particular insertOn.