Changeset 3039 in josm for trunk


Ignore:
Timestamp:
2010-02-25T00:09:13+01:00 (15 years ago)
Author:
mjulius
Message:

fixes #4522 - Merging between layers throws unnecessary conflicts for objects with placeholder IDs

ignore deleted new primitives when merging

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/osm/DataSetMerger.java

    r3034 r3039  
    8888            //    return;
    8989        } else {
     90            // ignore deleted primitives from source
     91            if (source.isDeleted()) return;
     92
    9093            // try to merge onto a primitive  which has no id assigned
    9194            // yet but which is equal in its semantic attributes
     
    99102            }
    100103            for (OsmPrimitive target : candidates) {
    101                 if (!target.isNew()) {
     104                if (!target.isNew() || target.isDeleted()) {
    102105                    continue;
    103106                }
    104107                if (target.hasEqualSemanticAttributes(source)) {
    105108                    mergedMap.put(source.getUniqueId(), target.getUniqueId());
    106                     if (target.isDeleted() != source.isDeleted()) {
    107                         // differences in deleted state have to be merged manually
    108                         //
    109                         conflicts.add(target, source);
    110                     } else {
    111                         // copy the technical attributes from other
    112                         // version
    113                         target.setVisible(source.isVisible());
    114                         target.setUser(source.getUser());
    115                         target.setTimestamp(source.getTimestamp());
    116                         target.setModified(source.isModified());
    117                         objectsWithChildrenToMerge.add(source.getPrimitiveId());
    118                     }
     109                    // copy the technical attributes from other
     110                    // version
     111                    target.setVisible(source.isVisible());
     112                    target.setUser(source.getUser());
     113                    target.setTimestamp(source.getTimestamp());
     114                    target.setModified(source.isModified());
     115                    objectsWithChildrenToMerge.add(source.getPrimitiveId());
    119116                    return;
    120117                }
Note: See TracChangeset for help on using the changeset viewer.