You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bookmark CRDT covers nearly all cases but not everything - sometimes merges are not commutative.
Steps to reproduce
Two bookmarks A and B with same updated time but other differing features
Merge A with B to create C
Merge B with A to create D
Expected result
C == D
Actual result
C != D
Additional details
The problem occurs in this code:
more_recent: "Bookmark"=sorted(
(self, other),
# The below lambda should include all fields for which more_recent is consulted# ie, everything other than created and updatedkey=lambdab: (
b.updated,
len(b.title),
len(b.description),
b.title,
b.description,
),
reverse=True,
returnBookmark(
url=self.url,
created=min((self.created, other.created)),
updated=max((self.updated, other.updated)),
title=more_recent.title,
description=more_recent.description,
unread=more_recent.unread,
deleted=more_recent.deleted,
) )[0]
The text was updated successfully, but these errors were encountered:
Description
Bookmark CRDT covers nearly all cases but not everything - sometimes merges are not commutative.
Steps to reproduce
Expected result
C == D
Actual result
C != D
Additional details
The problem occurs in this code:
The text was updated successfully, but these errors were encountered: