3.4 - Main view
As you can see in the above image, the main view of the Oso XML Merge window is further split into several distinct parts.
At the top, you have the title bar which displays the input filenames. The background colours of this bar also acts as a key for any selector blocks within the main XML content.
Down the left side you have the selector margin, which can also display line numbers if you haven't disabled them in the preferences. Left clicking and/or dragging in the selector margin will allow you to select whole lines of text.
Within the main display itself, you have the XML files you are currently comparing or merging. To reduce wasted space through not having to render the same text three or four times in different panes - one for each input and the output, Oso XML Merge uses a single unified view, where only the differences between the input files are highlighted. Any common parts of the input files are rendered as plain, simple text - albeit with simple colouring to help you distinguish between different parts of the XML files.
When the input XML files aren't the same, you can clearly see that lines with differences have different colour backgrounds. By default these colours are light blue for differences (where one input file is different from the others), and light red for conflicts (where all input files differ at a particular point). Towards the bottom of the above image, you can also see the currently selected difference (EnableFunctionLevelLinking), with a slightly darker background colour.
When differences (or conflicts) are encountered, Oso XML Merge provides you with a way to choose which of the input files will be used for the output file when merging the XML files together. As you can see in the above image, each difference between the input files has radio buttons that allow you to pick an input file. The selector blocks, as they are called, are colour coded using the same colours as the title bar, so you can easily tell which input file has changed.
When performing a three way operation, most selector blocks will still only show two items - the base XML file, and the left or the right file, depending on which one has changed. The exception to this is when both the left and the right files have been modified independently. Then a selector block will display all three inputs, and the user must guide Oso XML Merge to resolve these conflicts manually. One exception to this is when both left and right files contain the same change. Then it technically doesn't matter which side is chosen, and Oso XML Merge displays this in a special way, by half selecting both the left and the right files. You can see this at the top of the above image where the RootNamespace attribute has been modified in both of the side files, but this change isn't marked as a conflict.