DiffMerge Changelog

What's new in DiffMerge 4.2.1

Feb 9, 2016
  • Added HTML and Text export of file and folder differences to a file.
  • Added new "Export" menu hierarchy.
  • Improved visibility of the selected change within File Diff and Merge windows. Solid side bars are now drawn in addition to the dotted lines and the color was changed to use the selection highlight background color.
  • Added "-ignore_unimportant" option to the command line interface.
  • Added a "quick match" feature to the Folder Window. This is an approximation intended for extremely large media files. If the files are the same size, they are assumed to be equal. These are marked with a "qm" icon rather than the regular "==" icon.
  • Changed Folder Window to use a background thread to scan and compare the contents of the folders. Added a per-window progress bar.
  • Remember details from Page Setup Dialog between runs.
  • Enable SWAP button in all uses of 2-way Open Dialog. Previously this was only visible when the dialog was initiated by Windows Explorer integration.
  • Enable Drag-and-Drop onto DiffMerge File and Folder Windows. These windows now respond to Drop messages and will attempt to open a new window with the dropped files. Only the first 2 items in the drop are recognized and the Open Dialog will be raised first to let you verify the order of the items.
  • Moved the functionality provided by the Find and Go To Line dialogs to a set of controls on the File Window.
  • Have additional fall-back named character encodings in Ruleset.
  • The Folder Window would sometimes not respect the "Allow Default Ruleset" settings when comparing files.
  • Fixed text limit when pasting into the Registration Dialog.
  • Fixed display of omitted lines immediately adjacent to differences in diffs-with-context mode interactively and when exporting unified format output.
  • Cleaned up error message thrown when trying to open binary files.
  • W9384: Upgraded to wxWidgets 3.0.0-rc1 from 2.9.5.
  • Fixed the Edit | Find, Edit | Find Next, Edit | Find Previous, and Edit | Use Selection for Find, commands to use the system-wide search text. This is a follow-on to S3363 and allow Command+E and Command+G to work between apps using the NSFindPboard facility.
  • Fixed problems with keyboard input and interactive editing in a file diff or merge window when entering composed characters. The typical use for this is to enter accented characters in European languages using various "dead char" sequences.
  • Set wxWINDOW_VARIANT_SMALL propery on windows and dialogs so that controls and fonts look more natural.
  • Fixed initial position of Print Preview Windows. Sometimes they would initially appear with the title bar offscreen, which made them difficult to move or close. This was observed on multiple monitor systems.
  • Updated code to populate menu bar so that Folder Windows only have folder-related items and File Windows only have file-related items. When the original OS X menu bar code was written there was a problem with changing menu bars once populated (such as when going from an empty window to one with either a file or folder pair), so the menu was created with all menu items and half of them grayed. This has been fixed and now the menu content behaves like it does on the other platforms.
  • Finder integration:
  • DiffMerge should now appear in Finder's Open with context menu and the Finder | Services menu when an appropriate file or folder is selected.
  • You should also be able to drop items onto the DiffMerge icon in the Dock.
  • Only the first 2 selected or dropped items are recognized and the Open Dialog will be raised first to let you verify the order of the items.
  • You may have to log out and back in before these appear.

