FMDiff™

Download FMDiff for your platform
View Jürgen Geßwein's profile on LinkedIn

This site is W3C compliant:
Valid XHTML - Valid CSS
Last modified February 24 2016, 20:34:10 CET.

FAQs | Reader's Comments

FAQs - What I would like to know... 

 

Does FMDiff compare .fmp12 files?  ^  

A: FMDiff 3 does types from ".fp5" to ".fmp12". The previous FMDiff 2 is able to read .fmp12 files but will not report on items new with FileMaker 12.

 

Why doesn't FMDiff report used versions and the Recover count?  ^  

A: FM12 and up do not store this information within the file anymore, hence FMDiff is unable to report it.

 

Why does FMDiff report "No apparent errors or warnings, but...  ^  

... when I open the file a Consistency Check is done?" A file "recover.log" then contains:

2011-10-23 14:21:49.964 -0400	WO.fp7	0	*** Started consistency check of improperly closed file, total of 230 block(s) to check
2011-10-23 14:21:49.971 -0400	WO.fp7	0	*** Completed consistency check, checked 230 block(s)

A: A Consistency Check is always performed on an improperly closed file. In the above case, the Consistency Check result is not contradicting the FMDiff result. Changes applied to a file right before a crash or a power failure may not have been saved.

FMDiff currently does not check whether a file was improperly closed, it instead tests the whole file whether it is well formed, while a consistency check just tests whether an internal table of contents points to the correct page numbers.

 

Why does a clone report "indexLanguage: Not assigned"?  ^  

I took two files, one an empty clone of the other, and imported data from the old tables to the new. When I compared them with FMDiff, many fields from the clone file were reported as having no indexLanguage specified. In the old file, they all showed as English. Since one is a clone of the other, I don't think this is correct.

A: A clone per se has no language format information. This will be added when the clone is opened by FMP for the first time. What language will be added depends on the current system language. So the report you see is correct. Cloning is - by the way - the only method to switch a solution from one language to an other. It also takes special precautions when dealing with solutions generated for a language different from the current system language. Please note: this only applies to the default formats for date, time, number, and indexing. Individually set field or layout formats will not be changed.

 

What does it mean when my recovered file shows a number of new tables (or fields)  ^  

A: The original file had some blocks that were not (correctly) linked to the rest of the file. Recover than provides the content of these blocks - usually as Recovered Library - containing just one Recovered Blob.

If a number of Recovered Fields are added by Recover, one recovered record appeared to have more fields than there are originally defined. This means that either one or more records were damaged, or the field definition catalog became corrupt. If the Recovered Fields contain meaningful data in more than one record, the latter is the case. This means the file should no longer be used, except to try to export the contained data if no backup is available. In case all the recovered fields are empty, one or more records were damaged.

Whether the structure became damaged can only be judged by comparing an earlier version or backup to the recovered file.

 

What do these reported Script changes mean?  ^  

Scripts		New				Old
 [~] 32777 	[S] SAP-Transfer start		[S] SAP-Transfer start
                [168 bytes]			[168 bytes]

A: (Example only valid for pre 1.3 versions of FMDiff.) A recovered file - much like a clone - has most locale settings and other default values removed. In the above example the size did not change. It can therefor be assumed that just these default settings differ, which is normal. A more detailed report covering script steps will be implemented at a later time.

To eliminate these unnecessary differences you may try open the file once with FileMaker Pro and close it again. This applies the defaults from your machine to the file. But be warned: you usually can not be sure what default locale settings were before the recover. These may slightly differ from your system and thus the differences are still reported.

 

The open count for Mac OS 10.4.10 does not show up, instead the count for 10.4.9 is incremented.  ^  

A: This is a FileMaker issue. No version of FileMaker (including 9.0v1) is prepared to store a subversion number higher than 9. We have to live with it.

FileMaker has corrected that with version 9.0v2.

 

I do not see anything on my report about checking structural errors (file corruption)  ^  

Regarding the new features for checking structural errors (file corruption), I do not see anything on my report about that. Does this mean no errors were found? Would it be more clear if you stated this explicitly - that the structure was checked in a certain manner and that it passed the test?

