Release notes from 2.8.0 back to 0.6.0

Extend to 2.9.0
March 31, 2022

v2.8.0 is released

New in this release - Git

  • Support for git submodules.
  • Detached HEAD mode is no longer converted automatically to detachedHead-deleteme. Submodule screenshot

New in this release - Simulink

  • It is now possible to turn off the library link icon if you want to. Custom masks library link icon screenshot

Fixed in this release - general usage

  • Calling the dp command line utility without an already-running DiffPlug is now more reliable.
January 28, 2022

v2.7.0 is released

New in this release - Simulink

  • Added support for Simscape.
  • Added support for R2022a.
  • Added support for Stateflow entry and exit ports (introduced in R2021b).

Fixed in this release - Simulink

  • Toggling the split direction while in the undocked state no longer causes an error.
  • Previously, a diff filter such as subviewS/* would fail to apply on an empty subviewS node - it falsely assumed there would be a subviewS/someProperty=foo. This is now fixed, which reduces noise in diff reports, especially related to embedded MATLAB scripts.

New in this release - general usage

  • Keyboard shortcuts for tab navigation.
    • Ctrl+W to close the current tab.
    • Ctrl+Shift+T to reopen a recently closed tab.
    • Ctrl+Tab / Ctrl+Shift+Tab to navigate through tabs (or Ctrl+PgUp/PgDown).
  • Instead of "Accept commits", you now get "Accept 4 commits" (as appropriate).

Fixed in this release - general usage

  • log4j has been entirely removed from DiffPlug.
  • Dragging and dropping changed files in the commit diff viewer is fixed.
  • When uploading a new branch to a remote, the --set-upstream tracking information wasn't being saved to disk. Now fixed.
  • On MacOS only, DiffPlug startup could hang on proxy configuration when no network connections were available. Now fixed.
  • Viewing and diffing folders which filenames containing [...] has been fixed.
October 25, 2021

v2.6.1 is released

New in this release - general usage

  • When you mouseover the head branch, you now get a context-sensitive popup for downloading and uploading against that branch.
  • popup head panel on mouseover popup head panel on mouseover
  • It is now possible to force-push a remote branch backwards (usually not a good idea to do that, DiffPlug will ask for confirmation first).
  • force push backwards
  • git push now includes --set-upstream.

Fixed in this release - general usage

  • Confirm dialogs which are triggered by the sync pane now automatically have keyboard focus.
  • Faster feedback when removing a branch or tag from git tips.
  • "Show help whenever I open a new git history window" was not respected, now it is.
  • Cloning a git repository could sometimes fail starting in 2.6.0, now fixed.
  • Deleting remote branches and downloading branches which have been removed from the remote are now fixed.
  • Attempting to git push and getting rejected because the remote has new commits now proactively prompts to download latest.
  • Retry attempts which needed a --force were broken, now fixed.

New in this release - expert users

  • Whenever you see a red X like below, you can right-click it to open a stacktrace dialog. In previous releases of DiffPlug, this was double-click, but now it is right-click. This change was needed to allow us to use the red X as a regular button in some important places, namely the git operation tracker.
  • red X
October 19, 2021

v2.6.0 is released

New in this release - general usage

  • The git client has been redesigned to improve usability and prepare for new features coming soon.

redesigned git client

Fixed in this release - general usage

  • Folder diff via the dp ext mechanism has been fixed, after it was broken by a performance optimization introduced in DiffPlug 2.5.1.

New in this release - for Simulink users

  • Added support for R2021b.
    • Note: we do not yet support the new Stateflow Entry and Exit mechanisms which were introduced in R2021b. They will be added in the next release.
July 23, 2021

v2.5.1 is released

Fixed in this release - general usage

  • Improved parenthesis and bracket matching in text diffs.
  • Folder diff is much faster.
  • No more "widget is disposed" errors when restoring tabs.

Fixed in this release - for Simulink users

  • Simulink models with plaintext documentation blocks are now displayed correctly.
February 9, 2021

v2.5.0 is released

New in this release - general usage

  • It is now convenient to use user activation (aka floating license) without ever setting a password. So long as you select "user activation" DiffPlug will automatically return and pull licenses from your pool even if you use copy-paste activation.
  • We have improved the license management ergonomics for fleets of air-gapped computers.
  • Improved error logging and debugging info, especially for unresponsive UI.

New in this release - for Simulink users

  • Added support for R2020b and R2021a.
October 23, 2020

v2.4.1 is released

Fixed issues in this release

  • Changing the case of files in a git repository now works seamlessly even on case-insensitive filesystems like Mac OS X and Windows.
  • Fixed various minor Simulink bugs.
May 26, 2020

v2.4.0 is released

New in the release - for Simulink users

Fixed issues in this release

  • If files were checked-in to git and .gitignored (an inconsistent situation which sometimes occurs), then they would be reported as "removed" in the DiffPlug git client. This is now fixed.
March 27, 2020

v2.3.2 is released

Fixed issues in this release

  • If a Simulink model had multiple Goto blocks with the same name, DiffPlug would throw a fatal error. Now fixed.
February 29, 2020

v2.3.1 is released

Fixed issues in this release

  • Improved parsing of Multi-Port Switch blocks.
  • Improved Simulink mask parsing, including expanded documentation.
  • Fixed AttributesFormatString support for .slx models.
  • Fixed a bug which could cause Stateflow states with fixed-point math settings from displaying as EML.
  • Fixed the following errors that some Windows 10 users were seeing on startup:
    • Error code [126] when trying to load jvm.dll: The specified module could not be found.
    • Error: failed to load VM runtime library!
February 21, 2020

v2.3.0 is released

New in the release - general usage

Log all calls to dp

There is now an easy way to inspect all calls to dp, which makes it easier to debug 3rd party tools.

Log all calls to dp

New in the release - for Simulink users

Search Simulink models

It is now possible to search a Simulink model, either by name...

Search a Simulink model by name

...or by specific properties. You can even use full regex if desired.

Search a Simulink model by property

Add support for embedded test harnesses in Simulink Test

DiffPlug now has full support for embedded test harnesses, including diff. It's fine to add, remove, or rename harnesses or the block under test.

Diff Simulink Test harnesses

Auxiliary details

Every item in a Simulink diagram has details, which we show in the bottom left. New in this release, we can now show multiple sets of details for some kinds of item. For example, a subsystem block has a set of details for the block, and another for the subsystem itself:

The details nested within a subsystem

Many of these items used to have their own entries in the model tree (for example configSet.xml), which caused the model tree to get cluttered. Although these items are somewhat hidden for the purposes of viewing, they are always fully expanded in diffs, to make sure that you don't miss any changes.

When viewing When diffing
Viewing an auxiliary object Diffing an auxiliary object

These changes were driven, in part, by the proliferation of auxiliary objects in Simulink Test harnesses and other recent Simulink features.

Diff config for auxiliary objects

This is the first version of DiffPlug which presents changes in the properties of the "system" and "chart" objects in each subsystem and stateflow chart. These objects are mostly backend noise - most meaningful changes to them show up in the blocks and states themselves. For example - Stateflow charts have a property which describes the "action language", but it's very rare that you can change the action language without also changing the states and transitions in your Stateflow chart.

Now that these auxiliary objects are displayed directly, we have added a System section to the diff filter config. When you load an old config, it will default to ignoring the purely-internal properties, but it will still show differences in cosmetic properties like "background color". You can use the normal diff filter config workflow to ignore these as well, if you like, and they are ignored by default in builtin/ignoreCosmetic.

Miscellaneous

  • Added support for Simulink R2020a.
  • Reading the diff of a single long property in a Simulink diff could be difficult / impossible, now fixed.
  • Improved quality of Stateflow diff.
  • Improved display of model workspace MAT-data.
  • Older Simulink files using rare charsets such as ibm-5348_P100-1997 will now load without error.
  • The Simulink detail title could be jumpy, now fixed.
  • Simulink view, diff, and detail are all sorted alphabetically.
January 22, 2020

v2.2.1 is released

Fixed in this release

  • Improved support and debug logging for proxy auto-config (PAC) scripts.
  • Added support for SSL-inspecting firewalls.
  • Fixed license manager gui on Linux.
  • Misc user interface fixes.
November 22, 2019

v2.2.0 is released

New in this release - general usage

Easy mode

A new "Easy mode" was added which allows users to get started more easily.

Easy mode

Diff list extended with tabs for "Recently closed" and "Open now"

Also makes the DiffList easier to open and close.

New Diff list

Closed tabs can be restored

Previously open tabs are now restored on startup, and Ctrl+Shift+T will reopen a recently-closed tab (just like a web browser).

Reopen recently closed

Text diff speed and quality improvement

Speed and quality of text diffs greatly improved, especially for non-western-language Unicode diffs.

Added support for TortoiseSVN

By introducing a new -flavor TortoiseSVN to dp ext. You can read more here.

New in this release - for Simulink users

Multiline properties are now displayed in full

In the viewer

Simulink multiline property view

and in the differ

Simulink multiline property diff

Undock diagrams in the diff to spread across multiple monitors

Simulink diagram docking

This new command is called Undock Undock diagrams across multiple monitors / Undock Dock diagrams back to main window. It is a replacement for Split monitors Spread across multiple monitors.

Wherever you put these undocked diagrams, DiffPlug will remember their position for other Simulink diffs, until you move the main DiffPlug window, at which point you will have to reposition them again.

Ignored filter is shown for additions and removals

You can now view and configure the ignored property filter from the detail diff of additions and removals (previously it was only shown for changes). These filters are also respected when dumping the properties of additions and removals into exported reports.

New Simulink added ignore

Report export now estimates report size

New Simulink report estimate

Improved diff config dialog and defaults.

Better layout, supports copy-paste, undo/redo, drag and drop, and more. The built-in properties ignored as "cosmetic" have added FontWeight and FontAngle for Simulink, and fontSize, drawStyle, midPoint, and labelPosition for Stateflow.

New Simulink report estimate

Fixed in this release

Fixed label parsing for Simulink action ports.

September 5, 2019

v2.1.4 is released

New in this release

Fixed in this release

  • DiffPlug can now handle Windows short filenames (DOS compatibility 8.3 filenames)
    • e.g. "C:\PROGRA~1\SOMEFILE.TXT"
  • When opening a file that no longer exists, DiffPlug now makes it easier to see what happened.
August 26, 2019

v2.1.3 is released

New in this release

  • Added support for R2019b prerelease.

Fixed in this release

  • When using "Track in MATLAB", DiffPlug used to give an error when switching from one model to another with the exact same name, now fixed.
  • Fixed a rendering bug in the selection handles on Simulink lines.
  • Fixed a few things to help load Simulink models from the R13 timeframe.
  • Everything from 2.1.1 and 2.1.2
August 14, 2019

v2.1.2 is released

This is a bugfix release for new features introduced in 2.1.0.

Fixed in this release

  • The dp command line client was limited to only one concurrent connection. There is now no limit to the number simultaneous dp connections.
  • There was an escaping error in our recommended .gitconfig file, corrected here.
  • Simulink reports containing changed SLX metadata could sometimes generate the following errors:
    • NullPointerException: com.aspose.words.DocumentBuilder.zzZ
    • UnsupportedOperationException com.diffplug.differs.simulink.e.aT.v(SourceFile:154)
  • Everything from 2.1.1
August 9, 2019

v2.1.1 is released

This is a hotfix for 2.1.0.

Fixed in this release

  • DiffPlug 2.0.4 and 2.1.0 include a performance improvement that trusts the size of .zip entries in .slx files. However, for some older files, these sizes are not set, which causes a NegativeArraySizeException when opening these models. DiffPlug 2.1.1 keeps the optimizations from 2.1.0, while also opening these older .slx files.
August 7, 2019

v2.1.0 is released

New in this release

  • Added the ability to generate a report from a Simulink diff and export as .docx or .pdf.
    • Currently suppports only human-readable formats, no machine-readable format yet.
    • If there are changes in MAT-data, the existence of the change will be noted in the report, but there won't be any description. So it will say "UserData was added/removed/changed", but that's all.
  • Added support for TortoiseGit.

Fixed in this release

June 14, 2019

v2.0.4 is released

New in this release

  • Added support for firewalls and proxies (including those that require authentication).
  • Simulink diagrams now keep their scroll position in sync during mouse drags.
  • Added the ability to open a .collabdiff archive from SmartBear Collaborator.

Fixed in this release

  • Fixed dp integration with git for the case where content was added or deleted.
    • All external git client users should update their dp commandline to this, especially SourceTree users.
    • Even better is to learn our built-in git client.
  • Fixed a bug when viewing a Simulink diff which could cause a hang when diffing models where a block has been replaced with its inline library implementation.
  • The DiffList closing behavior is now a little less twitchy.
  • Fixed a bug when diffing Simulink models a line which has a destination but no source could cause an exception when performing topological matching.
  • Fixed a bug for legacy licenses in the Chinese locale.
  • Fixed a bug when importing the MATLAB path for a Simulink library link.
April 30, 2019

v2.0.3 is released

New in this release

  • An empty tree diff now says "(no changes)" rather than just being blank.
  • Right-clicking anywhere in the entity console now opens the context menu.
  • Clicking the Goto WC button now triggers a scroll in the history table.
  • Drag a git folder to the remotes + to add it as a remote.
  • Now possible to make a git commit with no changed files, but only by manually overriding the warning.
  • Added the ability to delete all ignored files from a git working copy.
  • Improvements to the apply content / apply delta / unapply delta UI.

Fixed in this release

  • Renaming a git remote to the empty string is now handled correctly.
  • Fixed bug when comparing git working copy to empty commit.
  • Now possible to initialize a git repository in a folder which already contains files.
  • Fixed editing a git commit with no parents (the first commit in a repository).
  • Weird highlighting on the commit/squash editor is now fixed.
March 28, 2019

v2.0.2 is released

New in this release

  • The content of Simulink DocBlocks can now be opened in the viewer (windows only for now).
  • An in-progress git clone can now be cancelled.
  • Git squash now works on a larger variety of commit topologies.

Fixed in this release

  • Fixed intermittent warning when closing the command console.
  • Fixed several zombie thread issues.
  • Fixed many small bugs in the git client, including:
    • Double-clicking the commit button could cause two commits.
    • Editing an old commit message would sometimes not update in the repository view.
    • Many minor fixes.
February 27, 2019

v2.0.1 is released

New in this release

  • As a security measure, if a git repository redirected you to a new URL, DiffPlug would refuse to disclose your password to the new URL and instead give an error. This error now includes a one-click "update this repository URL" to improve the workflow.

Fixed in this release

  • Fixed a parsing warning related to some stateflow transitions which crossed through subcharts.
  • Fixed a bug when accessing git repositories at the entity console without a trailing slash.
  • Fixed a bug where git repository credentials would sometimes need to be entered more than once.
February 8, 2019

v2.0.0 is released

The long wait for DiffPlug 2 is finally over! DiffPlug 2 streamlines the features from DiffPlug 1, and allows us to explore new capabilities that were impossible with DiffPlug 1.

DiffPlug 2 does not need to be installed, you can run it from any folder, and you can run it in parallel with an existing 1.x install without breaking it.

Many of the changes in DiffPlug 2 are about reorganizing DiffPlug 1's features, you can get an overview of them over at migrating from 1.x to 2.x. The list of changes below only covers new features and deprecated features - it doesn't include all the streamlining and simplification that happened between 1 and 2.

Improved Simulink support

  • 3-way diff is now possible for the first time in DiffPlug
  • DiffPlug now supports MATLABĀ® R11 through R2019a, compared to just R2008a through R2017a for 1.8.10
    • Note: support for R11 through R2008b is provisional, full compatibility is guaranteed only for R2009a forward
  • Opening a Simulink file now takes half as much memory than in DiffPlug 1.8.10
  • Diffing two Simulink files now takes 17x less memory than in DiffPlug 1.8.10
    • The quality of Simulink diffs has also been improved dramatically

This feature has not yet been exposed to users, but it is now also possible for DiffPlug to modify a Simulink model. This will allow full merge in a future release.

Temporarily removed, but coming back

There are a few features that we were not able to include in DiffPlug 2.0, but they will definitely return in future versions of DiffPlug.

  • editing text files (currently view-only)
  • exportable Simulink diff report
  • archive decompression
  • Synergy CM support
  • Amazon S3 support

Permanently removed

32-bit operating systems

The last version of MATLAB to support a 32-bit operating system was R2015b. Many of the software systems that DiffPlug is built on top of have announced end-of-life for 32-bit operating systems.

Windows XP

DiffPlug uses many of the same libraries as the Eclipse Java IDE. The latest release of Eclipse has dropped support for Windows XP. The minimum required version is now Windows Vista.

Subversion

Git's dominance in the version-control industry makes it difficult to justify maintenance and upkeep on our subversion integration.

July 12, 2017

v1.8.10 is released

New in this release:

  • Added a new mode for the Simulink report generator - XML_WITH_IMAGES
    • If the output file is output.xml, there will now be a folder output.xml_images which contains a series of 1:1 scale png images.
    • Each changed block will have xml attributes left_img and right_img, which will point to the filename of an image which highlights that particular change.
    • Each diagram which contains changes will have xml attributes left_diagram_img and right_diagram_img, which will point to the filename of an image which contains all the changes of that particular subsystem.
    • Normally, the XML report format only contains xml elements for items which have been changed or added. In XML_WITH_IMAGES mode, a subsystem which is itself identical, but contains changed children, will appear in the XML document as a nested element, and will have left_diagram_img and right_diagram_img properties.
  • Simulink subsystems and subcharts can now be opened in a new tab.
    • Open new subsystems in a new tab
  • When moving up a subsystem, the previously displayed subsystem is now highlighted briefly.
    • In the viewer:
      Highlight parent system in viewer
    • In the differ:
      Highlight parent system in differ
  • Added the license-user=LICENSEFILE flag to the installer for advanced batch installation.

Fixed in this release:

  • DiffPlug had problems displaying systems containing blocks whose names started with the # character.
    • This did not affect logical diffing, but it did affect graphical display.
  • Fixed an issue where Simulink files could not be opened if they didn’t have an .slx or .mdl extension.
  • Fixed various Subversion issues.
  • Fixed a segfault that some Ubuntu users were experiencing due to a recent kernel patch.
March 21, 2017

v1.8.9 is released

New in this release:

  • On linux and mac, the dp command line client can now be symlinked and still perform properly.
    • ln -s (DIFFPLUG_INSTALL_DIR)/dp /usr/local/bin/dp on linux.
    • ln -s /Applications/DiffPlug.app/Contents/Eclipse/dp /usr/local/bin/dp on mac.
    • On windows, the dp.exe file can still be copied on its own.
  • Added support for Simulink R2017a.
    • Signal tracing does not yet support the new bus element ports.

Fixed in this release:

  • HTML comments in Stateflow diagrams are no longer displayed.
  • When tracing a Simulink model, the colors return to normal after the diagram is closed.
  • Japanese character encoding issues in Simulink models.
  • Simulink diffs between unusual combinations of text files.
  • Problem with Windows command line installation for specified installation directory.
December 19, 2016

v1.8.8 is released

New in this release:

  • AUTOSAR files embedded within Simulink models will be included in diffs and diff reports.

Fixed in this release:

  • Several signal tracing problems:
    • Signal tracing still cannot handle feedback loops.
    • However, when a loop is encountered, it will no longer require the tab to be opened and closed.
    • Additionally, double-clicking will no longer automatically extend a trace, which was causing accidental loops.
November 11, 2016

v1.8.7 is released

New in this release:

  • Compatibility testing for R2016b
  • Improvements to the git history view (branches are less-tangled, and supports smoother scrolling).
  • Improvements to the Simulink signal tracing view (branches are less-tangled, and supports smoother scrolling).

Fixed in this release:

  • “Track in MATLAB” now works for models in Git and SVN history.
  • Simulink viewer now shows correct colors.
  • Typing in the Simulink differ config could cause color scheme to flicker, this is now fixed.
  • Deeper bugfix for windows path shortening (e.g. C:\LongPa~1\somefile.slx) when linking Simulink models in MATLAB.
  • Fixed Mac auto-update.
July 11, 2016

v1.8.6 is released

  • New Simulink tracing gui. Extending traces is now included in the free version (it was previously tied to the Simulink differ).

New Simulink tracing

  • Simulink reports now show all nested systems of an added subsystem, rather than just the first added subsystem.

Fixed in this release:

  • Simulink HTML annotations are now displayed without noise from HTML tags.
  • Fixed a bug involving windows path shortening (e.g. C:\LongPa~1\somefile.slx) when linking Simulink models to MATLAB.
  • Simulink blocks with changed UserData are always included within diff reports.
May 17, 2016

v1.8.5 is released

Fixed in this release:

  • When the Simulink differ is in Find only differences matching the critieria above mode, exporting a report in Image per system mode would emit some extra elements which didn’t match the criteria.
  • Fixed UserMask parsing for some of the newest versions of Simulink.
  • Fixed a bug in SLX files generated by R2015a and newer which contained multiple ConfigSets.
  • Improved diff matching when Reference blocks contain invalid SourceType vaules.
  • Improved license manager compatibility with web proxies which don’t support redirects.
May 2, 2016

v1.8.4 is released

Fixed in this release:

  • When the Simulink differ is in Find only differences matching the critera above mode, exporting a report in Image per system mode would omit some system images. This is now fixed.
April 26, 2016

v1.8.3 is released

Fixed in this release:

  • 1.8.2 broke the “Find” functionality. This version fixes it.
April 25, 2016

v1.8.2 is released

New in this release:

  • All single-line diffs which are too big to see on one screen now include a popup minimap on hover. Also applies to Simulink properties.
    • Single line diff
  • Basic support for Gerrit code review.
    • If you check the Gerrit checkbox for a remote, all pushes will automatically go to refs/for/<branch>.
    • Gerrit checkbox
    • Edit metadata dialog will then include ability to set Change-Id and Signed-off-by headers.
    • Gerrit metadata

Fixed in this release:

  • In Simulink diff reports where config was set to Find only differences mode, with a BlockType-specific wildcard filter (such as BlockType=Constant, Matched Properties=*), then changed Constant blocks would not show up in diff reports properly. This is now fixed.
April 21, 2016

v1.8.1 is released

Fixed in this release:

  • DiffPlug can now seamlessly import Simulink differ configs from previous versions.
  • Fixed Simulink custom mask import.
  • Fixed a bug which made it impossible to open some R2009b models which contain Stateflow boxes with an empty name.
April 12, 2016

v1.8.0 is released

New in this release:

  • Added support for MATLAB R2016a.
  • DiffPlug now supports creating custom masks for third-party blocks. This makes it easy to customize the display of in-house block libraries.
    • Custom mask dialog
  • DiffPlug can now filter a diff to find only the specified property changes.
    • e.g. in the example below, only blocks whose gain property has changed will be highlighted.
    • Custom mask dialog

Fixed in this release:

  • Fixed a bug in the Simulink path bar where items could pop up from behind other items.
  • Fixed the Amazon S3 filesytem.
  • Automatic updates have been fixed for Mac OS X.
    • This release must be installed via a full download on Mac, but it will be able to install future updates automatically.
February 29, 2016

v1.7.3 is released

Fixed in this release:

  • Fixed a Simulink bug which could cause some ModelReference blocks to not open the Reference Browser.
  • Fixed a Simulink diff report bug where “Image per diagram” reports would not include images of the inside of added or removed subsystems.
February 9, 2016

v1.7.2 is released

Fixed in this release:

  • Simulink functions embedded inside of Stateflow charts are now handled properly.
  • Fixed an occasional bug when resolving ModelReference files.
  • Improved support for embedded MAT-Data within SLX files.
  • Improved Git caching.
  • Git credentials could get jammed up if a remote URL was changed with a saved password locked to a different URL.

NOTE: This version is likely to trigger the Microsoft Windows SmartScreen. We just renewed our code signing certificate, and as a result we need to rebuild our SmartScreen trust score. In the meantime, you can bypass SmartScreen by clicking More Info

SmartScreen More Info

then click Run Anyway.

SmartScreen More Info

January 4, 2016

v1.7.1 is released

Fixed in this release:

  • Fixed installer bug on some flavors of 32-bit Linux systems (those that report their CPU architecture as i386 rather than x86).
  • Simulink title bar now handles newlines properly.
  • Added instructions for troubleshooting GTK problems on some Linux distros.
December 16, 2015

v1.7.0 is released

New in this release:

Fixed in this release:

  • When drawing plot commands on custom masks, NaN values should be treated as a break in the line. Starting with 1.7.0, DiffPlug does so. Previously, it did not, which caused a “scribble” artifact on some models.
  • Diagrams now remember their position when you return to them.
  • Fixed a bug in the navigation bar related to text diffs.
  • Fixed non-ASCII characters in MDL files.
November 18, 2015

v1.6.3 is released

New in this release:

Simulink

  • Enumerated Constant blocks now show the unqualified constant name.
  • Improved support for Min/Max blocks.
  • Improved custom mask drawing under rotation and mirroring.
  • Added a quick navigation bar to the top of Simulink diagrams.
  • Fixed some multimonitor bugs, including 4-monitor support.
  • Fixed a bug where some EML blocks (outside of a statechart) were not showing up in Diff Reports.
  • Fixed a bug where model functions made it impossible to create an image per diagram report.
  • DiffPlug now matches MATLAB’s behavior for dirty EML blocks.

Platform

  • A quickstart help pane opens for new users of DiffPlug.

Git

  • The git squash dialog now has text wrapping.
  • Added a help tab to the Git repository view.
September 15, 2015

v1.6.2 is released

New in this release:

Platform

  • DiffPlug now remembers its window position when it is shutdown, and attempts to restore that position on startup.
  • Synergy integration can now be controlled from the command line.
    • Synergy CLI

Simulink

  • DiffPlug’s Simulink differ now makes it easy to arrange a diff over multiple monitors.
    • Simulink diff multi-monitor
  • Enumerated constants now display their value.

Git

  • Added the ability to graphically squash commits.
  • Added the ability to edit commit metadata.
  • When viewing a commit, it is now possible to specify which parent you’d like to see the changes relative to.
  • Sync and Reflog are now displayed as tabs, rather than separate buttons.
  • Explicit merges are now --no-ff.
  • Double-clicking a commit or branch now opens that point in history as a folder.
  • Improved the mechanism for applying changes and content from old commits.
  • Nuke now shows you untracked files which will be deleted.
  • It is now possible to drag any commit or branch onto any other to initiate a diff.
  • Made it possible to force push a remote branch backwards.
  • Renamed Show History to History.

Fixed in this release:

  • Fixed a bug which made it impossible to switch dp.simstate.differ licenses.
  • Fixed a bug which caused some dialogs to open partially off-screen.
  • Fixed a bug which made it impossible to open a branch as a folder.
July 28, 2015

v1.6.1 is released

New in this release:

  • DiffPlug now has an integrated Git client.
    • Free while it’s in alpha.
    • Used every day by DiffPlug staff to develop DiffPlug.
  • DiffPlug’s SVN client has returned.
    • Free while it’s in alpha.
    • Not quite ready for day-to-day use.

New in this release related to Simulink:

  • Differ buttons are now located inside the differ window, rather than along the top toolbar.
  • Extensive improvements to Simulink reports.
    • When a subsystem block is added to a model, its contents are now included in the diff report.
    • Added icons for each entry to make it easy to see what kind of element (block, state, transition, etc.) was changed.
    • Long element names (usually Stateflow elements) are now truncated in the table of contents.
    • Very large images now have their lines automatically thickened to ease visibility.
    • Changes to properties are now highlighted on a character-by-character basis.
    • “Image per difference” reports now use a background highlight to emphasize the foreground, rather than dimming the background.
  • The Simulink reference browser is no longer modal, which allows multiple references to be opened at once.
  • Added a tutorial to assist with reducing comparison noise in Simulink diffs.
  • The track in MATLAB feature is now compatible files from version control.

Fixed in this release:

  • Browse now goes to the intended folder, rather than always selecting the user’s home directory.
  • The content of folders are now ordered in a case-insensitive way (similar to the Windows explorer).
  • The MAT-File parser was missing support for unsigned 16-bit integers, as well as some object packing formats.
  • The Simulink “Image per diagram” report was failing intermittently - fixed now.
  • When using the diff navigator to navigate a Simulink diff, the appropriate blocks are now highlighted in the diagram.
April 7, 2015

v1.5.0 is released

New in this release:

  • Realtime diagram tracking in Mathworks® MATLAB®.
    • While the Track in MATLAB button in the top-right of a Simulink diagram is engaged, MATLAB will mirror the selections you make in DiffPlug.
    • This link is optional, and all other features of DiffPlug will continue to work without a MATLAB license.
  • The Simulink differ now ignores the order of Simulink properties, which greatly reduces the comparison noise introduced during MATLAB version upgrades.
    • The differ still respects the order of Array nodes, for which order matters.
  • Added a Clean and Import from MATLAB button to help manage Simulink library folders.
  • The conflict navigator ( First conflict Previous conflict Next conflict Last conflict ) now greys out options which are not possible, to indicate when you have reached the end of the conflicts.
  • Simulink diff reports no longer display details which have been ignored.
  • The Simulink internal property ‘ObjectID’ is now hidden to decrease the noise it caused in diffs.
  • Improved support for Model Reference blocks.
  • Synergy integration allows tying to only viewer or differ.

Fixed in this release:

  • Fixed stability issues in the Windows explorer extension.
  • Fixed a bug which prevented automatic detection of external changes.
  • Fixed a bug in Simulink report generation which could cancel reports which contained matches between text and graphical elements.
  • Text differ can now diff multi-megabyte files with ease.
  • MAT-File viewer / differ now formats floating point arrays correctly.
  • Fixed Stateflow display errors for R2014b and later models.

Missing in this release:

  • DiffPlug’s native Subversion client is not present in 1.5.0. It will return in future releases.
January 28, 2015

v1.4.4 is released

New in this release:

  • All differs now provide easy linking between the list of files and the diff contents.
    • Mouse over a file in the FileList and the appropriate parts of the differ will light up.
    • Likewise, as you mouseover different parts of the differ, the appropriate part of the FileList will light up.

Missing in this release:

  • DiffPlug’s native Subversion client is not present in 1.4.4. It will return in future releases.
January 20, 2015

v1.4.3 is released

New in this release:

  • Added support for configuring Rational Synergy to use DiffPlug for Simulink comparisons.
  • The Simulink differ links the diff windows to the list of files more clearly.
    • Mouse over a file in the FileList and the appropriate parts of the differ will light up.
    • Likewise, as you mouseover different parts of the differ, the appropriate part of the FileList will light up.
    • Multiline property values
  • The commandline client can now ask DiffPlug to quit for the purposes of install scripting.
    • dp.exe --Exit
  • All search boxes (BrowseBar, KeyRing, etc) are now fuzzy searches.
    • Fuzzy search
  • The Simulink differ can now display multiline property values.
    • This is especially helpful for Stateflow states and transitions.
    • Multiline property values
  • DiffPlug now supports navigating up one level using the Esc key.
  • DiffPlug can now render masks that have plot() calls.
  • Improved filtering for UserData.
    • If the property which binds the UserData to a block is filtered (e.g. UserData=DataTag12), then any changes in that UserData will be filtered as well.
  • Better handling of MAT-Data Structures.
  • Complete rework of library handling to focus on relative paths.
  • Diffing “jagged” models and libraries is now much easier.
  • Introduced a new report format.

Fixed in this release:

  • DiffPlug now shows proper background colors for all blocks.
  • DiffPlug’s Simulink viewer no longer clips text when zooming.
  • DiffPlug’s Simulink parser can now handle transitions that don’t have a destination state.
  • Fixed a bug in how the Simulink differ displays additions.
  • Fixed a bug which occasionally prevented a tree-view from scrolling to the very bottom.
  • Fixed a bug in how Workspace Data is displayed in Simulink diff reports.

Missing in this release:

  • DiffPlug’s native Subversion client is not present in 1.4.3. It will return in future releases.
November 24, 2014

v1.4.2 is released

New in this release:

  • Multi-select in the Property diff pane of the Simulink differ.
    • Easily ignore or unignore several properties at once.

Fixed in this release:

  • Fixed a bug which made it impossible to drag and drop tabs for some users.
November 19, 2014

v1.4.1 is released

New in this release:

  • Improved Simulink diff reports.

    • 2.5x performance improvement.
    • Dialog now estimates page count, and allows the user to cancel in-progress reports.
      • Report export dialog
  • Simulink filtering now allows nested paths and wildcards.

    • Previously, DiffPlug only allowed single-keyword ignores, e.g. Position.
    • Now, DiffPlug allows nested ignores, such as GraphicalInterface/ComputedModelVersion
      • Nested filter
    • DiffPlug also supports wildcards, such as SimulationSettings/*
      • Wildcard filter
      • SimulationSettings/* will ignore all children, grandchildren, etc. of SimulationSettings
      • Wildcards are only supported at the entire-node level. Sim*/SomeProp, SimulationSettings/*/Deeper, and SimulationSettings/Snapshot* are all invalid.
    • Right-click a block to wildcard all of that blocktype - effectively ignoring all blocks of that type.
      • Blocktype filter
      • Please note that this will ignore changes to these types of blocks, but not additions. There is no way to filter the addition of any kind of element.

Fixed in this release:

  • Fixed several graphical regressions in the Simulink and Stateflow viewers.
  • Fixed some incompatibilities with the way that older MAT-Files encode Java objects.
November 12, 2014

v1.4.0 is released

New in this release:

  • A free MAT-File viewer / differ.
    • Includes support for WorkspaceData in Simulink models and UserData properties in Simulink blocks, both for viewing and diffing.
  • Simulink diff reports.
    • Supports export to human-readable PDF and DOCX, as well as machine-readable XML.
    • Reports can be triggered from the command line for batch-operation.
  • Simulink subdiff allows any two Simulink elements to be compared (no longer limited to model roots).
    • You can even compare subsystems and subcharts that are inside the same model.
  • DiffPlug can now dereference library links.
  • Differ configs can now be exported and imported, to allow sharing and storing of various settings.
  • Improved support for custom block masks. Works for masks that look roughly like:
    • image(get_param(gcb,'userdata'))
    • disp('Title')
    • disp(get_param(gcb,'SomeParam'))
    • fprintf('%s', get_param(gcb, 'SomeParam'))
  • Implemented Simulink’s AttributeFormatString (a.k.a Block Annotation Properties)
  • More than 10x performance increase for the differ for large models.
June 23, 2014

v1.3.3 is released

New in this release:

  • Simulink viewer / differ is 6x to 10x faster, depending on the model.
    • Similar improvements in memory consumption.

Bugs fixed in this release:

  • Simulink annotations were not respecting ignored properties. This has been fixed.
  • Miscellaneous bugfixes to the SVN client.
June 3, 2014

v1.3.2 is released

New in this release:

  • Full support for offline activation.
    • Online activation is still much faster and easier.
    • For some users, offline activation may be the only method available.
May 12, 2014

v1.3.1 is released

New in this release:

  • Full support for viewing and diffing Stateflow data, events, and targets.
    • Includes support for Embedded MATLAB data.
March 24, 2014

v1.3.0 is released

New in this release:

  • Integrated subversion client!
    • Easily browse text, images, and Simulink on remote SVN servers.
    • Checkout SVN repos and make commits from your local machine.
    • Free while it’s in alpha!
  • Significant performance improvements while browsing the filesystem and opening new diffs.
  • Correct handling of high-resolution screens and non-standard font sizes.
  • DiffPlug now gives a warning if DiffPlug.exe is given command line arguments directly.
    • dp.exe is the intended command line client.
  • KeyRing now gives a warning when a password has leading or trailing spaces which are likely to be a typo.

Bugs fixed in this release:

  • Fixed a bug which affected some folder comparisons.
  • Fixed a minor regression in the command line parser.
February 18, 2014

v1.2.2 is released

New in this release:

  • Improved zoom and pan for Simulink viewer / differ.
    • Mouse-wheel to zoom
    • Middle-mouse-drag to pan
  • No more KeyRing auto-login.
    • The KeyRing no longer prompts for your password on every login. It now waits until it needs your password for something.
  • The license manager has been improved to make changing versions easier.
  • Optional auto-close for deleted files.
  • Darkened some UI colors to improve readability on bright monitors.
  • Added menu items for File -> Open file and File -> Diff files.
    • These don’t take advantage of DiffPlug’s full capability, but they make it easier for new users to get comfortable with DiffPlug.

Bugs fixed in this release:

  • Fixed error when right-clicking on the DiffList with no files selected.
  • Fixed a bug which was causing the Simulink parser to erroneously warn on models with non-standard port dimensions.
February 4, 2014

v1.2.1 is released

New in this release:

  • When external changes are detected in an open file, DiffPlug will now refresh the editor rather than open a file status dialog. If you have made changes to the file, the file status dialog will be displayed as before.
    • If you prefer the old behavior where a file status dialog was displayed whenever an external change was detected, this can be enabled from the “Help -> Preferences” window.
  • DiffPlug’s “new version available” notifier now allows you to ignore a specific update.

Bugs fixed in this release:

  • Fixed a bug introduced in 1.2.0 which affected saving Simulink .mdl files.
  • Fixed the error message that was sometimes displayed when very different Simulink models were compared.
January 13, 2014

v1.2.0 is released

New in this release:

Bugs fixed in this release:

  • Fixed explorer.exe crashes that affected a few XP users with specific conflicting software.
  • Fixed a bug introduced in 1.1.0 which caused the Simulink differ’s colors to stop updating dynamically in response to ignored properties.
  • Fixed a bug which made it impossible to open Simulink models with pre-R2008a Goto blocks.
  • Fixed a bug which made it impossible to open a folder in a zip file which doesn’t contain explicit folder entries.
  • Fixed a minor visual layout bug in the folder viewer.
  • Various UI fixes related to right-click popups.
  • Various UI fixes to the image viewer and differ (better hover detection, better keyboard shortcuts).
October 7, 2013

v1.1.0 is released

New in this release:

  • Powerful signal tracing
    • We’ve added the ability to trace not only one signal, but all the inputs and outputs of a block.
    • Includes intelligent handling of
      • Goto and from
      • Subsystems, inports, and outports
      • Enabled, triggered, and function call subsystems
      • If / else and case subsystems
    • All for free!
    • Also added the ability to extend a trace arbitrarily deep (traces ordinarily end at the first non-virtual block)
      • This is advanced functionality which requires a dp.simstate.differ license
  • Stateflow transitions now display their execution order
  • Full support from R2008a to R2013b
  • KeyRing is now searchable

Bugs fixed in this release:

  • Fixed a memory leak in the Simulink parser - much faster for large models than before!
  • Fixed several display bugs related to special subsystem ports (enable, trigger, function-call, etc.) and how they react to block rotation and mirroring.
July 24, 2013

v1.0.0 is released

New in this release:

  • The Simulink viewer is now free.
    • We encountered too many engineers who brush against Simulink but can’t justify spending money on a viewer which they don’t need every day. Simulink solves a lot of problems in the modelling and embedded software world, and we think a free viewer will grow the ecosystem. A rising tide lifts all boats, including ours! All customers who had purchased a dp.simulink.viewer license in the last 90 days will be receiving a full refund.
  • The Simulink differ, formerly licensed as dp.simulink.differ has been renamed to dp.simstate.differ.
    • This change was made to reflect that DiffPlug is compatible with both Simulink and Stateflow. All customers who had purchased a license for dp.simulink.differ now have additional licenses for dp.simstate.differ.
  • The Simulink differ now updates dynamically as properties are added to or removed from the ignored list.
  • The Simulink viewer and differ have much improved UI for model scripts (InitFcn, StopFcn, etc.)
  • The folder viewer now has buttons for expanding and collapsing all child folders.

Bugs fixed in this release:

  • Fixed an intermittent bug which occasionally brought up an error dialog when a viewer or differ was closed.
  • Fixed a bug which made it impossible to diff text files using the default config.
  • Fixed a bug which made it impossible to create new custom syntax rules.
  • Fixed the error message when a user tries to copy zero files in a FileList.

We’re proud to have finally made the transition from the 0.x series to the 1.x series! Here’s why we’ve earned the 1.0 moniker:

Our very first release was in January 2012. We entered public beta that August, with version 0.4.2. Today, DiffPlug has been in the hands of happy users for more than 18 months. Thanks to the help of our pioneering customers, we’ve seasoned DiffPlug from a knock-kneed foal into a reliable workhorse.

The more visible reason we’ve earned the 1.0 designation is that we’ve finally released documentation whose quality matches that of the software it’s documenting. Now that we have a way to show you how the more intricate parts of DiffPlug work, we are free to add more great capabilities.

The 1.0.0 release is a small change from 0.6.1 that came before, but it marks a critical threshold in our infrastructure, and an inflection point in our ability to improve DiffPlug even further.

May 6, 2013

v0.6.0 is released

New in this release:
  • A full-featured manual, which can be grabbed from the Help menu. It's a great start, but look for even more improvement in the next version.
  • Browse Bar improvements:
    • The text prefixes ("local|", "web|", etc.) in the Browse Bar have been replaced by icons.
    • The "~/" character sequence now expands to the user's home directory (as Unix users are accustomed to).
  • Directory Viewer is now more consistent with Directory Differ.
  • If you attempt to open a file which is already open in DiffPlug, it will now bring the existing view to the top, rather than opening a second view.
    • If you want multiple views of the same file, you can still get them. Just double click the filebar at the top of the currently open view, and it will open a second view.
  • The Simulink viewer now displays not only the model but also the subsystem which is currently open.
Bugs fixed in this release:
  • Fixed a licensing bug which was affecting some users.
  • Fixed a bug which made it impossible to wipe the KeyRing on application startup.
Extend to 0.5.1