SourceGear DiffMerge Changelog

What's new in SourceGear DiffMerge 4.2.0.697

Jun 29, 2015
  • 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.
  • Added Drag-and-Drop onto text fields within Open Dialog. The change in 4.0 to make those fields auto-complete on Windows broke Drop support.
  • Fixed Paste in file windows to respect the line endings (EOLs) of the destination file.
  • Fixed occasional hang seen on Windows when closing last window and error messages seen when repeatedly clicking on close button while in the hung state.

New in SourceGear DiffMerge 4.1.0 (Jun 29, 2015)

  • 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.
  • W2593: Improved support for Windows shortcuts .lnk files in folder windows. The folder window will now compare the contents of a pair of shortcuts for equality. This is a binary/raw comparison to see if the links have identical content (target, working directory, arguments, etc); it does not attempt to dereference the targets.
  • W3459: Updated folder window printing for the above shortcuts changes.
  • W3747, W5281, W7281, W9346, W4964, W2917: Added Shortcut Details dialog. Folder windows now allow right-click or double-click on Windows shortcut .lnk rows and have a View | Shortcut Details... menu command. These will raise a dialog showing the contents of the shortcuts (target, working directory, arguments, icon, etc). For shortcut pairs that have file or folder targets, this dialog contains a button to open a file or folder window to compare them. (This button isn't present when the target refers to a printer, for example.)
  • W9103: Allow Windows shortcut .lnk files on the command line and automatically dereference them and open a file or folder window on their targets.

New in SourceGear DiffMerge 4.0.0 (Jun 29, 2015)

  • 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 mechanism for DiffMerge. This includes the Tools | Registration... and Tools | Register... dialogs. See the chapter on 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.
  • W7021: Added auto-complete to the File | Open ... dialogs.
  • W6778: Better support of Windows Shortcuts .lnk files in Folder Windows. Previous versions would incorrectly try to expand the shortcut target and use the target string in the Folder Window row. This caused problems when the target was an unavailable network share or a printer... This release does not attempt to dereference shortcuts, not even to see if a pair points to the same thing. It just lists them as links with the .lnk suffix (which Windows Explorer hides). A future release will address comparing link targets and/or matchup with a possible peer without the .lnk suffix.
  • W5971, W6608: Disallow Windows Shortcuts .lnk files on the command line and in the File | Open ... dialogs. Again, this release does not attempt to dereference shortcuts. The changes here are to prevent DiffMerge from trying to open the .lnk file as a plain file and then complaining when the UNICODE import fails. A future release will address dereferencing link targets.
  • W7816: Added sgdm_cygwin.sh to the distribution. This is a cygwin bash shell script wrapper to translate cygwin-style pathnames to dos-style pathnames and then invoke DiffMerge. See the section on Git Under Cygwin and Mercurial Under Cygwin for more information.
  • Added section to manual for Mercurial under Cygwin.
  • Added section to manual for VSS.

New in SourceGear DiffMerge 3.3.2 (Jun 29, 2015)

  • Fixed crash in 64-bit versions (observed on Ubuntu 11.04 and 11.10) that happened when launching the Options Dialog.
  • 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.
  • 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.
  • 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.
  • Some of the CLC and HG examples in the manual still referred to DiffMerge.exe rather than sgdm.exe.
  • Fixed shell extension to not call DestroyMenu() on the parts of the context menu for better compatibility with 3rd-party shell replacements.

New in SourceGear DiffMerge 3.3.1 (Jun 29, 2015)

  • 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.
  • On Windows, we now have 32-bit and 64-bit builds. These are distributed in new per-architecture MSIs. In the past we had 1 installer that installed the 32-bit EXE and either the 32- or 64-bit Explorer extension DLL. Now we have per-architecture MSI installers and greatly simplified the setup. The new 32-bit MSI can only be installed on a 32-bit system. The new 64-bit MSI can only be installed on a 64-bit stem.
  • Created unique GUIDs for the 32- and 64-bit Explorer extension DLLs so that both may be installed at the same time on a 64-bit system. The 64-bit MSI was updated to install BOTH versions of the DLL so that it available to both the 64-bit Windows Explorer and any 32-bit Explorer-like applications. (Item:15288)
  • We now use WiX to generate the Windows MSI installers.
  • The core DiffMerge components are now built into a Merge Module MSM package that is simply included by the published stand-alone DiffMerge MSI installer. While this alone is not a user-visible change, it does change how the core DiffMerge components are installed on the system so that they can be shared by other SourceGear products. These are now installed in Program Files/SourceGear/Common/DiffMerge rather than Program Files/SourceGear/DiffMerge. In the past, Vault installed a private copy of the DiffMerge executable in the Vault installation directory. Future versions of Vault will be able to use the shared version. And by sharing the core DiffMerge components, it also means that they will be updated whenever any of the products are updated.
  • The stand-alone DiffMerge MSI installer was changed to be a thin wrapper around the core/common DiffMerge components (in the MSM). Since the MSI is a publicly visible package with a published version number, that version number will appear in the Add/Remove Programs Control Panel under the entry for DiffMerge. But you may have more recent shared components on the system if another, more recent SourceGear product is also installed. You can always refer to the DiffMerge About Box to determine if you have newer shared components installed.
  • The name of the DiffMerge EXE was changed to "sgdm.exe". In the past the name of EXE was either "DiffMerge.exe", "sgdm.exe", or "sgdm3.exe" depending upon whether it was distributed in the stand-alone package or bundled with another product. With the change to a shared component strategy, it was changed to "sgdm.exe". This also avoids a collision with a program named "diffmerge.exe" that is distributed as part of Visual Studio.
  • The new MSI installer always does a per-machine install. It always installs the Windows Explorer extension DLL. And it adds "Program Files/SourceGear/Common/DiffMerge" to the system PATH environment variable.
  • The various InstallPath keys in the Registry were moved to likewise be common/shared. See [HKLM]/SOFTWARE/SourceGear/Common/DiffMerge/Installer. And in particular: [HKLM]/SOFTWARE/SourceGear/Common/DiffMerge/Installer/Location.
  • Bug Fix: GDI Handle leak in Explorer extension. (Item:15907)

New in SourceGear DiffMerge 3.3.0 Build 18513 (Nov 9, 2009)

  • 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.