Конфлікт
JOSM оперує тільки із локальними копіями OSM об’єктів. Він завантажує їх з файлу чи сервера OSM та зберігає їх у пам’яті. Якщо ви змінюєте об’єкти або додаєте їх на вашу мапу, ви працюєте тільки з копіями об’єктів. Початкові об’єкти лишаються на сервері, звідки їх можуть завантажити інші учасники, а також на сервер можуть бути завантажені зміни інших маперів.
Це означає, що ви не володієте об’єктами, з якими зараз працюєте, монопольно, ви робите це разом з іншими користувачами. Коли ви обмінюєтесь даними з сервером, ваша версія об’єктів може зіткнутись із чиєюсь версією, що була відіслана на сервер як оновлення. JOSM робить все можливе, щоб приховати ці колізії від вас, але іноді він не в змозі розв’язати відмінності між двома версіями автоматично. В цьому разі він створить конфлікт.
Конфлікт — це різниця між двома версіями об’єкта, які JOSM не розв’язав автоматично.
Кожен шар даних підтримує перелік нерозв’язаних конфліктів у Діалозі переліку конфліктів. З цього діалогу ви можете запускати Діалог розв’язання конфліктів.
Розв’язання конфліктів означає, що вам потрібно вибрати між двома версіями об’єкта для кожної відмінності, яку з них ви бажаєте лишити, першу чи другу, іноді цей процес може називатись злиття.
Конфлікти під час завантаження/оновлення
Коли ви завантажуєте об’єкти з сервера OSM у існуючий шар даних, об’єкти з сервера можуть "стикатись" з об’єктами, що вже є в цьому шарі. Часто, JOSM обробляє ці колізії автоматично, але іноді це неможливо. Наприклад:
- Ви завантажили точку з id:1 з сервера, яка має значення теґу name —
"My name"
. - Ви редагуєте цю точку змінюючи теґ name на
"Or is it this name?"
. У той самий час інший користувач теж завантажив точку, із мінив name на"That's the name"
, та відіслав зміни на сервер. - Ви обираєте пункт меню Файл -> Оновити дані. Версія точки, отримана від сервера буде мати теґ name із значенням
"That's the name"
, що конфліктує з вашим"Or is it this name?"
.
JOSM не може розв’язати таку ситуацію автоматично. Він створить конфлікт. Звичайно JOSM показує наступне повідомлення про помилки:
Конфлікти, що виникають під час надсилання даних
Якщо ви надсилаєте об’єкти на сервер OSM, вони можуть стикатись із оновленнями інших учасників. Іноді, JOSM може обробляти ці ситуації автоматично. Якщо, скажемо, ви намагаєтесь вилучити вже вилучений об’єкт, JOSM просто пропустить вилучення і не буде турбувати вас повідомленням про помилку. У більшості випадків, на жаль, JOSM не може обробляти їх автоматично. Ось приклад:
- Ви завантажили точку з id:1 з сервера, яка має значення теґу name —
"My name"
. - Інший учасник також завантажив точку з id:1, та перейменував її на
"That's the name"
й надіслав зміни на сервер. - Ви змінили її назву на
"Or is it this name?"
та також надсилаєте зміни на сервер. - На сервері ваші зміни вступають у колізію із змінами інших учасників.
JOSM не може виправити таку ситуацію автоматично. Він створить конфлікт. Зазвичай JOSM сповістить про помилку наступним повідомленням:
Конфлікти під час злиття
За допомогою JOSM ви можете зливати об’єкти з одного шару даних з об’єктами іншого шару даних. Знову, це може призвести до виникнення "колізій" між різними версіями одних й тих самих об’єктів. Якщо JOSM не в змозі автоматично розв’язати таку ситуацію він також створить конфлікт.
Розв’язання конфліктів
Кожен шар даних підтримує перелік конфліктів, які ще не розв’язані. Ви можете побачити цей перелік у діалозі переліку конфліктів. Для кожного конфлікту, що міститься там ви можете (або повинні) викликати Діалог розв’язання конфліктів та розв’язати їх.
Дуже важливо розв’язувати конфлікти. Наприклад, ви не можете надіслати власні зміни на сервер OSM, до тих пір, доки не будуть розв’язані усі конфлікти.
Технічні подробиці
З кожним набором змін, який впливає на об’єкт, сервер призначає номер версії об’єкту, який збільшується під час кожної зміни. (Це можна побачити в історії, наприклад лінії 1222.) JOSM запам’ятовує версії завантажених об’єктів та повідомляє їх серверу під час надсилання змін. Якщо сервер має версію із більшим номер ніж у вас (хтось вже встиг змінити об’єкт), він відкине зміни що надсилаються. У цьому випадку JOSM створить конфлікт. Версія, що позначена, як "Моя" у вікні розв’язання конфліктів є старішою за завантажену версію, але містить ваші зміни. Версія, що зветься "Чужою" є найостаннішою версією на сервері, і завантажується з сервера автоматично.
Дивіться також
- Діалог переліку конфліктів — показує перелік конфліктів в поточному шарі даних
- Діалог конфліктів — використовується для розв’язання конфліктів
Назад до основної сторінки Довідки