В моем приложении для Android у меня есть настройка репликации pull с помощью sync_gateway.Как сохранить реплицированную ревизию во время репликации couchbase?
Ввиду логики конкретного приложения, всякий раз, когда обнаружен конфликт, мне нужно сохранить репарацию документа, реплицированную с сервера.
Я могу определить, какая конфликтная версия исходит от репликации (сервера), а какая - из локальной модификации (мобильное приложение).
Если я создаю надгробные плиты и новую ревизию с данными из ревизии репликации (это suggested approach), у меня будут конфликты континуумов, поскольку локальный идентификатор ревизии всегда будет отличаться от идентификатора на сервере (любая новая ревизия используемый для выбора currentRevision, будет иметь другой идентификатор).
Моим лучшим решением было бы сохранить только версию сервера как текущую ревизию и отбросить любую другую.
Как я могу это сделать?
Возможно ли очистить ревизии? Или возможно создать объект, содержащий только версию сервера, чтобы после разрешения конфликта любое другое нажатие без конфликта просто обновило мой документ? Мне нужно поведение, подобное переопределению.
Удаление версии приведет к созданию новой версии, которая может стать выигрышной версией, если ее идентификатор версии станет больше, чем любой другой. В качестве примера: сервер rev 1-111 реплицируется на мобильный. Mobile добавляет rev 2-321 и сервер rev 2-222, так что мобильная версия 2-321 является победителем. Я отказываюсь от мобильного rev, потому что мне нужно поддерживать серверные обороты как победители, поэтому я создаю новое удаление rev: 3-111. Редакция удаления становится победителем, поэтому мне нужно создать новый rev, основанный на содержимом сервера rev, но с этого момента идентификатор будет отличаться от имени сервера, создающего конфликты при любом нажатии. –
Разве вы не можете удалить rev 2-321, который сделает rev 2-222 текущей версией? – jamiltz
Это именно та проблема, с которой я столкнулся: как я могу удалить локальную ревизию, не создавая новую, которая настроена на удаление? Для того, что я понял, изменения не могут быть удалены. Может быть, я не понял, как это сделать, но если вы можете предоставить мне простой фрагмент кода, я буду благодарен! –