wiki:Help/Dialog/Conflict

Conflict Dialog

The Conflict Dialog is used to resolve conflicts between two versions of an OSM object.

The dialog has four tabs but depending on the object type only some are active, though, the Properties and the Tags tab are always active. The tabs from left to right are:

Properties
Basic information of the object and conflicts in main properties of the object
Tags
Conflicts in tags
Nodes
Conflicts in the node list (only relevant for source:trunk/resources/images/data/way.svg ways)
Members
Conflicts in members (only relevant for source:trunk/resources/images/data/relation.svg relations)

If there are conflicts in a tab it is indicated with a red square (source:trunk/resources/images/dialogs/conflict/mergeincomplete.svg) in front of the name and in case of tag conflicts the number of conflicting tags is display in brackets behind the name. All conflicts in these tabs need to be solved.
If there are no (more) conflicts in a tab it is indicated with a green check mark (source:trunk/resources/images/misc/green_check.svg) in front of the name. Once all active tabs have a green check mark, the object's version conflict is solved and the dialog can be closed with source:trunk/resources/images/dialogs/conflict.svg Apply Resolution.

All tabs have a similar structure and are basically three columns each containing a table, from left to right:

  • My version: shows the first object version participating in this conflict. This is usually the object version in your local data set.
  • Merged version: shows the solution, e.g. the result after solving the conflict. This table is initially empty.
  • Their version: shows the second object version participating in this conflict. This is usually the object version currently stored on the server.
    • In case of a conflict after source:trunk/resources/images/dialogs/mergedown.svg Merge layer or source:trunk/resources/images/dialogs/mergedown.svg Merge selection this is the version of the origin.
    • In case of a conflict between the Relation Editor and the data layer this is the version of the relation editor.

Resolving differences between properties

If the properties (Coordinates or Deleted State) of one version of an object are different from the properties of another version, the Conflict dialog shows a red square (source:trunk/resources/images/dialogs/conflict/mergeincomplete.svg) in the tab Properties. Click on the tab to display a dialog for resolving properties conflicts.

The first three rows display basic information of the object, for My version and for Their version, similar to the source:trunk/resources/images/dialogs/history.svg History Dialog, see Basic information about version.

Coordinates
The coordinates of the node. Only relevant for nodes and if the node was moved or deleted.
Deleted State
The state of the object, e.g. if it is still present or if it was deleted.
Referenced by
List of parents, e.g. ways with the node in their node list or relations which the object is a member of. This row just displays information.

As, in the example below, the values for "Coordinates" and "Deleted State" of the two object versions are different and the rows have a red background. On the left side the object has coordinates and is present (e.g. not deleted) while on the right side the object is deleted and therefore has no coordinates. You now have to decide which of these values you want to keep and which you want to discard.

Select the values you want to keep, in the example for instance the value on the left. If you click on one of the buttons between the tables, source:trunk/resources/images/dialogs/conflict/tagkeepmine.svg or source:trunk/resources/images/dialogs/conflict/tagkeeptheir.svg, you decide to keep the values and to discard the opposite values.

The table in the middle now displays the values to keep and the background color turns green. Selected values in the middle table can be cleared again with the button below the table (source:trunk/resources/images/dialogs/conflict/tagundecide.svg).
Once all property conflicts are solved the green check mark (source:trunk/resources/images/misc/green_check.svg) is displayed in front of the name of the tab and if there are no further conflicts in other tabs the button source:trunk/resources/images/dialogs/conflict.svg Apply Resolution is enabled you can apply your decision. The values you've chosen will be applied and the dialog will be closed.

Resolving differences between tags

If the tags of one version of an objects are different from the tags of another version, the Conflict dialog shows a red square (source:trunk/resources/images/dialogs/conflict/mergeincomplete.svg) in the tab Tags plus the amount of conflicting tags. Click on the tab to display a dialog for resolving tag conflicts.

