A synchronization version is a structured logical version for every item or change unit that is to be change tracked. (A change unit is the minimal unit of change tracking in a data store. Change units are contained in an item, such as name and address fields in a contact item.) A version contains a replica key and a tick count. The replica key is the key of the replica that made the last change to this item or change unit, and maps to a replica ID by using the replica key map. The tick count is the tick count at the replica that made the change, when the change was made.
Managed code Versions are represented by the SyncVersion class.
Unmanaged code Versions are represented by the SYNC_VERSION structure.
The rules for correctly updating and maintaining versions on items are as follows:
A change that is received from another replica during synchronization (which is the version that replica has) is stored verbatim after the replica key is translated.
A change that is made directly to a replica, such as a change made by a local application, will not have a version for the change in the synchronization metadata. A version that is created for such a change must contain the following elements:
The replica key of the local replica. This is typically 0.
The current value of the tick count of the local replica.