Hallo,
ich schreibe gerade einen neuen Reverter, da mich die Konflikte in dem bestehenden Reverter in JOSM nerven und die Konfliktlösung in JOSM eine Katastrophe ist. Statt dessen will ich jedes angefasste Objekt in einem Changeset auf den vorherigen Stand zurücksetzen, unabhängig davon, ob es danach noch weitere Bearbeitungen gab. Funktioniert auch, osm-xml sieht gut aus und JOSM lädt die Datei dann auch…nur abgedrückt habe ich noch nicht.
Nun frage ich mich, was ich testen sollte bevor ich das Ding benutze. Momentan plane ich ein paar Test [1], aber vielleicht übersehe ich etwas. Das Programm ist momentan recht gesprächig und gibt viel aus…vielleicht zuviel [2]…evtl sollte ich mich auf die Punkte beschränken, wo es nach dem zu revertendem Changeset noch Bearbeitungen an einem Objekt gab (siehe ganz unten im Test-Log). Und wenn alle evtl Bugs gefixt sind, sollte man den Code in die Öffentlichkeit lassen? Ich schiebe den Revert zwar absichtlich nicht direkt zur API, von wo es die ganzen Changeset und History Informationen bekommt, aber man kann ja niemanden zwingen Logs zu lesen.
[1]
Test 1 | v1: created node, way, relation => revert v1 (i.e. delete)
Test 2 | v1: created node, way, relation → v2: modify node, modify, modify relation => revert v2
Test 3 | v1: created node, way, relation → v2: modify node, modify, modify relation => revert v1
Test 4 | v1: created node, way, relation → v2: modify node, modify, modify relation → v3: delete node, delete way, delete relation => revert to v2
Test 5 | v1: created node, way, relation → v2: modify node, modify, modify relation → v3: delete node, delete way, delete relation => revert to v1
[2] (echte Daten in der OSM DB…zum selber prüfen)
2012-10-14T18:53:17Z
OBJECT CHANGES FOR CHANGESET 13492005
CREATED NODE OSM ID:1964493170 Version:1 Lat:48.7071986 Lon:9.7040827 User:SunCobalt Visible:true Tags:
No previous version
MAX VERSION of this node 1
CREATED NODE OSM ID:1964493180 Version:1 Lat:48.7073419 Lon:9.7044297 User:SunCobalt Visible:true Tags:nada=nix, test=blub
No previous version
MAX VERSION of this node 1
CREATED RELA OSM ID:2495748 Version:1 User:SunCobalt Visible:true
-> Members OSM-ID:1964493180 Type:node Role:node
-> Members OSM-ID:1962552513 Type:node Role:node
-> Members OSM-ID:185607312 Type:way Role:
-> Tags:type=testpolygon
No previous version
MAX VERSION of this relation 2
MODIFIED RELA OSM ID:2474667 Version:2 User:SunCobalt Visible:true
-> Member OSM-ID:1964493180 Type:node Role:
-> Member OSM-ID:1962552513 Type:node Role:outer
-> Member OSM-ID:185607312 Type:way Role:
-> Tags: area=no, note=test relation, type=nix
PREVIOUS RELA OSM ID:2474667 Version:1 User:SunCobalt Visible:true
-> Members OSM-ID:1962552513 Type:node Role:outer
-> Members OSM-ID:185607312 Type:way Role:
-> Tags: note=test relation, type=nix
MAX VERSION of this relation 2
MODIFIED WAY OSM ID:185607312 Version:2 User:SunCobalt Visible:true Way Nodes 1962552512 1964493170 1962552514 Tags:blub=bla
PREVIOUS WAY OSM ID:185607312 Version:1 User:SunCobalt Visible:true Way Nodes 1962552512 1962552514 Tags:
MAX VERSION of this way 4
!!! WARNING Revert will override version conflict !!!