feat: #3600769 Refactor site overrides to a full-snapshot model

Site overrides are now stored as complete revision snapshots (identified by site_id) instead of being composed at read time via field-by-field merging.

  • SiteAwareEntityResolver::loadEffective() now simply returns the latest override revision for the site, or the canonical revision otherwise.
  • Add buildSnapshot(), getOverriddenSiteIds() and resyncOverrides() to SiteAwareEntityResolverInterface.
  • Add hook_sites_content_overrides_snapshot_alter() to allow sub-field-level merging when building a snapshot.
  • Add sites_content_overrides.install with update hooks 10001/10002 to migrate existing overrides to the new model.

By: hydra

Closes #3600769

Merge request reports

Loading