New in DiffMerge 4.1.0 (Aug 21, 2013)

  • W9384: Upgraded to wxWidgets 2.9.5 from 2.9.4.
  • W0972, W3075, W3131: Changed the various folder window show/hide buttons to be per-window rather than global. Changed the show/hide peerless button to include peerless folders and shortcuts.
  • W2899, W2646: Simplified (somewhat) the folder window coloring. Got rid of a few colors and softened a few default colors.
  • W2256, W6645, W9218: Added various View | Export Window commands to folder windows. These allow you to export either a text summary or a CSV file of the changes in the 2 folders to a file or to the clipboard. These commands replace the original File | Save As which always wrote CSV to a file.
  • W6338, W8240: Added ability to compare 2 folders and summarize the differences to a file directly from the command line.
  • W0840, W2194, W5681, W7540: Added Copy Left to Right, Copy Right to Left, and recursive versions to folder window. For peerless items, these will clone the item in the other tree. For file pairs, these will overwrite the destination version.
  • W8005, W7540: On Linux and Mac: Support for symlinks as first-class items in folder windows. Symlinks are now identified (rather than implicitly dereferencing the target) and are given a unique icons and status. Status is computed strictly on the symlink's target pathname. (Do the pair of symlinks refer to the same absolute or relative path, rather than comparing the referenced files/folders?) Double-clicking on a symlink raises the Symlink Details Dialog.
  • W8005: Annotate symlink line items on Linux and Mac with trailing "@" and shortcuts on Windows with trailing "^" in folder window.
  • W5983: Updated Linux/Mac manpage to note that "--nosplash" is deprecated.
  • W0290: Added "Command+U / Ctrl+U" accelerator bound to "Show/Hide Unimportant Differences".
  • S3363: Added Edit | Use Selection for Find command ("Command+E / Ctrl+E"). This command allows you to use the Find Next and Find Previous commands without needing to raise the Find Dialog. This feature is available on all platforms, but is intended to emulate a somewhat hidden feature in OS X. DiffMerge currently does not access the system-wide/global/shared find-string, so Find Next and Find Previous commands within DiffMerge will only use the last search string set with Command+F or Command+E within DiffMerge; DiffMerge will not see a find-string set with Command+E by TextEdit.app or Terminal.app, for example.
  • S3363: The Find Dialog's find-string is no longer persisted between DiffMerge invocations. The goal is to later get the initial value for the dialog from any system-wide setting from the last application to do a Find rather than a DiffMerge-only value.
  • W0886, W6312: New icons for line items within the Folder Window.
  • P7454: Fixed handling of ESCape key. Prior to 4.0, the ESCape key could be used to close a file or folder window. This stopped working in 4.0.

New in DiffMerge 4.0.0 (Jun 18, 2013)

  • Upgrade build to use wxWidgets version 2.9.4. The previous release used version 2.8.12.
  • Added code to check our website for the availability of a newer release of DiffMerge. This will happen approximately once a week. You can force a check immediately using the Tools | Check for Updates... menu item. If a newer release is available, a dialog will appear with instructions for downloading and installing it.
  • Remove the bundled "MoveFromSourceGear" html content from the distribution and the Help | About SourceGear menu item. They were replaced with the Tools | Visit SourceGear menu item which opens a browser to a page on our website describing SourceGear and other available products. This allows us to more easily provide current information and do promotional offerings.
  • Added an optional registration and licensing mechanism for DiffMerge. This includes the Tools | License... and Tools | Register... dialogs. See the chapter on Licensing and Registration for more details.
  • W4316: Create editor temp files in a system temp directory rather than in the source directory. This helps keep things tidy, avoids problems when comparing files on a read-only filesystem, and avoids non-standard layout complaints from Eclipse.
  • G9739: Fixed the .DS_Store filtering problem. Added set of filename filters (in addition to the existing suffix filers) that filter on the whole filename. They can also use wildcards.
  • W1671: Allow case-insensitive sorting and matchup in Folder Window. This feature was already present in the Windows version.
  • W9438: Allow whitespace and wildcards in the sub-folder filter patterns.
  • W2848: Added option to ignore case when using folder filter patterns.
  • W8032, 15146: Fixed a problem where the Folder Window would mark a pair of files as different which should have been marked equivalent. This happened when there was a change within consecutive omitted lines.
  • W0581: Disable the OK button in the File | Open ... dialogs until all of the fields name valid files/folders.
  • W8795: Added section on GIT integration to the manual.
  • Created "webhelp" version of manual for the website and added Help | Online Help... Menu command to open it.
  • Removed the splash screen on startup and deprecated the "--nosplash" command line argument.
  • The upgrade to wxWidgets version 2.9.4 allowed us to convert from Carbon to Cocoa system libraries. This gives DiffMerge a more modern look and feel, such as being able to resize a window from any edge rather than just the bottom right corner.
  • The upgrade to the Cocoa system libraries allowed us to offer both 32- and 64-bit Intel versions. Previous releases were limited to 32-bits because of our dependency on Carbon. This version of DiffMerge is built as a Universal binary, so both Intel versions are contained within the same application executable.
  • W2119: Added support for Retina Display
  • W7615: Fixed ugly, ugly, ugly hack to try to raise the initial window when launched from the Terminal using the DiffMerge executable directly rather than the DiffMerge.app application bundle

