Ticket #8660: 8660.patch
File 8660.patch, 2.1 KB (added by , 6 years ago) |
---|
-
src/reverter/ChangesetReverter.java
12 12 import java.util.HashSet; 13 13 import java.util.Iterator; 14 14 import java.util.List; 15 import java.util.Set; 15 16 17 import org.openstreetmap.josm.command.ChangeCommand; 16 18 import org.openstreetmap.josm.command.Command; 17 19 import org.openstreetmap.josm.command.DeleteCommand; 18 20 import org.openstreetmap.josm.command.conflict.ConflictAddCommand; … … 345 347 DataSetCommandMerger merger = new DataSetCommandMerger(nds, ds); 346 348 cmds.addAll(merger.getCommandList()); 347 349 350 // Create a set of objects that will be modified by the merge commands 351 Set<OsmPrimitive> modified = new HashSet<>(); 352 for (Command cmd : cmds) { 353 if (cmd instanceof ChangeCommand) { 354 modified.add(((ChangeCommand) cmd).getOsmPrimitive()); 355 } 356 } 357 348 358 ////////////////////////////////////////////////////////////////////////// 349 359 // Create a set of objects to be deleted 350 360 … … 386 396 /* Don't create conflict if changeset object and dataset object 387 397 * has same semantic attributes (but different versions) */ 388 398 !hasEqualSemanticAttributes(dp, hp) 399 // Don't create conflict for object which is not changed or deleted 400 && (modified.contains(dp) || toDelete.contains(dp)) 389 401 /* Don't create conflict if the object has to be deleted but has already been deleted */ 390 402 && !(toDelete.contains(dp) && dp.isDeleted())) { 391 cmds.add(new ConflictAddCommand(layer.data, createConflict(dp,392 393 403 cmds.add(new ConflictAddCommand(layer.data, 404 createConflict(dp, entry.getModificationType() == ChangesetModificationType.CREATED))); 405 conflicted.add(dp); 394 406 } 395 407 } 396 408