store a copy of the current whenever the op.update method is called (atomic change or batch changes end)
download/sync (and merge) the current op is considered as a single change
the local attributes related to the fetch data is maintain across undo/redo. Therefore after a sync, any undo will result to an up to date OP with respect to the server (consecutive sync won't trigger the usual loop)
on op select (different from the current op), the copies are dropped, and a copy of the newly selected op is stored
Ability to undo/redo recent changes
Dev notes:
op.update
method is called (atomic change or batch changes end)