"For instance. You add a node then create a link from that node then undo the action that created the node".
Well, that is exactly what I mean. Being able to select more than one node for instance, and delete them, would give you the possibility of deleting a whole lot of taxi/apron paths at the same time, wouldn't it?
Just for the sake of debate:
I'm not sure that
is what you mean. Perhaps what you need is just "delete", not "undo"?
I think George is trying to demonstrate a different point: that building such a "undo some random action from the past" type of function is fraught with difficulties in trying to identify the full scope of what actions are compatible with this function and what aren't. Sometimes it will be very hard to make the call on how this function "should" work, and at these trickier and less obvious scenarios, users will have their own differing opinions on what they want from the function.
Perhaps a better example would be this:
Let's say you created one long twy link. Then you joined it up with lots of other links that intersect it. Now, what should happen when I select "undo create long taxiway link"? There is no longer a "long taxiway link" to delete, as the long link no longer exists.
But it would still be possible to programme
some sort of response: the programmer could write the code so that it "remembers" which of the short links used to be part of the long link, and delete those. But then you'd have lots of nodes left behind. Or maybe it should delete those nodes as well? But then that would delete
other links that may have also been attached to those nodes. Maybe that's what the user would want? Maybe it's not? Maybe for every user that wants it to work
one way, there's another user that wants it the
other way.
All I can say is, I will genuinely eat my hat if it can be shown that such a function is easy to produce in a way that users will find natural or instinctive to use

There, I've laid down the gauntlet!
