I’m sure there will be more discussion on the Dev Blog soon, but in the meantime, I’ll just crib the release notes… and remind you to keep the suggestions coming. DiffMerge 3.1 is built almost entirely on user requests from the 3.0 release and 3.1 beta cycles.
Major Improvements Since 3.0.2:
- 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 iffy: DiffMerge on OS X. 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.