There are three tables displayed in this dialog, from left to right:

  • My version: shows the tags of the first object version participating in this conflict. These are usually the tags of the object version in your local data set.
  • Merged version: shows the final tags. This table is initially empty. The more tag conflicts you resolve, the more tag values will be displayed in this table.
  • Their version: shows the tags of the second object version participating in this conflict. These are usually the tags of the object version currently stored on the server.

In the example below both versions have a tag "name". The values in the two object versions are different, though, and JOSM therefore displays the row with a red background. The value of the first version is "Secondary School", the opposite version has a value "Elementary School". You now have to decide which of these values you want to keep and which you want to discard.
Note: To quickly solve single tag conflicts, the tags in the first tag of both outside tables are by default selected and therefore their background is blue and only the middle table has a red background.

Single tag conflicts

Select the value you want to keep:
In the example for instance the value on the left. If you either double-click on the value or click on one of the buttons between the tables, source:trunk/resources/images/dialogs/conflict/tagkeepmine.svg or source:trunk/resources/images/dialogs/conflict/tagkeeptheir.svg, you decide to keep the value and to discard the opposite value. The table in the middle now displays the value to keep and the background color turns to green. Selected value in the middle table can be cleared again with the button below the table (source:trunk/resources/images/dialogs/conflict/tagundecide.svg).

Once all tag conflicts are solved the green check mark (source:trunk/resources/images/misc/green_check.svg) is displayed in front of the name of the tab and if there are no further conflicts in other tabs, the button source:trunk/resources/images/dialogs/conflict.svg Apply Resolution is enabled and you can apply your decision. The values you've chosen will be applied and the dialog will be closed.

Multiple tags conflicts

Select the values you want to keep:
In the example: If you double-click on a value, or you select more values by holding Ctrl or Shift and then click on the buttons between the tables, source:trunk/resources/images/dialogs/conflict/tagkeepmine.svg or source:trunk/resources/images/dialogs/conflict/tagkeeptheir.svg, you decide to keep the values and discard the opposite values. The table in the middle now displays the values to keep and the background color turns to green. Selected values in the middle table can be cleared again with the button below the table (source:trunk/resources/images/dialogs/conflict/tagundecide.svg).

Once all tag conflicts are solved the green check mark (source:trunk/resources/images/misc/green_check.svg) is displayed in front of the name of the tab and if there are no further conflicts in other tabs, the button source:trunk/resources/images/dialogs/conflict.svg Apply Resolution is enabled and you can apply your decision. The values you've chosen will be applied and the dialog will be closed.

Resolving differences in the node/member list of two versions of a way/relation

Resolution methods are similar for both nodes and members.

If you see a red square (source:trunk/resources/images/dialogs/conflict/mergeincomplete.svg) in the tab Nodes respectively Members then you have to resolve differences in the list of source:trunk/resources/images/data/node.svg nodes of two source:trunk/resources/images/data/way.svg ways respectively the list of members of two source:trunk/resources/images/data/relation.svg relations. There are three columns of tables in the respective panel (see screen shot below):

  • the leftmost table displays the list of nodes/members of the local object version
  • the rightmost table displays the list of nodes/members of the server object version
  • the table in the middle shows the list of nodes/member of the merged way

Initially, the middle table is empty. You should now decide which nodes/members to keep from the local dataset (the leftmost table) and which from the server dataset (the rightmost table) and in which order.

  • Screen with nodes

  • Screen with members

The standard workflow

The standard workflow to resolve conflicts in the node/member lists of two object versions consists of three steps:

  1. Pick nodes/members from either object version and reorder the resulting node/member list if necessary
  2. Freeze the resulting merged node/member list by clicking on the Freeze button (). When you freeze the merged node/member list you tell JOSM that all conflicts in the node/member list are resolved.
  3. source:trunk/resources/images/dialogs/conflict.svg Apply Resolution

Depending on the position of a member/node in the list different background colors are used:

  • - red - the member/node is in this list only. It isn't present in the opposite list.
  • - yellow - the member/node is in both lists, but it is on different positions
  • - green - a member/node is in both lists at the same position
  • - blue - a member/node is selected
  • - white - in the list (Merged version) a member/node is not selected

