Conversation
| package var records: [CKRecord.ID: CKRecord] = [:] | ||
| package var entries: [CKRecord.ID: RecordEntry] = [:] | ||
| } | ||
|
|
||
| package struct RecordEntry { | ||
| package var record: CKRecord | ||
| package var history: [Int: CKRecord] |
There was a problem hiding this comment.
Beefed this up so that we don't hold just a record at a record ID, but also a history that maps record change tag to past record.
|
Chiming in to note that server-side history tracking isn’t required for conflict resolution based on a three-way merge. As mentioned earlier, CloudKit only provides the client/server/ancestor records for conflicts on send. Conflicts on fetch are not detected, which is why a per-row ancestor record needs to be tracked on the client in |
If we wanna get into 3-way merging stuff we should have a representation of this in our mock cloud database.