Take the community feedback survey now.
Take the community feedback survey now.
Good question, thanks for raising this. Below is how I understand “by-value” is handled in version history in Optimizely (and some clarifications + caveats).
Optimizely CMS tracks versions of content items using a versioning system that implements IVersionable. Each time you save/publish (depending on SaveAction), CMS creates a new version entry.
Each version stores all property values of the content item — i.e. each version snapshot stores the content’s properties (strings, numbers, references, component properties, etc.) as they were at the time of save/publish.
That means the history record is effectively a deep snapshot by value — not merely a diff or reference to “changed properties only”.
Hence when you open version history (or use the “compare versions” / “restore previous version” features) you’re getting exactly the saved state of that version: all property values as they existed then.
What “by value” does not mean (or common misconceptions)
It does not mean that linked or nested content items (e.g. blocks, referenced media, content-references) themselves get rolled back. Versioning applies per “content item” (page, block, etc.). If your content contains references to other items, version history for that content item will preserve the reference, but not automatically roll back the referenced item’s content. This is consistent with how CMS historically handles versions of content + linked content. (See long-standing discussions around “versioning pages + media/files + referenced content”).
It does not guarantee infinite history — the number of versions retained depends on configuration (MaximumVersions / uiMaxVersions in older CMS versions). If that limit is reached, older versions may be purged.
Hope that will helps!
Thanks,
Hi Sunil
No, not really. It wasn't what I was asking. I'm asking how the doing the editing is saved (the information that's shown in the "By"-column in version tab). Especially when the user isn't a built in ApplicationUser.
On my clients site we have external users that we fetch from their CRM and when someone logs in we fetch the information from that CRM and build up our custom User object (that's based on IdentityUser).
My client has noticed though that sometimes the "By" (that is, the person that did the editing) seems to be wrong. Just the other day a crusial page got unpublished and the person that did it (according to Versions history) swear that it wasn't she.
It could be that it was all just a mistake (many editors aren't that tech savy) but if it's some kind of ID mismatch because if external users it would be nice to correct that bug.