A simple workflow: Keep the node/member list from your local object version

The following example shows the workflow when you decide to keep all nodes/members in the same order from your local object version.
Note: screenshots are for nodes, but the method is the same for members.

First, select all elements in the leftmost table (either using the mouse or by pressing Ctrl+A in the table) (see next screen shot):

Then, click on the top button right of the table (source:trunk/resources/images/dialogs/conflict/copystartleft.svg) to copy the selected nodes/members to the middle table with the merged nodes/members; You can reach the same result without selecting the nodes/members by clicking on the button on the back button right of the table (source:trunk/resources/images/dialogs/conflict/useallleft.svg).

Finally, click Freeze () to freeze the resulting merged node/member list:

The symbol in the nodes/members tab now switched to a green check mark (source:trunk/resources/images/misc/green_check.svg) and you can apply the merge decisions.

A less simple workflow: Mix and Reorganise the list of nodes/members of the local version of the object and their version

Note: screenshots are for members, but the method is the same for nodes.

Member/Node selection

Selecting members/nodes in the list ("My version" and "Their version") works as usual: Shift+click to select a range of members/nodes, hold Ctrl+click to select and unselect multiple members/nodes.

When members/nodes are selected use the buttons to the right of the ‘My version’ list and to the left of the ‘Their version’ list to put them in the ‘Merged version’ list. The buttons on the two lists are symmetrical

The buttons offer following actions:

Icon Description
source:trunk/resources/images/dialogs/conflict/copystartleft.svg Copy "my" selected elements to the start of the merged member/node list
source:trunk/resources/images/dialogs/conflict/copybeforecurrentleft.svg Copy "my" selected elements before the first selected elements in the merged member/node list
source:trunk/resources/images/dialogs/conflict/copyaftercurrentleft.svg Copy "my" selected elements after the first selected elements in the merged member/node list
source:trunk/resources/images/dialogs/conflict/copyendleft.svg Copy "my" selected elements to the end of the list of merged elements
source:trunk/resources/images/dialogs/conflict/useallleft.svg Copy all "my" selected elements to the target

Depending on the position of a member/node in the list "Merged version" different background colors are used:

  • blue - a member/node is selected
  • white - a member/node is not selected

Reorder the resulting node/member list if necessary, in "Merged version"

When the members/nodes are in the "Merged version" you can move them using the buttons at the bottom of the list

The buttons offer following actions:

Icon Description
source:trunk/resources/images/dialogs/conflict/moveup.svg Move up the selected entries by one position
source:trunk/resources/images/dialogs/conflict/movedown.svg Move down the selected entries by one position
source:trunk/resources/images/dialogs/conflict/remove.svg Remove the selected entries from the list of merged elements

Finally, click Freeze () to freeze the resulting merged node/member list:

The symbol in the nodes/members tab now switched to a green check mark (source:trunk/resources/images/misc/green_check.svg) and you can apply the merge decisions.

Support for comparing node/member lists

It can be difficult to find the differences between the node/member list of two object versions, in particular for ways with many nodes respectively relations with many members.

The Conflict Dialog supports you in finding the differences. It can compare two of the lists displayed ("my" list, the "merged" list, and "their" list) and it can render the differences between them with specific background colors.

From the following combo box you can select which pair of lists to compare:

  • My with Their: compares the leftmost table with the rightmost table in the Conflict Dialog
  • My with Merged: compares the leftmost table with the middle table in the Conflict Dialog
  • Their with Merge: compares the middle table with the rightmost table in the Conflict Dialog

Hints

  • Make sure you don't edit outside of the area you have downloaded in order to reduce the problem of conflicts
  • Resolve conflicts by opening the Conflict Panel, selecting the one of the listed conflicts and choosing whether to accept theirs or mine.

Back to Conflict Panel
Back to Conflict
Back to Main Help

Last modified 4 months ago Last modified on 2024-10-09T13:45:34+02:00

Attachments (37)

Note: See TracWiki for help on using the wiki.