You are not logged in.

#26 2018-12-16 12:52:30

mmd
Member
Registered: 2010-11-06
Posts: 1,771

Re: Tester gesucht: "Änderungssätze hochladen"

Das Löschen von Relationen ist (hoffentlich) eine der ganz wenigen Stellen, an denen das Verhalten der neuen und alten Implementierung voneinander abweichen. Bisher ist es in Rails so, dass jede einzelne Änderung in einer osmChange-Nachricht streng von oben nach unten und Schritt für Schritt abgearbeitet wird. Beim Löschen einer Relation muss dann jeweils geprüft werden, ob sie vielleicht noch in einer anderen Relation als Member enthalten ist. Für Parent-Child-Beziehungen muss also zunächst das Child, und dann erst der Parent aufgeführt werden.

Die neue Implementierung weicht hier dahingehend davon ab, dass geschaut wird, ob eine Menge zu löschender Relationen Abhängigkeiten zu dritten Relationen hat. Das wäre also z.B. ein Grandparent, der auf den Parent zeigt, wobei wir die Parent-Child Relationen löschen wollen. Ist das nicht der Fall, können die Relationen gefahrlos gelöscht werden. Damit lassen sich auch 2 Relationen, die sich wechselseitig referenzieren, in einem Schritt löschen.

Ich hatte im "create" Fall schon eine Logik eingebaut, die die alte Rails Logik nachbildet, also streng von oben nach unten geht. Für den "Delete" war das bisher nicht der Fall. Das ist natürlich etwas unschön, weil dann ein Editor, der sich auf dieses Verhalten verlässt, später nicht mehr mit dem alten Rails Port arbeiten kann. Ich muss mal mit Matt klären, ob wir das auch abklemmen müssen.

Generell ist hier das Problem, dass das gewünschte Verhalten nicht wirklich sauber spezifiziert ist, auf der anderen Seite aber von den Rails-Leuten immer ein exakt gleiches Verhalten eingefordert wird. Ich würde daher dringend empfehlen, gedanklich immer davon auszugehen, dass ein osmChange chronologisch von oben nach unten abgearbeitet wird.

Last edited by mmd (2018-12-16 13:04:22)

Offline

#27 2018-12-16 13:14:00

GerdP
Member
Registered: 2015-12-18
Posts: 874

Re: Tester gesucht: "Änderungssätze hochladen"

OK, das hatte ich befürchtet. Wenn die CS auch von anderen Programmen verstanden werden sollen, kann man das wahrscheinlich auch nicht mehr ändern, ohne eine höhere api version zu erzwingen.

Offline

Board footer

Powered by FluxBB