Конфлікти

Огляд

Клієнт робочого столу Nextcloud завантажує локальні зміни і вивантажує віддалені зміни. Якщо файл змінився на локальній стороні і на віддаленій між запусками синхронізації, клієнт не зможе вирішити ситуацію самостійно. Він створить файл конфлікту з локальною версією, завантажить віддалену версію і повідомить користувача, що виник конфлікт, який потребує уваги.

Приклад

Уявіть, що у вашій синхронізованій папці є файл з назвою mydata.txt. Він не змінювався деякий час і містить текст «вміст» локально і віддалено. Тепер, майже одночасно, ви оновлюєте його локально, щоб сказати «локальний вміст», в той час як файл на сервері оновлюється, щоб містити «віддалений вміст» кимось іншим.

При спробі завантажити ваші локальні зміни десктопний клієнт помітить, що серверна версія також змінилася. Це створить конфлікт, і тепер на вашій локальній машині буде два файли:

  • mydata.txt, що містить «віддалений вміст»

  • mydata (conflicted copy 2018-04-10 093612).txt, що містить «локальний вміст»

У цій ситуації файл mydata.txt містить віддалені зміни (і буде продовжувати оновлюватися подальшими віддаленими змінами, коли вони відбудуться), але ваші локальні коригування не були відправлені на сервер (якщо тільки сервер не увімкнув завантаження конфліктів, див. нижче).

Десктопний клієнт сповіщає вас про цю ситуацію за допомогою системних повідомлень, іконки в системному треї та жовтого значка «невирішені конфлікти» у вікні налаштувань облікового запису. Натиснувши на цей значок, ви побачите список невирішених конфліктів, а клацнувши на одному з них, ви відкриєте вікно провідника, що вказує на відповідний файл.

Щоб вирішити цей конфлікт, відкрийте обидва файли, порівняйте відмінності і скопіюйте локальні зміни з файлу «конфліктної копії» до базового файлу, де це можливо. У цьому прикладі ви можете змінити mydata.txt на «локальний та віддалений вміст» і видалити файл з «конфліктною копією» у назві. Після цього конфлікт буде вирішено.

Завантаження конфліктів (експериментально)

За замовчуванням файл конфлікту (файл з назвою «конфліктна копія», який містить ваші локальні конфліктні зміни) не завантажується на сервер. Ідея полягає в тому, що ви, автор змін, є найкращою людиною для вирішення конфлікту, а показ конфлікту іншим користувачам може створити плутанину.

Однак у деяких сценаріях має сенс завантажити ці суперечливі зміни так, щоб локальна робота стала видимою, навіть якщо конфлікт не буде вирішено негайно.

У майбутньому, можливо, буде створено загальносерверний перемикач для цієї поведінки. Наразі це можна перевірити, встановивши змінну оточення OWNCLOUD_UPLOAD_CONFLICT_FILES=1.