Jump to content
Uwe Raabe

Structured Difference Viewer added to MMX Code Explorer

Recommended Posts

Version V15.0.37 of MMX Code Explorer introduces Structured Difference Viewer (former available as a separate product). It is registered as an External Difference Viewer in the IDE and can be used as an alternative way to compare source files.

image.thumb.png.d257c876848c3f0b65d9f654147d9e64.png

  • Like 8
  • Thanks 3

Share this post


Link to post

Good idea to make it part of MMXCE. I purchased the diff viewer back in the day but it was such a niche product I used to forget to install it when setting up a new dev VM. Looking forward to seeing the IDE integration.

Share this post


Link to post

I get error after open Viewer and trying close it by X button.

And now only killing the process can close Viewer app.

Delphi 10.3 and Windows 7.

 

image.thumb.png.c51cd881fab083cb27668cd2e8ed582b.png

Share this post


Link to post

Googling that error code gives one usable hint:

Quote

The exception C06D007F is a windows delayed load or missing export exception.

As I have not the slightest idea which DLL may be causing this I would like to ask if you can try some Sysinternals magic to find that out. It might be related to using Windows 7 and MMSDV being compiled with Delphi 10.4.2.

Share this post


Link to post

Process Monitor with filter: result is not SUCCESS
 

15:14:02,9686712    MMX_SDV.exe    7608    CreateFile    C:\Windows\Prefetch\MMX_SDV.EXE-C22AB698.pf    NAME NOT FOUND    Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Attributes: n/a, ShareMode: None, AllocationSize: n/a
15:14:02,9692724    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\System32\wow64.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9696735    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\System32\wow64win.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9701432    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\System32\wow64cpu.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9705388    MMX_SDV.exe    7608    CreateFile    C:\Windows\System32\wow64log.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9727291    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\winspool.drv    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9730834    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\winspool.drv    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9747241    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\sechost.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9769192    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\MMX_SDV.exe.Local    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9772908    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.18837_none_41e855142bd5705d\comctl32.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9781272    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\version.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9784119    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\version.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9793129    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\netapi32.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9799320    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\netapi32.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9804474    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\netutils.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9811045    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\netutils.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9815691    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\srvcli.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9820002    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\srvcli.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9824942    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\wkscli.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9828137    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\wkscli.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9833001    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\SHFolder.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9836609    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\shfolder.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9843890    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\apphelp.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9849440    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\AppPatch\sysmain.sdb    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9872487    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\imm32.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9881468    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\imm32.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9886826    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\imm32.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9911259    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\WindowsShell.Manifest    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:02,9937350    MMX_SDV.exe    7608    QueryDirectory    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\MMX_SDV.pl-PL    NO SUCH FILE    Filter: MMX_SDV.pl-PL
15:14:02,9939015    MMX_SDV.exe    7608    QueryDirectory    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\MMX_SDV.pl    NO SUCH FILE    Filter: MMX_SDV.pl
15:14:02,9940577    MMX_SDV.exe    7608    QueryDirectory    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\MMX_SDV.en-US    NO SUCH FILE    Filter: MMX_SDV.en-US
15:14:02,9941802    MMX_SDV.exe    7608    QueryDirectory    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\MMX_SDV.en    NO SUCH FILE    Filter: MMX_SDV.en
15:14:02,9943194    MMX_SDV.exe    7608    QueryDirectory    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\MMX_SDV.PLK    NO SUCH FILE    Filter: MMX_SDV.PLK
15:14:02,9944376    MMX_SDV.exe    7608    QueryDirectory    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\MMX_SDV.PL    NO SUCH FILE    Filter: MMX_SDV.PL
15:14:02,9970411    MMX_SDV.exe    7608    CreateFile    C:\Windows\SysWOW64\rpcss.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9971933    MMX_SDV.exe    7608    CreateFile    C:\Windows\SysWOW64\rpcss.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9986440    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\wtsapi32.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:02,9997924    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\wtsapi32.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0003313    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\WINSTA.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:03,0008270    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\winsta.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0043491    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\uxtheme.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:03,0050350    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\uxtheme.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0062632    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\pl-PL\user32.dll.mui    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0073723    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\Globalization\Sorting\SortDefault.nls    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0141024    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\Registration\R00000000007e.clb    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0148925    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\WindowsCodecs.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0387725    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\MMX_SDV.exe.Local    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:03,0390254    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\winsxs\x86_microsoft.windows.c..-controls.resources_6595b64144ccf1df_6.0.7600.16385_pl-pl_57651e9fc65047a4\comctl32.dll.mui    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0424186    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\Fonts\StaticCache.dat    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0655592    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\ole32.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:03,0839244    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\MMX_SDV.exe.Local    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:40,1728374    MMX_SDV.exe    7608    CreateFile    C:\Users\Jacek\AppData\Local\Programs\Raabe Software\MMX\15\imageres.dll    NAME NOT FOUND    Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
15:14:40,1733848    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\imageres.dll    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:
15:14:40,1736702    MMX_SDV.exe    7608    CreateFile    C:\Windows\SysWOW64\pl-PL\imageres.dll.mui    NAME NOT FOUND    Desired Access: Generic Read, Disposition: Open, Options: , Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a
15:14:40,1737425    MMX_SDV.exe    7608    CreateFile    C:\Windows\System32\pl-PL\imageres.dll.mui    NAME NOT FOUND    Desired Access: Generic Read, Disposition: Open, Options: , Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a
15:14:40,1738264    MMX_SDV.exe    7608    CreateFile    C:\Windows\SysWOW64\pl\imageres.dll.mui    NAME NOT FOUND    Desired Access: Generic Read, Disposition: Open, Options: , Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a
15:14:40,1738828    MMX_SDV.exe    7608    CreateFile    C:\Windows\System32\pl\imageres.dll.mui    NAME NOT FOUND    Desired Access: Generic Read, Disposition: Open, Options: , Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a
15:14:40,1739956    MMX_SDV.exe    7608    CreateFileMapping    C:\Windows\SysWOW64\en-US\imageres.dll.mui    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection:

 

 

