We're already in the right context to call `existsPlug()->getValue()` directly. Instead we were calling `exists()` which was constructing a new context identical to the one we already had.
Changed paths:
M Changes.md
M python/GafferSceneTest/MergeScenesTest.py
M src/GafferScene/MergeScenes.cpp
Log Message:
-----------
MergeScenes : Fix handling of inputs without a computed source
Examples of such an input might be a promoted plug that hasn't yet been connected to anything. In this case we were treating that input as active for every single location declared by the other inputs, and if it was the first input it would take precedence over the other inputs when in Keep mode. This would mean all attributes being lost from the location.
I did look into an alternative fix : defaulting `ScenePlug.exists` to false. But that caused problems for the Parent node when omitting the primary input and parenting children to `/`. There just is no good default value for `exists`; it should be true for the root and false for all other locations.