Is any one still using FmDiff?

Since almost 20 years I very often (at least a couple of times in a week) use fmdiff (see http://www.fmdiff.com for more info) to compare clones from development to clones from production. A very fast and handy tool!

It hasn't been updated since ages (maybe 10 years) and it does not fully recognize the JSON- and the FILE-functions, but still does a very good job of telling where the differences are.

Compared to saving files as XML or as a DDR and then upload into another tool to make the comparison, fmdif is muuuuuuuuuuch faster and less of a hassle to handle.

Now I am getting messages from MacOS that the support for Intel-based apps will definitely be dropped in MacOS 28 :frowning:

So far on messages about updating fmdiff I wrote to Jürgen Geßwein (whom has taken over support after Winfried Huslik sadly passed away), I've never received any reply.

Now that support for Intel-apps on MacOS is 100% sure ending I still hope for a new version that will keep running on ARM and also will recognise the newest function. But if I'm the only one still using the app, that's probably in vain.

Hence my question is any on e of you still using it? If yes. it is maybe a good idea to let us all ask Jürgen for an improved version. (After so many years of good use, I'd be happy to pay for it again)

What are your thoughts about it?

1 Like

That may be the deal breaker.

I replied to your post in the Claris community, but I'll add my remark here (with a bit more detail) in case it's of some interest to Soup members.

I use FMPerception which is bundled with FMComparison (FMC) and I like them both. FMC does require that the two files be saved as XML, but that's pretty trivial. Once the two are selected in FMC the organized comparison is very thorough; and it allows for ignoring UUIDs, modification counts and timestamps, etc.

Both utilities have saved me a LOT of time. (No affiliation, just a happy user. Oh, and support has always been responsive with Geist/Proof+Geist in my experience.)

2 Likes

I totally agree with you on the usefulness and responsive support, since I'm also a longtime happy user of FMPerception.

FMC is handy, but honestly not as handy as FmDiff. For FMDiff I only have to drop folders of clones (which are automatically produced by the backup process of FmServer anyway) on FmDiff for both original and modified and almost instantly it produces a comparison report.

For FMC I need to make sure to have all the files opened (in background), go to the tools-menu, select 'Database Design Report', always choose 'Report format: xml' (it does not stick), click 'create', select or create a folder where to store the summary and wait (most of the time, only a few seconds). The downside is that the creation of a DDR can't be automated. It would help a lot if simply the result (or a folder with XMLs) of 'Save a copy as xml' could be feed into FMC.

FMC is certainly useful, but I stil prefer FmDiff because I think it is easier to use

1 Like

I do understand. With as fast as changes are coming with FM these days it’s important the 3rd party tools stay up-to-date. I appreciate your preference for how fmdiff works, but 10 years is a long time ‘in software years’. :slight_smile:

If you have to export to XML anyway, if you haven't already paid the huge (HUGE) fee for FM Perception, why not just use an inexpensive but more general DIFF utility like "Beyond Compare" (available for Mac/Win)?

I've used BC for a "long" time. This company is awesome and quickly migrate to Mac about 10 years ago.

Beyond Compare looks interesting. FMPerception provides me with value, so the included FMComparison is a useful “deal sweetener” for me. I’ll download the BC trial to see if it offers something to justify adding it to the toolbox. I agree that the price is attractive.

1 Like

If you have installed Xcode or the Xcode Command Line Tools on a Mac, the FileMerge app is available to you. At no extra cost! It allows you to compare text files – including XML files.

1 Like

I completely understand the speed with which FMDiff was able to generate a report. However it was years old and an unreliable or incomplete report is not a good basis for development.

Here's how to move on. Save a Copy as XML can be run in a script schedule on your server. :sparkles:

Standard Text Tools
There are a lot of general purpose tools that do comparison between files but they are not XML aware.

  1. Command line diff

  2. GUI: BBEdit, FileMerge, Beyond Compare, KDiff3

    These tools do standard comparisons, which is perfect for most code. They are NOT XML-aware. They will diff XML but they don't pay any attention to XML structure or the meaning inherent in the structure. XML AWARE tools are discussed further down the page

As everyone on a Mac can download BBEdit and KDiff3 for free, and they may have fileMerge here's a rough comparison using two XML files, 7.8Mb and 7.9Mb.

Opening files:
BBEdit: less than 2 seconds
KDiff3: less than 2 seconds
FileMerge: more than a minute less than three minutes ( I got bored and did other tasks ). For smaller files, I've never had issues but XML files get big and waiting is not productive.

Functionality:
All three display a map of differences in the scroll bar column.

KDiff3 applies colours to the map so that you can see at a glance "only in file a", "only in file b", "present in both but changed". Very useful.

BBEdit provides a full summary of changes in a utility window below the two files. This allows you to step through the differences quickly and easily (example below). You can drill into these to see the exact character ranges that have changed. On very long lines, that is great.

Nonmatching Lines (File Tessera NZ_fmp12.xml; Line 56464; File Tessera NZ_migrated_fmp12.xml; Line 55645)
Extra lines in Right before 56466 in Left (File Tessera NZ_fmp12.xml; Line 56466; File Tessera NZ_migrated_fmp12.xml; Line 55647:55652)

BBEdit is my standard code editing enviroment and I use it for FileMaker coding. I have a FileMaker language map that provides syntax colouring for FileMaker code. I don't use it for XML comparison.

XML-aware tools

General Tools

XML Diff Tools

The command line tool generates a comparison in seconds.
The GUI can take a while (more than a minute) to load large files. Once files are loaded everything is instant, and only a few seconds to produce comparisons between files.

Cool things about the XML Diff tools

  1. Both the XML Diff command line and the XMLTreeNav app allow you to output the comparison report showing the XML differences between the files.
  2. You can tell it to IGNORE XML attributes, such as ID and ModCount, so that trivial differences don't get in your way.
  3. You output the comparison file as XML which is the same format as the original. The beauty of this approach is that you can open the comparison file any tool you are using to inspect, analyse, or visualise the original XML. XMLTreeNav does this on the fly when you select that option
  4. You can apply XSLT transformation in the command to produce HTML, Markdown, or any other file format for reporting.
8 Likes

Immensely helpful/valuable post, @Malcolm . Thank you for taking the time to write that up. I wish I could like it twice.

3 Likes

This is a great post.

I would only add that IMHO if you're doing a lot with XML, I would recommend using a real XML tool like Oxygen. I've been using Oxygen Enterprise for a long, long, long time. It's incredible for XML and JSON.

1 Like

oxygenxml is a great tool, have also been using it for years (20+). It comes with a very good diff-tool and that does a very good job at comparing files

2 Likes

I am still using fmDiff and fmVis and as long as the file format .fmp12 is around it still works for me. Just had a client who needed a report about how billed time was spent on his file and it served the its purpose excellently ...

2 Likes

Thanks, @mipiano . I forgot about that. I have both Xcode tools installed, but don't often think of using for FM dev. I have used the diff bundle available in TextMate (text editor) to compare XML (it only states if the files differ or not [1]), but I find FMComparison easy to visualize and locate all changes.

I'm not sure that I need/want Beyond Compare, but it's pretty affordable, so may be worth me looking at the trial. :slight_smile:

[1] Edit to add: FM Save as XML outputs as UTF-16 encoding, so text editors like TextMate2 (and Terminal CLI) may not offer much other than "they differ". By converting to UTF-8 encoding the full diff comparison works fine. It's just more tedious (extra steps of converting the files) than using FMC or similar dedicated tools.

1 Like

Beyond Compare does more than just "diff". It's an awesome utility. I would seriously take a look at it for a general purpose utility.

Another plug for FMComparison.

It differs from regular XML diff tools in that you can do different kinds of comparisons, based on your situation, and also choose a bunch of common things to ignore in the comparison to cut down the noise.

Like a common use case we have is a client that does a big event every year. 11 1/2 moths out of the year, they have a good and strict dev > prod workflow. But during the 2 week event, all bets are off. If something needs to get fixed now, they cowboy code it in production. They make every effort to go back into dev and copy/pasta their changes so the files are the same… but things get forgotten. You can choose to ignore internal UUID and modification timestamp differences and just focus on the code differences.

You can now use Fm Dojo to diff versions of your solutions. You can even create scheduled XML Exports on the server and compare your files.

I will start holding regular office hours from next Wednesday at 8 AM so I can show folks how things work and answer questions.