New in DiffMerge 3.3.2 (Dec 23, 2011)

  • J6399: Fixed crash in 64-bit versions (observed on Ubuntu 11.04 and 11.10) that happened when launching the Options Dialog.
  • J5726: The Auto-Merge button is now only enabled when the files are first loaded and have not yet been edited. There were some weird cases where it would enable/disable (seemingly at random) while you were typing. Since the Auto-Merge button would probably undo any changes you have already made, it seemed reasonable to disable it and avoid the potential confusion.
  • J3388: Fixed bug where the intra-line highlight of a line with changes would be marked unimportant when it immediately followed a line that ended with a context starting delimiter. For example, in a C++ source file, if a line ended with slash-slash comment (with no whitespace between the slashes and the CRLF or LF), DiffMerge would not respect the ends-at-eol setting on the comment context; the following line would be colored as if the previous line has ended with slash-star.
  • J1202: Fixed crash when using the batch output (--diff) feature, a Ruleset that contains a Lines-to-Omit pattern, and input files that had an added/deleted line immediately following an omitted line.
  • X2475: Fix typo in the README file distributed with the DMG regarding the name of the man-page.
  • J9340: Updated Makefile to force 10.6 SnowLeopard compatibility when building on a Lion system. --with-macosx-sdk=/Developer/SDKs/MacOSX10.6.sdk --with-macosxversion- min=10.6

New in DiffMerge 3.3.1 (Aug 2, 2011)

  • Updated company and product logos. (For the 3.3.1 release the screenshots in the manual were not updated.)
  • Updated DiffMerge build to use wxWidgets version 2.8.12.
  • Fixed the Find and GoTo Dialogs to put initial focus in the search field.
  • Added instructions for using DiffMerge as an external diff/merge tool with Mercurial.

New in DiffMerge 3.3.0 (Jun 1, 2010)

  • New features introduced in 3.3.0:
  • Folder Window Equivalence Mode:
  • The Folder Window now has 3 different methods for compairing pairs of files:
  • The original, exact (byte-for-byte) method that marks files as identical or different.
  • A new Simple Equivlance method that can ignore whitespace and EOL characters and mark files as identical, equivalent, or different.
  • A new Ruleset-based Equivalence method that uses some of the Ruleset settings to mark files as identical, equivalent, or different.
  • A new button was added to the Folder Window toolbar to show/hide equivalent files and a new page was added to the Options and Ruleset Dialogs to help you configure this.
  • Added support for Fedora Linux.
  • When the /result option is used, DiffMerge now exits with an exit status that reflects the state of the merge (MERGE-RESOLVED, MERGE-ABORTED, ERROR, etc.)
  • Added support for saving the contents of a Folder Window to a file. This creates a UTF-8 CSV containing the rows currently displayed in the window (respecting the various Show/Hide toolbar buttons).
  • Support for Explorer Integration (EI) on 64 bit Windows XP and Vista. DiffMerge is still a 32 bit application and runs on 32 and 64 bit systems. However, the EI DLL which hooks into Windows Explorer must be the same bit-ness as the platform. This release contains 2 versions of the DLL.
  • Changes since 3.2.0 (released 10/10/2007):
  • Explorer Integration (EI) updates: (Windows Only):
  • Support for Vista and Windows 7 User Account Control (UAC). You can now register and unregister the DLL from the Options Dialog. It will now prompty for elevation and perform the actual work in an elevated child process. You no longer have to launch DiffMerge with elevation to do this.
  • Enhanced the EI context menu:
  • When 2 items are selected, the context menu is changed to have "Compare A with B" and "Compare B with A" menu items to try to avoid the need for the SWAP button on the File Open Dialog.
  • Added a "Clear Remembered List" menu item.
  • When 1 item is selected and you choose to compare the file with one from the remembered list, DiffMerge checks the file date stamps and opens the File Open Dialog with the newest file on the right.
  • Fixed the alignment of our icon in the EI context menu to match other installed extensions.
  • Updated the list of ignored file suffixes in the Folder Window to include lots of binary file types.
  • Major overhaul of the DiffMerge Manual. Updated text to reflect the 3.3.0 release. Updated all screenshots.
  • Added ADVANCED bit to wxRegEx objects created to parse regular expressions in various dialogs. This allows the expressions you enter to use the advanced regex features without having to explicitly add the "***:" syntax.

