We probably all know that when pushing configs from Designer to the vault,
or pulling from the vault to Designer, that we can see differences between
designer/vault versions as we do the import/export, which is nice, though
not perfect.

Why is it not perfect? Because Designer compares config just like any
good text editor would (meld, vimdiff, etc.) instead of as XML. What's
the difference? Well, the following two blocks are different to a text
editor, but identical in terms of XML:

<onetag><stuff name="whatever"/></onetag>

compared to:

<onetag> <stuff name="whatever" />

Further, in most XML ordering of elements does not matter, and that is
true for a driver config as well (in every case I can think of anyway; I'd
be interested to have exceptions called out) so that the ordering of
classes/attributes in the filter doesn't matter (as long as the nesting is
correct), and the order of included policies doesn't matter, and the order
of elements in a mapping table does not matter. Still, a text editor
shows them as differences.


compared to:


Finally, I want to see differences at a time other than an import to the
vault; specifically, I want to merge configs when I import into Designer,
so that anything I do not want (driverset GCVs from another environment)
can be left out before it stomps on other values and gets overlooked by me
when I import the driver config today but everything else tomorrow when
I'm not suspecting a problem.

I've found a few XML comparison tools out there, but I really want
something where I can choose, like with the powerful text comparison tools
mentioned above, to keep something from this config, and overwrite
something from that config, and on and on until all of the changes that I
want are in one file. I read online that 'JDeveloper' (Oracle tool) could
do this, and while maybe it can when I put it into XML comparison mode the
silly thing chewed up a whole core for about twenty minutes before I
killed it. I'm guessing it can't handle files as big as 500 KB, but that
seems like something that should be easily handled.

Ideas I've had to get closer to what I want include to come up with a
script that will reliably sort/order driver config stuff without breaking
the nesting of elements; this is so that a regular text comparison tool
works as it should (because now all of the text is sorted as it can be)
but who knows what quirks I'll find when I do that, and it'll take me a
bit of time to code up.

In the perfect world this would be an Eclipse plugin. I've looked into
those too, but had a hard time making it work (a sample comparison plugin
is available with Eclipse), so if somebody can get that to import,
particularly into Designer, I'd love to see it.

What do you use? What could be done to make this work? Are there great,
cross-platform, powerful, preferably free XML tools that can be used to
hack up XML for anything, and in this case for IDM?

Good luck.

If you find this post helpful and are logged into the web interface,
show your appreciation and click on the star below...