Fetching remote changes before resolving dirty state #152

Closed
atsepkov opened this Issue Aug 26, 2016 · 1 comment

Comments

Projects
None yet
2 participants
@atsepkov

In your README, you mention that dirty local changes must be sent to server first (https://github.com/nilbus/Backbone.dualStorage#data-synchronization), before new content from the server is fetched. For my use case, I'd need the opposite effect, can that be achieved?

Basically I've set up a work area that multiple users can access. When the user goes offline, he's welcome to continue working in the area, but is notified that his changes could create conflicts with other users. When the user's connection is restored, I need the local client to detect if user's changes can be applied cleanly or if the online room has diverged in the meantime. In the event it has diverged, the user could choose which changes to discard and which to merge, very similar to git's merge mechanism.

However, to accomplish this, I need to fetch the server state first, before applying user changes.

@nilbus nilbus added the Question label Aug 27, 2016

@nilbus

This comment has been minimized.

Show comment
Hide comment
@nilbus

nilbus Aug 27, 2016

Owner

No, there's nothing built in for that mode of operation.

You might consider creating a new API endpoint (with a model that does not use dualstorage) that returns either a hash representing the room content or the room's last updated timestamp. When connectivity is restored or before pushing, ensure the room hasn't changed since its last known state. If it has, assume or check for conflict.

Owner

nilbus commented Aug 27, 2016

No, there's nothing built in for that mode of operation.

You might consider creating a new API endpoint (with a model that does not use dualstorage) that returns either a hash representing the room content or the room's last updated timestamp. When connectivity is restored or before pushing, ensure the room hasn't changed since its last known state. If it has, assume or check for conflict.

@nilbus nilbus closed this Aug 27, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment