Release notes from 2.4.0 back to 1.8.10

Extend to 2.4.1
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.
Extend to 1.8.9