JOSM: Daten angucken, die wiederhergestellt wurden

Hej,
ich hab gestern ziemlich viele Wege repariert und die meiner Meinung nach auch komplett hochgeladen und JOSM meiner Meinung nach auch korrekt beendet.

Beim Start eben, meinte JOSM er habe “1 ungespeicherte Datenebene gefunden” und fragt mich, ob ich die wieder herstellen möchte.

Da ich im Moment mir scheinbar dauernt die aufwendig reparierten Changesets wieder kaputtschiesse, frage ich mich gerade, was ich jetzt tun kann.

Kann ich mir die Daten, die er gefunden hat, irgendwie illustriert kriegen? Auf ner Karte angezeigt kriegen? Sonst irgendwie analysieren um zu verstehen, warum er die in meinem gestrigen Changeset nicht dabei hatte…

— edit: bei einer Prüfung mit dem Validator sind jedenfalls die Fehler, die ich gestern meiner Meinung nach weggemacht hab, in diesem Datensatz wieder da. —

Ja, wenn Du das Wiederherstellen annimmst, sollte die Datei geöffnet werden.

Beim Datenebene wiederherstellen kann in der osm Datenbank kein Unglück geschehen, erst wenn man diese Datenebene hochlädt. Man kann josm aber ohne hochladen verlassen. Und um die datenebene zu verstehen, einen geeigneten Hintergrund dazunehmen.

Ja, das ist auch passiert.

Nur wie kann ich jetzt den Unterschied zwischen dem was schon hochgeladen ist und dem was angeblich noch da ist, feststellen? Wie kann ich sehen, was fuer Objekte ich angeblich verändert hab?

Also sozusagen: Wo sehe ich den Änderungssatz und die Änderungen? Ich seh ja erstmal nur das normale JOSM Bild.