New in DiffMerge 3.2.0 (May 30, 2008)

  • Added the ability to switch between vertical and horizontal panel layout in File Diff and File Merge windows. Previously, file panels in these windows were shown side-by-side with a vertical splitter between them. You can now toggle between that mode and horizontal mode, where panels are shown above and below. This is useful when your files have long lines and you can�t see the entire line without horizontally scrolling.
  • We now detect binary files (files containing a NUL byte) and give a warning and stop. This keeps us from showing artifically truncated files in the windows.
  • Made the �multi-line intra-line analysis� adjustable for performance reasons. A setting for this can be found on the �Detail Level� page of the Options dialog. There is a large discussion on this feature in the DiffMerge manual.
  • Added External Tool feature. DiffMerge can now be configured to invoke an external, third-party tool for various types of files (based upon the file suffixes). This allows you, for example, to select special tools for XML or Word documents. You can then double-click on a pair of files in a folder window and have the external tool launched to compare them. For more details see the DiffMerge Manual.
  • Use the suffix of the /result pathname (in addition to the suffixes of the 3 input pathnames) when searching for an ruleset. This helps in the case when 3 temp files are used as input to a merge.
  • Use the suffix of the /result pathname (in additional to the suffixes of the 3 input pathnames) when searching for an external tool. This helps in the case when 3 temp files are used as input to a merge.
  • Added work-around on Windows for Win32 TextOut() limitations when drawing extremenly long (>4096 character) lines in the file drawing code.
  • Added alternate cut/copy/paste keyboard shortcuts for Windows and Linux versions. We now support Ctrl Insert, Shift Insert, and Shift Delete.
  • Added code to Mac version to try to bring DiffMerge window to the foreground when we are launched from the command line.
  • Added �files are different/same� information to the �binary files cannot be loaded� dialog by doing a raw comparison of the files.
  • Turned off EXPAND_ENV_VARS in the Windows version so that �$� characters in pathnames are not interpreted. This was causing problems when dollar signs and backslashes were both present.
  • Fixed problem in �Shell ExtensionApproved� registry settings that was preventing explorer integration from working on some Windows systems.
  • Allow �/dev/null� as command line argument on Linux and Mac versions. This was failing because the file-or-folder tests were failing because �/dev/null� is a not a regular file.
  • Fixed crash when DiffMerge was given a pathname to a non-existent file and the pathname contained a �%� character.
  • Added registry keys containing the path to the installation directory and the DiffMerge executable: HKLMSOFTWARESourceGearSourceGear DiffMergeInstallDir and HKLMSOFTWARESourceGearSourceGear DiffMergeLocation
  • Fixed how ruleset chose the actual character encoding for a set of files when it was set to �Use System Local/Default Encoding�. Previously we were taking the value from the (grayed) �Named Encoding� field when we shouldn�t be.
  • Upgraded DiffMerge to use wxWidgets version 2.8.7 (from 2.8.3). This fixes the crash in glibc reported on Ubuntu when accessing the menu, so you shouldn�t need the G_SLICE workaround.
  • Fixed crash on Windows when clicking and dragging the black bars in the glance window to the top of the screen.
  • Fixed problems with how we create the Shell/Explorer Integration context menus on Windows that was in certain circumstances causing files to appear multiple times in the context menu.

