Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Failing test to reproduce #201 / Automattic/simplenote-android#560
We can probably make a better test using
JSONDiff.transform
directly now that we're close to the source of the problem.This is where the simperium client attempts to rebase a change on top of the server's state.
If you think about it in terms of git the client has a local branch that is one commit ahead of what it knows to be the remote branch.
Meanwhile someone else pushed a commit to the remote branch before the client could. When it reconnects to the server it does effectively a
git pull --rebase
so it can apply its local changes on top of the changes made by the other client.This happens in
JSONDiff.transform
:simperium-android/Simperium/src/main/java/com/simperium/util/JSONDiff.java
Lines 37 to 68 in 877d4e7
simperium-android
SPMemberText
's implementation of[SPMember transform...]