[Talk-de] 2 Fragen zu Osmosis & Change sets
Frederik Ramm
frederik at remote.org
Mi Nov 11 19:58:48 UTC 2009
Hallo,
> osmosis --read-xml file="osnabrueck_april.osm" --read-xml file="osnabrueck_november.osm" --derive-change --write-xml-change file="changefile_1.osc"
>
> so ist dieses 9.900 kb groß.
>
> Nehme ich den umgekehrten Weg:
>
> osmosis --read-xml file="osnabrueck_november.osm" --read-xml file="osnabrueck_april.osm" --derive-change --write-xml-change file="changefile_1.osc"
>
> ....dann sind es 10.200 kb ?
Ja, das ist wie bei der Division. Nutzt man "10/2", erhaelt man 5; nutzt
man hingegen "2/10", erhaelt man auf einmal nur 0,2!
Spass beiseite, die Antwort nimmst Du eigentlich schon mit Deiner Frage
zwei vorweg; wenn ein Way oder eine Relation geloescht wird, so steht im
Changeset nur die "Kopfzeile" drin, nicht aber das komplette Objekt wie
bei der Neuanlage.
Zudem hat Osmosis die Eigenart, die Argumente rueckwarts zu benutzen,
d.h. Dein erster Aufruf erzeugt tatsaechlich ein Changefile, das die
Aenderungen von November nach April beschreibt (und daher viele
Loeschungen enthalten wird), waehrend Dein zweiter Aufruf das
"vorwartsgerichtete" Changefile mit tendenziell mehr neu angelegten
Objekten erzeugt.
> 2.) Was genau wird eigentlich alles in das diff integriert?
> Jegliche Veränderung eines Objektes? Korrekt?
Sobald ein Objekt erzeugt oder veraendert wurde, wird es komplett (mit
Tags und Verweisen) ins Diff aufgenommen. Bei Loeschungen scheint das
auch der Fall zu sein, wobei ich dachte, dass das frueher anders war.
> Gibt es einen Weg dieses automatisiert zu verhindern, dass in einem solchen Falle
> ein Objekt in dem diff auftaucht?
Nein, Osmosis kann das nicht. Aber Du koenntest natuerlich, falls Du
ohnehin nicht gedenkst, Versionsnummern und Changesets auszuwerten, mit
einem simplen "sed"-Aufruf alles auf 1 setzen:
sed -re 's/(changeset|version)="[0-9]+"/\1="1"/g' < alt.osm > neu.osm
(Dein 2. Beispiel aus der Mail hatte kein Changeset-Attribut, aber ich
nehme an, das war ein copy+paste-Fehler?)
Bye
Frederik
--
Frederik Ramm ## eMail frederik at remote.org ## N49°00'09" E008°23'33"
Mehr Informationen über die Mailingliste Talk-de