New in DiffMerge 3.1.0 (Oct 11, 2007)

  • Windows Shell Extension: Added integration with Windows Shell/Explorer. A 'Compare with DiffMerge' menu item was added to the Windows Explorer right-mouse context menu for files and folders. This feature can be enabled/disabled from the Options dialog. Since the 3.1 beta release, a new mode has been to the added to allow users to right-click a file and store its path in the DiffMerge context menu. Subsequent right-clicks on other files will present the opportunity to diff against the first file.
  • Changed Installer: The .MSI installer is now generated using Advanced Installer. This fixed several installation-related problems, especially on Vista. Administrative privileges are still required for installation, but under Vista, the installer will use the privilege elevation mechanism so that you don't need to be logged in as an administrator to start the installation. If you do not have administrator access to your machine, please use the .ZIP package.
  • Items Placed on Clipboard Remain after Exit: We no longer clear the clipboard when DiffMerge exits.
  • Fixed Various Crashes: Fixed various crashes when windows were closed using the ESC key while the mouse was captured. Fixed crash after auto-merge. Fixed various crashes on Mac OS X when comparing files or folders whose pathnames contained special characters.
  • Added Batch Output Option: Added the ability to use DiffMerge as a command line tool and produce traditional or Unified differences of two files to an output file rather than opening a window. The output is compatible with GNU diff(1) and patch(1).
  • Added 'Save As' Feature: Added File|Save As... feature to editable windows. The editable file is written to the new pathname and the window titles are updated. Changed behavior of '/result:pathname' to behave like 'Save As' (and re-title windows) whenever possible.
  • Added Force-Write Feature: Added code to attempt (after prompting) to override the on-disk file permissions when trying to write to a file that is read-only.
  • Added Backward Searching and Wrap Around to Find Dialog:
  • Scrolling from Glance Window: Clicking and dragging in the glance window on the left now cause the file windows to scroll; previously we only scrolled the file windows on clicks.
  • Added section to manual giving information on integrating DiffMerge with Microsoft TFS and TortoiseSVN.
  • Replaced automatically generated Usage dialog with more readable one.
  • Added support for uppercase command line switches; these behave identically to lowercase ones.
  • Fixed problem where an extra EOL character was being inserted into the edit document when applying a patch into an initially empty document.
  • Added XML Ruleset to the set of builtin rulesets; you may have to hit Restore Defaults on the Rulesets page before you see it (but this will delete any custom rulesets that you have created).
  • Update the installation instructions in the manual to include information for the .ZIP package version on Windows.
  • Added an example shell script to show how to run DiffMerge from the command line on Mac OS X and updated manual. This can be installed in /usr/bin or /usr/local/bin if desired. Thanks to Curtis Thompson for suggesting the need for this. See http://blog.iffy.us/?p=33. Also added a standard MAN page to the Mac distribution. See the Readme.txt for more informatin.
  • Set the EOL-style to platform-native when loading empty files.
  • Changed the meaning of 'platform-native EOL-style' on Mac OS X to be LF rather than CR.
  • Added filename and panel name to the Error dialog that informs you that the file could not be imported using the named character encoding.
  • We now warp the edit view (in addition to the reference view) to the first change when a window is created.
  • Fixed initial focus/selection on Go To Dialog. And changed how we select the text on the destination line so that the caret is at the beginning of the destination line.
  • Corrected case of -nosplash option in manual.