Share this post


Link to post

What is is that makes is a structured difference viewer?

Looking the screenshot in the first post I don't see much structure there. I mean, the diff tool I use would have picked up on the fact that two of the lines in the original file had been embedded into a block in the changed file.

Share this post


Link to post
48 minutes ago, Anders Melander said:

What is is that makes is a structured difference viewer?

The stucture relates to the class and its methods as seen in the tree view to the left. F.i. if only the order of methods in a class changes, be it in the interface or the implementation, the structured difference would rate that as equal. Inside each method the diff is the same as a simple line diff.

  • Thanks 1

Share this post


Link to post
2 hours ago, Anders Melander said:

Compile it with madExcept and run.

If the error just could be reproduced here in my environment, I would do.

 

Nevertheless, I will add madExcept in the next release.

  • Like 1

Share this post


Link to post
2 hours ago, egroups said:

How I can setup/activate this feature?

Usually the MMX setup installs the app and also registers it into the Delphi IDE. You only have to select it as the default viewer.

image.thumb.png.0e64f442553fbebed2257cb6c4346424.png

  • Like 1

Share this post


Link to post

Can I call this structured diff viewer with command line arguments?  I want to integrate it as an external diff viewer in tortoiseSVN ...

 

Also, the menu item "help->user manual" does nothing...

  • Like 1

Share this post


Link to post
29 minutes ago, A.M. Hoornweg said:

Can I call this structured diff viewer with command line arguments?

Yes. Command line options are:

-S select structural diff (default)

-F select file diff

-D:<Delphi version> selects language mode. Accepted values: 10, 10.1 .. 10.5 (yeah, I know) for Seattle to Alexandria

<left file>

<right file>

 

36 minutes ago, A.M. Hoornweg said:

Also, the menu item "help->user manual" does nothing...

Indeed, that is an oversight. It tries to open mmsdvmanual.pdf, but I couldn't get a copy from Gerrit as I had hoped. I will disable that entry in the next release until some documentation is available.

Share this post


Link to post

In Delphi 12.1, I try to make the MMX Structured Diff View the default:

- select Structured Diff Viewer

- click default button (or not, it doesn't matter)

- choose External viewer

- click Save

The IDE ignores my selections and continues to display the default internal viewer. When I re-open the Difference Viewer dialog, Internal view is selected, as if my changes were not saved. I know this is not your doing but do you have any ideas about what I may be doing wrong?

 

Thanks

Share this post


Link to post

Well, I was going to settle for Beyond Compare. But I found that when I choose Beyond Compare as the Default internal viewer, then choose External viewer as preferred, the MMX Structured Diff Viewer is displayed. So I got what I want.

Thanks

Share this post


Link to post
2 hours ago, duzzell said:

The IDE ignores my selections and continues to display the default internal viewer. When I re-open the Difference Viewer dialog, Internal view is selected, as if my changes were not saved.

I can reproduce that. Please file a bug report at https://qp.embarcadero.com/

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×