Du kannst den Kartenstil “Modified objects” (bzw. wenn JOSM auf Deutsch gestellt ist “Geänderte Objekte”) aktivieren. Der färbt alle Objekte ein, die im Datensatz geändert wurden, also die beim Hochladen hochgeladen werden. ( https://josm.openstreetmap.de/wiki/Styles/Modified https://josm.openstreetmap.de/wiki/Styles))

Hmm, ich glaube Skinfaxi wollte wissen, wie man herausfindet, was bei einem (mittendrin - aus welchen Gründen auch immer - abgebrochenen) Upload bereits hochgeladen wurde.

Sprich er hat einen lokalen Datensatz mit 1.000 Änderungen. Er beginnt mir dem Upload, ein neues offenes Changeset wird erstellt, 500 Änderungen werden dort hineingeladen … und jetzt bricht JOSM zusammen. Beim Wiederöffnen von JOSM ist es der Meinung, da müsste ein Datensatz wiederhergestellt werden. So, jetzt gibt es ja noch dieses offene Changeset, welches ja erst nach einer Zeit X automatisch vom Server abgeschlossen wird, mit bereits 500 hochgeladenen Änderungen: wie findet man 1. genau dieses Changeset und 2. wie macht man damit den Abgleich (bzw findet die Differenz) zu dem wiederhergestellten, im schlimmsten Fall, 1.000 Änderungen Datensatz?

PS: Ich würde erwarten, dass JOSM das noch offene Changeset auf dem Server erkennt und dort einfach nochmal alle/die restlichen Änderungen reinlädt und dann das Changeset schließt. Ist dem so?

vielleicht hilft das ein bisschen weiter. vielleicht wolltest du aber auch was anderes.

http://nrenner.github.io/achavi/?changeset=57593035

@Chenshi: Ich habe ihn so verstanden, dass er wissen wollte, was JOSM noch nicht hochgeladen hat - das zeigt achavi aber nicht.

Mein Vorschlag:
Bei einer nach einem Absturz wiederhergestellten Datei würde ich zunächst den Menuepunkt Datei->Daten aktualisieren (Strg+U) aufrufen, um die lokal gespeicherten Daten mit denen auf dem Server zu synchronisieren. So weiß JOSM, was bereits hochgeladen wurde. Nun mit Bearbeiten->Suchen… (Strg+F) den Suche-Dialog öffnen und hier in der dritt-letzten Zeile (Zustand) den ersten Kasten (modified) anklicken und dann Enter drücken oder Suche starten anklicken. Nun sind alle Elemente ausgewählt, die das interne Attribut modified gesetzt haben - also noch nicht hochgeladen sind.

Franz

Das ist gut und wirklich hilfreich.Tausend Dank für den Tipp. Ich hab mich in den Menüs nach sowas plattgesucht, aber es ist ja immer sehr schwierig, etwas zu suchen, was man nicht weis wie es heisst.

Kann man das irgendwo auch als Liste sehen?

Ja, dieser Vorschlag führt zur völligen Problemvermeidung.

Für mich ist es völlig unverständlich, wie es sein kann, dass ich in JOSM Daten verändere und hochlade, dann aber trotzdem noch alte Daten in JOSM habe.

Bei einem Testlauf mit dem Validator ist folgendes passiert:

  • beim öffnen des abgestürtzten Datensatzes waren ca. 180 Fehler da.
  • Nach dem aktuealiseren waren nur noch 5 da und bei denen ists wahrscheinlich, dass sie mir letztes mal irgendwie durchgerutscht sind.

Ich hab keine Ahnung, ob das Verhalten von JOSM so geplant ist, oder es an meinen Gegebenheiten (abreissenden Internetverbindungen etc) liegt. Allerdings versteh ich immer noch nicht, wieso ich die bearbeitenden und wiederhergestellten Objekte, wenn ich sie hochlade, verdoppele. Er sollte beim selben Objekt ja eigentlich eine Fehlermeldung wie “Konflikt zwischen Version auf dem Server und Deiner lokalen” bringen und nicht die Elemente einfach geometriegleich draufklatschen.

Ich muss JOSM also so ungeschickt bedienen, dass ich es irgendwie schaffe, die Bearbeiteten Objekte zu verdoppeln.

Neu in JOSM angelegte Wege bekommen erst nach dem Hochladen auf dem Server eine ID zugewiesen. Wenn aber beim Hochladen von neuen Objekten die Internet-Verbindung abreißt, haben viele Elemente auf dem Server schon einen neue ID bekommen, aber JOSM erfährt davon nichts, weil die Übertragung der neuen IDs Richtung JOSM nicht stattgefunden hat.
Wenn man nun nach einem Neustart von JOSM diese (neuen) Objekte erneut hochläd, bekommen sie wieder eine neue ID und sind nun doppelt in der Datenbank vorhanden. Woher soll JOSM denn wissen, welche Objekte, die im Speicher mit “Neu” gekennzeichnet sind, bereits von einem vorigen Upload auf dem Server eine neue ID bekommen haben?

Franz

Das Hochladen selbst ist oft ziemlich schnell, allerdings ist die Verarbeitung auf dem Server mitunter extrem langsam. Wenn man ein größeres Changeset als ein einzelnes Paket hochgeladen hat und sich zwischendurch die Internetverbindung verabschiedet hat, würde ich einfach 3-30 Minuten warten, ob die Daten irgendwann in der eigenen Historie auf osm.org auftauchen und solange einfach nichts tun. Hier im Beispiel waren das immerhin über 2 Minuten.

Wenn ja, sind die eigenen Daten erfolgreich auf dem Server angekommen und die lokale Version ist damit hinfällig. Falls nicht, sind die Daten als ganzes nicht angekommen, und erst dann macht ein erneuter Upload überhaupt Sinn.

Spannend wird das ganze, wenn man in JOSM eine kleinere Paketgröße angegeben hat, und der Upload in mehreren Schritten erfolgt. Das machen wir dann ein ander mal.

Übrigens ist das Thema momentan eine etwas größere Baustelle: https://github.com/openstreetmap/openstreetmap-website/issues/1710

Genau das mache ich. Dachte, damit würde ich Mich an die recht schlechten Internet Verbindungen anpassen.

Als doch wieder viele kleine Changesets Statt lokal zwischenspeichern?

Edit: Das Für Mich nach wie vor verwirrenste an dem Ganzen ist mein Nutzererlebniss, dass ich meine in JOSM hochzuladen und das auch abgeschlossen hab und - zumindestens gestern - JOSM normal beenden kann (Also ohne Warnung, dass Daten hochgeladen werden sollen), er beim nächsten Start aber irgendwoher “ungesicherte Datenebenen” nimmt, die ich restaurieren kann.