I use WinMerge to compare and edit YAML data files which contain object definitions with various properties. In such files, the ordering of those properties within each bracketed object block is irrelevant; all that matters is whether a particular property is defined or not. Currently, no combination of Compare options, including Ignore Moved Block Detection, seems to trigger the desired behavior when comparing; reordered lines are always flagged as differences when syntactically they are not. It seems that WinMerge simply needs to recognize the YAML syntax, at least insofar as bracketed blocks are concerned, and then while comparing temporarily cache or accumulate the lines in each data block and ONLY compare for existence, not order.
Can this be implemented? This would be an enormous quality-of-use improvement for me.
In addition to ignoring line ordering in YAML files, WinMerge would also need to stop aggregating adjacent changed lines into blocks that are treated en masse. Within each bracketed group or subgroup, individual lines in such files are indeed individual. There are routinely times when I need to migrate a single changed line but WinMerge insists upon migrating an entire group of coincidentally adjacent changed lines.
This is how broken the comparison process is currently for YAML files:
Last edit: Mark Craig 2019-03-03