A: I'm still reluctant with such a statement, since it is a lot more secure to state that an error was found (in case one was found) than to state the file is (assumed to be) error free, which could at times be misleading. For a relatively save method to exclude file corruption please read Corruption Test. (As of version 1.2 an appropriate message is issued.)

 

Why only one item type in the section overview?  ^  

I am only getting "BaseTables" in the overview. Shouldn't I be seeing other items like scripts, fields, etc.? How do I get the rest of the information?

A: FMDiff just reports differences. If two files are identical, no differences are shown. If there are just differences in the BaseTable section, only these will be reported.

 

I just wanted to make you aware of my particular use of FMDiff  ^  

For my solution, I can generate a report in Inspector which analyzes the difference between two versions of the same solution, but it takes many hours (8 hours or so) to generate it.
The purpose is that when I am deploying a new version of the solution, I need to make sure that I find all of the new or changed data fields (not globals or calculations) so that I can be sure the import of data from the live version goes smoothly. My impression from your website is that you may have designed FMDiff more for DB administrators or managers to verify database structure, or to verify new work done by developers. Just wanted to be sure you knew how valuable FMDiff could be for independent developers as well.

 

How (what) would be the best way to use FMDiff's XML output?  ^  

A: One interesting possibility would be using the XML report and the XSLT that comes with the application package and a third party tool like oXygen to generate a HTML report of your own liking. But unless you are an XSLT expert I currently don't see any specific use for the XML output. It contains the same information as the HTML output, just in a different format.

A: There will be many extensions and improvements to those reports within the next months, so I would not recommend to invest much time in utilizing the XML report today.

 

Is it possible to customize the HTML report? I might need to have a special form attached, to be signed on delivery of the solution.  ^  

A: Yes. There are more ways to accomplish this. In preferences you can make use of five labeled fields that appear as header to your report, which will be sufficient for most cases. Further you may modify the existing XSLT style-sheet that comes with FMDiff, or select XML as report format and apply your own style sheet later.

 

Does FMDiff report differences of the new features in FileMaker Pro 9?  ^  

A: FMDiff is fully compatible with FileMaker Pro 7 up to FileMaker 9 Advanced. Reports include Custom Functions and Custom Menus as well. (See Issues + Limitations for a list of currently implemented sections.)

 

What about Runtime Solutions?  ^  

A: Runtime Solution files are treated equally as normal files. So you are able to compare a "Master" file (from an unbound solution) with the installed bound files, regardless whether "the ability to modify" has been removed.

 

What is the difference between FMDiff and the licensed FMDiff edition?  ^  

A: The free FMDiff edition hides the IDs, the old names, and the modification counts (modificationID) of all elements. This means it does show that changes were applied but you can not tell whether the old or the new file has been modified. Of any file section only the first 10 differences are fully reported, the rest is just listed. As more details will be reported with upcoming revisions, these will mainly or exclusively be reported with the licensed FMDiff version.

The free edition has the touch and feel of the full version, but for use in a production environment the licensed FMDiff version is required.

 

We currently use Analyzer for this (which also does problem and 'where used' analysis). Does FMDiff have other characteristics (features, speed, price) that would cause us to add it to our tools arsenal?   ^  

(Statement from October 17th 2005 - still valid today, updated where appropriate)
I took a look at the material on the Analyzer web site (formerly Waves in Motion, now WorqSmart) because you mentioned it. Quite frankly I feel a little uncomfortable to publicly compare Analyzer to FMDiff for one reason:
As the creator I might be misjudged for being pretty much biased.
But since the product is available, everyone can form an opinion for oneself.

I will confine my statements here to FMDiff, assuming the one who uses Analyzer will know the difference, and for those who don't, I recommend to read the Analyzer UserGuide.

Creating a report with FMDiff is a matter of seconds: drag the solution copy or clone onto one spot of the FMDiff window and the original to another, click Report and you are done. The result is either an XML file (for the experts who may want to play around with that) or a HTML file that opens in any modern browser, ready to be viewed, browsed, searched, printed, or saved as PDF (easy on a Mac, or with extra tool on Windows).

