Uwe Raabe 2064 Posted May 21, 2021 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. 8 3 Share this post Link to post
Lachlan Gemmell 33 Posted May 24, 2021 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
Jacek Laskowski 57 Posted June 8, 2021 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. Share this post Link to post
Uwe Raabe 2064 Posted June 8, 2021 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
Jacek Laskowski 57 Posted June 8, 2021 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
Anders Melander 1815 Posted June 8, 2021 Compile it with madExcept and run. Investigate bug report. Profit! Share this post Link to post
Anders Melander 1815 Posted June 8, 2021 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
Uwe Raabe 2064 Posted June 8, 2021 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. 1 Share this post Link to post
Uwe Raabe 2064 Posted June 8, 2021 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. 1 Share this post Link to post
Uwe Raabe 2064 Posted July 29, 2021 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. 1 Share this post Link to post
A.M. Hoornweg 144 Posted March 25, 2022 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... 1 Share this post Link to post
Uwe Raabe 2064 Posted March 25, 2022 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
duzzell 0 Posted September 3 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
duzzell 0 Posted September 3 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
Uwe Raabe 2064 Posted September 3 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