wiki:Help/Concepts/Conflict

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 source:trunk/resources/images/dialogs/conflict.svg Conflict List panel. In this panel 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 are some examples:

Automatic management

  1. You have downloaded an area.
  2. You modify the way of a landuse. In the meantime another user downloaded the same zone and deleted 4 nodes from a highway and uploads it.
  3. You select the menu File -> source:trunk/resources/images/updatedata.svg Update data. Some nodes no longer exist on the server even though they are still on your layer.

JOSM notifies you by displaying the message: Update data, conflict automatic

When you click on Check on the server: JOSM can resolve this automatically by deleting nodes on your layer that are no longer on the server and do not collide with your modification. JOSM does not create a conflict.

Conflict creation

  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:

Conflicts detected

and creates an unresolved conflict.

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 source:trunk/resources/images/dialogs/conflict.svg Conflict List panel. 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

Last modified 14 months ago Last modified on 2023-10-04T11:01:55+02:00

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.