wiki:Ru:Help/Concepts/Conflict

Version 8 (modified by ak099, 10 days ago) (diff)

обновил до ревизии 27

Другие языки:

Конфликт

JOSM работает с локальными копиями объектов OSM. Он открывает их из файла или скачивает с сервера OSM и хранит в памяти. Если вы измените объекты или добавите объекты на карту, то работа ведётся с копиями. Исходные объекты продолжают храниться на сервере, откуда их могут затребовать другие пользователи, и куда другие пользователи могут отправлять свои обновления данных.

Это означает, что вы не владеете объектами, с которыми в данный момент работаете, а совместно используете их с другими людьми. При отправке ваших локальных объектов на сервер может оказаться, что ваша версия противоречит той версии, которую отправил кто-то ещё. JOSM делает всё возможное, чтобы скрыть от вас эти противоречия, но иногда он не может самостоятельно автоматически уладить различия между двумя версиями. В таком случае возникает конфликт.

Конфликт — это различие между двумя версиями объекта, которое JOSM не может разрешить автоматически.

Для каждого слоя данных поддерживается список неулаженных конфликтов в диалоговой панели Конфликт. В этой же панели можно открыть диалоговое окно для улаживания конфликта.

Уладить конфликт — значит решить для каждого различия между двумя версиями объекта, какую из версий нужно оставить — первую или вторую. Этот процесс иногда называют также слиянием.

Конфликты при скачивании или обновлении

Если вы скачиваете объекты с сервера OSM в текущий слой, то объекты с сервера могут "конфликтовать" с объектами, уже присутствующими в слое. Зачастую JOSM может автоматически уладить такие коллизии, но иногда это оказывается невозможным. Вот пример:

  1. Вы скачали с сервера точку с id:1, для которой тегу name присвоено значение "My name".
  2. Вы отредактировали точку, изменив её имя на "Or is it this name?". В то же время другой пользователь тоже скачал эту точку, изменил её имя на "That's the name" и отправил на сервер.
  3. Вы выбираете в меню Файл -> source:trunk/images/updatedata.png Обновить данные. С сервера скачивается версия точки с тегом name "That's the name", что конфликтует с заданным вами именем "Or is it this name?".

JOSM не может уладить это автоматически. Он создаёт конфликт. Как правило, в этом случае JOSM показывает такое сообщение об ошибке:

Конфликт при отправке данных на сервер

При отправке ваших объектов на сервер OSM может возникнуть "коллизия" с данными, отправленными другими картографами. Иногда JOSM способен уладить противоречие автоматически. Если, например, вы пытаетесь удалить уже удалённый объект, то JOSM молча проигнорирует удаление и не будет беспокоить вас сообщением об ошибке. Но в большинстве случаев JOSM не может уладить противоречия автоматически. Вот пример:

  1. Вы скачали с сервера точку с id:1 и тегом name со значением "My name".
  2. Другой картограф тоже скачал точку с id:1, присвоил ей имя "That's the name" и отправил на сервер.
  3. Вы изменили имя точки на "Or is it this name?" и тоже отправили на сервер.
  4. На сервере возникает коллизия вашей версии с версий, отправленной другим картографом.

JOSM не сможет уладить эту ситуацию автоматически. Он создаст конфликт. Как правило, в этом случае JOSM покажет такое сообщение:

Конфликты при объединении

В JOSM можно объединять объекты из одного слоя данных с другим слоем данных. И, опять таки, это может привести к "коллизиям" между различными версиями одних и тех же объектов. Если JOSM не может уладить их автоматически, он создаёт конфликты.

Улаживание конфликтов

Для каждого слоя данных поддерживается список конфликтов, которые ещё не улажены. С ним можно ознакомиться в диалоговой панели Конфликт. Для каждого конфликта в списке можно (и нужно) открыть диалоговое окно улаживания конфликтов и уладить конфликт.

Улаживание конфликтов очень важно. Вы не сможете отправить свои изменения на сервер OSM, пока список неулаженных конфликтов не окажется пустым.

Технические подробности

Для каждого пакета правок, который влияет на объект, сервер назначает автоматически увеличивающийся номер версии этого объекта. (Это отображается в истории объекта, например, way 1222.) JOSM запоминает версию скачанного объекта и снова сообщает её серверу при отправке данных. Если номер версии на сервере больше (из-за правки другого картографа), он отклоняет отправляемое изменение. В этой ситуации JOSM создаёт конфликт. Версия, которая именуется «моя» в диалоге улаживания конфликтов — это старая, скачанная версия, но с вашими локальными изменениями. «Их» версия — это текущая, самая последняя, версия на сервере.

Смотрите также


Назад к Основной странице справки