[josm-dev] Deletion conflicts
frederik at remote.org
Mon Apr 27 20:44:31 BST 2009
(CC'ing Chris Browet because I'd like to know if Merkaartor has come up
with a solution for this problem that we could use!)
Shaun pointed out the following problem with conflict resolution
(which is not new, it was present in pre-0.6 times too):
> Nick downloads an area.
> Steve downloads the same area.
> Nick deletes node 23 and uploads.
> Steve changes a tag on node 23.
> Steve does an update, and does not get an update about the fact that
> Nick deleted node 23.
> When Steve uploads all he gets is a Gone HTTP status.
I see several issues here:
Firstly, Steve should not get "Gone" in the last step; he should get
whatever the usual version mismatch error code is - after all he tries
to upload his change based on an old version of node 23. This is
potentially an API bug.
But, more importantly, how could we achieve that Steve's session gets
wind of the fact that Nick has deleted the node?
Idea 1: Implement a kind of "list all objects deleted from this area
within the last X minutes" API call which JOSM could use. This would
slow down the download and increase API load but probably be a stable
way to deal with it.
Idea 2: Before re-downloading an area, let JOSM mark all objects that
came from the API on the last download as "possibly deleted". On merging
the newly downloaded dataset with the existing data, reset that flag for
every object retrieved from the API. The remaining objects flagged
"possibly deleted" have been deleted on the server and should either be
silently removed, or if they have local modifications, a conflict dialog
needs to be shown.
Further ideas, comments?
Frederik Ramm ## eMail frederik at remote.org ## N49°00'09" E008°23'33"
More information about the josm-dev