My customer had the feeling that his former partner had done some "not-standard" developments in his database, and he wanted to get a clear picture about this. Therefore, he contacted our company to do a 1 day investigation of the custom developments in his database, to get a picture on what is wrong, and what should be done.
Here is a little description on how I do this, which might be useful to y'all.
This in consideration, I just compare every object to the base version. And guess what ... there is a rather quick way to do that.
First of all you have to determine the base version.
First of all, click Help / About. It could be that the client had an runtime upgrade, so be careful. You should interprete the version that is NOT between brackets (between brackets is the client version). The part that is NOT between brackets should be the database version. Actually, it executes the code of CU1, trigger "ApplicationVersion". Sidenote: this trigger should always be changed when doing a full upgrade! Also, this trigger should ONLY be changed when doing a full upgrade.
You see that only checking the "about" isn't enough.
What I also do is checking the version list of some base objects, like:
The version is usually something like: NAVW14.00. This is a 4.0 (no SP). E.g. NAVW14.00.02 would be a 4.00SP2.
If you got all this info, I think you get a pretty good idea of what version the base version is.
Second, you export EVERY object to text from both the customized version and the base version. After that, you split the files with one of the many split file tools that you can download on the forums. Here is a link: http://www.mibuso.com/dlinfo.asp?FileID=831 .
I use the Arasis Merge to compare my files.
Why? Because it is not only possible to do a three way compare and merge (not interesting for this topic, but very interesting for merge-jobs), but it has also a reporting functionality, where you can create an HTML report based on the changed that it finds between the files of two folders.
When you run the report for your two folders, you get a summery like this:
Doesn't look exciting yet, except for point 2, I think.
BUT, furthermore, there is an HTML summery report where you can drill down till code level what the changes are. So you get a list like this:
The blue lines are the objects that are changed. If you click on such a line, you get a report which summerizes the changes in that file only:
And also a detail like:
It is very easy to drill down from overall level to code level.
This way, it's quite easy to get a picture of:
Since I don't normally do the actual work of merging, but just need to see what has been done before and after, I think for me this Araxis look ideal.
I agree with Erik.
For big merges, I use dev toolkit or mergetool ... for merging a few objects or comparing databases (where this blogpost was about), I always use araxis.
And indeed, you should be able to buy shares of Araxis ;)
I don't think you can by shares now:
"Araxis Ltd is based in the Isle of Man, British Isles, and is a privately held company. Araxis is entirely self-funding and self-sustaining"...
But if one could, I think I would have bought some a few years ago!
I like the drilldown, I might just give Araxis a try. Can I buy shares somewhere first though?
Hey Waldo, are you a NAV MVP or an Axarix MVP?
I've been using Araxis for 5 years now and it's a great tool. But I can see I'm not such a heavy user as you. In general I always use Per Mogensen's MergeTool for a full merge and compare in connection with upgrades. It's using a three tier model, where you have the old base, the new base and the modified version of the customer. It's basically the same model as the NAV Developers Toolkit, but that's not so strange, as they simply copied his mergetool (he developed it when he used to work for Navision) and used it as the base for the Developers Toolkit. They even copied the errors that used to be in the Mergetool! But what I like with the Mergetool is that it's giving you the semi-automatic merge, where it's basically merging most of your objects automatically, and you only have to deal about the ones with bigger conflicts.
Araxis I usually use if I only have a few objects I need to compare, and with the three column view you can actually still do some nice manual merges.
I use the developers toolkit for the same task. I compare the objects of a client database with the standard one that comes with the clients version.
Hey great post. This Araxis looks great.