wiki:Help/Concepts/Conflict

Version 31 (modified by stoecker, 5 years ago) ( diff )

Directory rework, see #18845

Conflict

JOSM locally manages copies of OSM objects. It loads them from a file or downloads them from the OSM server and keeps them in memory. If you modify objects or add objects to your map, you are working on copies. The reference objects are still kept on the server from where other users can retrieve them and where other mappers can send their updates to.

This means that you don't own the objects you are currently working with, you still share them with others. If you exchange your local objects with the server your version may clash with the version somebody else sent in as update. JOSM does its best to hide these clashes from you, but sometimes it can't resolve the differences between two versions automatically. In this cases it creates a conflict.

A conflict is a difference between two versions of an object which JOSM can't resolve automatically.

Each data layer maintains a list of unresolved conflicts in the Conflict List Dialog. In this dialog you can launch a dialog for resolving a conflict.

Resolving a conflict means that you have to decide for every difference between the two object versions whether you want to keep the version from the first or the second object, a process which is sometimes also called merging.

Conflicts when downloading/updating

If you download objects from the OSM server into an existing layer, the objects from the server might "collide" with objects already present in the layer. Often, JOSM can handle these collisions automatically but sometimes this isn't possible. Here's an example:

  1. You've downloaded a node with id:1 from the server whose name tag is set to "My name".
  2. You edit the node and change its name to "Or is it this name?". In the meantime another user downloaded the node too, changed its name to "That's the name", and uploads it.
  3. You select the menu File -> source:trunk/resources/images/updatedata.svg Update data. The version of the node retrieved from the server will have a tag name set to "That's the name" which collides with "Or is it this name?", the name you've been setting.

JOSM can't resolve this automatically. It creates a conflict. Typically JOSM displays an error message as follows:

Conflict when uploading

If you upload objects to the OSM server, they might "collide" there with updates provided by other mappers. Sometimes, JOSM can handle these collisions automatically. If, for instance, you try to delete an already deleted object, JOSM will silently skip deleting and won't bother you with an error message. In most cases, though, JOSM can't deal with them automatically. Here's an example:

  1. You've downloaded a node with id:1 from the server whose name tag is set to "My name".
  2. Another mapper downloads the node with id:1 too, assigns it the name "That's the name", and uploads it.
  3. You change the name to "Or is it this name?" and upload to the server.
  4. On the server, your upload collides with the upload from the other mapper.

JOSM can't resolve this automatically. It creates a conflict. Typically JOSM displays an error message as follows:

Conflicts when merging

In JOSM you can merge the objects in one data layer into another data layer. Again, this can lead to "collisions" between different versions of the same objects. If JOSM can't resolve them automatically it creates conflicts too.

Resolving conflicts

Each data layer maintains a list of conflicts which are not resolved yet. You can consult this list in the Conflict List Dialog. For each conflict listed there you can (and should) launch the Conflict Resolution Dialog and resolve it.

Resolving conflicts is important. For instance, you can't upload your updates to the OSM server unless the list of unresolved conflicts is empty.

Technical background

For each change set that affects an object, the server assigns an increasing version number to that object. (This is shown in the history e.g. way 1222.) JOSM remembers the version of the downloaded objects and reports it back to the server on upload. If the server has a higher version number (due to a change by another mapper), it rejects the uploaded change. In this situation JOSM creates a conflict. The version that is called "my" in conflict resolution dialog is the old, downloaded version, but with your local modifications applied. The version that is called "their" is the most current version on the server that is then automatically downloaded from the server.

See also


Back to Main Help

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.