FMDiff is stand alone C++ application with no FileMaker inside, therefor it's a reasonable sized download. It does not "import" or "store" any information. It is simply not necessary since one can search the output and repeat any comparison within seconds.

FMDiff does not rely on or require a DDR, it does it's own reading of the original files, so FileMaker Developer or Advanced are not required. That's why it is so fast. If you ever have tried it you know what I mean.

FMDiff is more aimed at the IT manager or auditor to verify the integrity of a solution and whether it still corresponds to the deployed version - and if not, what the differences are. Nevertheless the developer should know what others may find out about her or his work. And it is for sure valuable to know what has been done at the end of a day.

  ^  

Reader's comments 

Thank you very much for the quick response.
I maintain several big FileMaker Databases and your FMDiff tool is a lifesaver. Money well spent!
Thanks,
Andy W.

Hi Winfried
Just a very quick thanks for FMDiff. Have spent over a week trying to track down issues on a new deployment, FMS9 keeps falling over, not just once a week, as soon as it has 5 or 6 people on it.
Having put in new hardware and eliminated every other variable we are now looking at possible file corruption within our system and possible issues in FMP9. Your tool appears very useful merely in checking for possible corruption - thanks again.
Regards,
Nick L.

I continue to get great benefit from FMDiff - thanks for being diligent about updating the product.
Scott N.

WOW. This is the fastest tool I have ever used in a filemaker environment. A must have for every professional developer.
;-)
Doug R.

Last night my MacBook Pro experienced a G.S.O.D.
I opened up my last backup, ran FMDiff and immediately could see exactly what changes I had made.
Bless you, Winfried!!
Steve aka Dubl

I consider it to be an essential part of the 'developer toolkit'. I'm really pleased that I made this purchase. For the peace of mind alone - being able to corruption-test - it's a delight. But for those times too when my documentation of 'changes on the run' has slipped a little (sigh), it's great.
Mardi K.

IMHO FMDiff offers invaluable help in two fields:
  - corruptions detection
  - revision control and documentation
Before, I was annotating pages and pages about any modification I've done.
Now, many of the work is done by FMDiff and I limit my work to more clever descriptions than "field_A" is now called "field_AA" or "field_AA" is now stored as number instead of text!
Stefano L.

With FMDiff's (and Winfried's) help I was able to confirm that a couple of files that I had open when the power went out in my office show no signs of damage from the event, and don't need to be rebuilt. (Thank $deity.)
It's also been extremely useful to work out what changes I've made between versions when sloppy filing on my part and an aging brain meant I wasn't 100% sure which version was which.
It's a really good tool to have available, even if not used every day.
Andy W.

I mainly use FMDiff for corruption detection. Today it found a corrupted layout. After fixing, I accidentally worked on the old version. FMDiff showed the changes, fixing this idiocy was quick & painless.
It's useful to see the versions of OSes & FMs that have used a file.
Sam H.

In my situation with a vertical market solution it is invaluable. While I still have clients with different versions, it allows me to see exactly what I haven't or have done on their versions.
It also reassures me that my golden master files have never been incorrectly shut down. Phew!
Steve aka Dubl

So far it seems to be the only way to find corruption. To me, that's huge. In the last version folder scanning and the ability to run it from command line were added. That said, I haven't implemented it yet...
Hal G.

I have to add that FMDiff really does work. It was the only tool that gave us any kind of useful trustworthy information at all about the health of the files.
Jim M.

Thanks for the update.
I love the product - after years benefiting from and waiting for FMP's interpreted environment to grind through large jobs it makes me smile every time FMDiff blazes through a file comparison. Well done!
Best wishes,
Nick

 



If you have a question or a comment, I'd be happy to hear about it.

Send your questions or comments via our Contacts page.


Any information about FMDiff and FMVis is subject to change without notice.

© 2005 - 2015 Winfried Huslik †. © 2024 Jürgen Geßwein. All Rights Reserved. FMDiff and FMVis are trademarks of Jürgen Geßwein, Augsburg, Germany. FileMaker is a trademark of FileMaker Inc., Santa Clara, CA, USA. Other trademarks mentioned are property of their respective owners. This web site has not been authorised, sponsored, or otherwise approved by FileMaker, Inc.