[[TranslatedPages(revision=27)]] [[PageOutline(1-10,,Содержание)]] = Конфликт = JOSM работает с локальными копиями [wiki:/Ru:Help/Concepts/Object объектов OSM]. Он [wiki:/Ru:Help/Action/Open открывает их из файла] или [wiki:/Ru:Help/Action/Download скачивает с сервера OSM] и хранит в памяти. Если вы измените объекты или добавите объекты на карту, то работа ведётся с копиями. Исходные объекты продолжают храниться на сервере, откуда их могут затребовать другие пользователи, и куда другие пользователи могут отправлять свои обновления данных. Это означает, что вы не ''владеете'' объектами, с которыми в данный момент работаете, а ''совместно используете'' их с другими людьми. При отправке ваших локальных объектов на сервер может оказаться, что ваша версия противоречит той версии, которую отправил кто-то ещё. JOSM делает всё возможное, чтобы скрыть от вас эти противоречия, но иногда он не может самостоятельно автоматически уладить различия между двумя [wiki:/Ru:Help/Concepts/Object версиями]. В таком случае возникает '''конфликт'''. '''Конфликт''' — это различие между двумя версиями объекта, которое JOSM не может разрешить автоматически. Для каждого слоя данных поддерживается список неулаженных конфликтов в диалоговой панели [wiki:/Ru:Help/Dialog/ConflictList Конфликт]. В этой же панели можно открыть [wiki:/Ru:Help/Dialog/Conflict диалоговое окно для улаживания конфликта]. '''Уладить конфликт''' — значит решить для каждого различия между двумя версиями объекта, какую из версий нужно оставить — первую или вторую. Этот процесс иногда называют также '''слиянием'''. == Конфликты при скачивании или обновлении == #WarningAboutDetectedConflicts Если вы скачиваете объекты с сервера OSM в текущий слой, то объекты с сервера могут "конфликтовать" с объектами, уже присутствующими в слое. Зачастую JOSM может автоматически уладить такие коллизии, но иногда это оказывается невозможным. Вот пример: 1. Вы скачали с сервера точку с id:1, для которой тегу [osmwiki:Key:name name] присвоено значение `"My name"`. 1. Вы отредактировали точку, изменив её имя на `"Or is it this name?"`. В то же время другой пользователь тоже скачал эту точку, изменил её имя на `"That's the name"` и отправил на сервер. 1. Вы выбираете в меню ''Файл -> [[Image(source:trunk/images/updatedata.png,middle)]] [wiki:/Ru:Help/Action/UpdateData Обновить данные]''. С сервера скачивается версия точки с тегом [osmwiki:Key:name name] `"That's the name"`, что конфликтует с заданным вами именем `"Or is it this name?"`. JOSM не может уладить это автоматически. Он создаёт '''конфликт'''. Как правило, в этом случае JOSM показывает такое сообщение об ошибке: [[Image(wiki:Help/Concepts/Conflict:conflict-update-data.png)]] == Конфликт при отправке данных на сервер == При отправке ваших объектов на сервер OSM может возникнуть "коллизия" с данными, отправленными другими картографами. Иногда JOSM способен уладить противоречие автоматически. Если, например, вы пытаетесь удалить уже удалённый объект, то JOSM молча проигнорирует удаление и не будет беспокоить вас сообщением об ошибке. Но в большинстве случаев JOSM не может уладить противоречия автоматически. Вот пример: 1. Вы скачали с сервера точку с id:1 и тегом [osmwiki:Key:name name] со значением `"My name"`. 1. Другой картограф тоже скачал точку с id:1, присвоил ей имя `"That's the name"` и отправил на сервер. 1. Вы изменили имя точки на `"Or is it this name?"` и тоже отправили на сервер. 1. На сервере возникает коллизия вашей версии с версий, отправленной другим картографом. JOSM не сможет уладить эту ситуацию автоматически. Он создаст '''конфликт'''. Как правило, в этом случае JOSM покажет такое сообщение: [[Image(wiki:Help/Concepts/Conflict:conflict-upload-data.png)]] == Конфликты при объединении == В JOSM можно объединять объекты из одного слоя данных с другим слоем данных. И, опять таки, это может привести к "коллизиям" между различными версиями одних и тех же объектов. Если JOSM не может уладить их автоматически, он создаёт '''конфликты'''. == Улаживание конфликтов == Для каждого слоя данных поддерживается список '''конфликтов''', которые ещё не улажены. С ним можно ознакомиться в диалоговой панели [wiki:/Ru:Help/Dialog/ConflictList Конфликт]. Для каждого '''конфликта''' в списке можно (и нужно) открыть [wiki:/Ru:Help/Dialog/Conflict диалоговое окно улаживания конфликтов] и уладить конфликт. Улаживание конфликтов очень важно. Вы не сможете отправить свои изменения на сервер OSM, пока список неулаженных конфликтов не окажется пустым. == Технические подробности == Для каждого пакета правок, который влияет на объект, сервер назначает автоматически увеличивающийся номер версии этого объекта. (Это отображается в истории объекта, например, [osmwww:browse/way/1222/history way 1222].) JOSM запоминает версию скачанного объекта и снова сообщает её серверу при отправке данных. Если номер версии на сервере больше (из-за правки другого картографа), он отклоняет отправляемое изменение. В этой ситуации JOSM создаёт конфликт. Версия, которая именуется «моя» в диалоге улаживания конфликтов — это старая, скачанная версия, но с вашими локальными изменениями. «Их» версия — это текущая, самая последняя, версия на сервере. == Смотрите также == * [wiki:/Ru:Help/Dialog/ConflictList Диалоговая панель «Конфликт»] — показывает список конфликтов в текущем слое данных * [wiki:/Ru:Help/Dialog/Conflict Диалог улаживания конфликта] — его можно использовать, чтобы уладить конфликт ---- Назад к [wiki:Ru:Help Основной странице справки]