Release Notes

Public

11.0.16.7608: Nov 07 2022

New

All platforms - Plastic: Semantic Visual Differences are here!

We ported the Visual Diff feature from the Windows Legacy GUI to the new (multiplatform) GUI, which means that now, the Visual Diff feature is available on three platforms, Windows, macOS, and Linux!

The Visual Diff is a diagram that helps to understand the changes made to a file, in a semantic way. Visual Differences are available for those file formats that support semantic differences (.NET, Java, PHP, C, C++). When the semantic differences are calculated, the Visual Diff displays a graphical representation of them. The diagram displays, classes, usings, methods, members, fields, etc, and some decorations indicating if an entity was added, changed, moved, or deleted. It also helps to display the differences between them.

The Visual Diff is available in three places:

1- The Diff Control (note that we also implemented a couple of options for the semantic diff):

* Skip format changes: This option ignores the indentation and EOL changes when the semantic diffs are calculated.

* Reformat: This option automatically reformats the source code:

2- The Diff Window, when clicking a Refactor Group when using our "analyze refactors" feature:

3- The Semantic Merge tool:

New

All platforms - PlasticX: Visual diff window new design

Some colors and layout design has been changed for the Visual diff window in order to improve legibility and visibility for both themes.

New

Linux - Plastic: removed mono-based GUI's

We finally removed the mono-based GUI's that were deprecated months ago, in favor of netcore-based counterparts: plasticgui and gluon.

This way we ease the setup of the Plastic SCM GUI applications, since no more "mono" and related packages will be a requirement anymore.

The final goal is to support newer distros, and for that goal, this removal of mono-based applications is a must.

REMARK: The package name was renamed from plasticscm-client-gtk to plasticscm-client-gui, but your package manager should care automatically of this renaming.

New

Linux - Client and Server: Added support for Ubuntu 22

Now you can install Plastic SCM on Ubuntu 22 using the package manager! Instructions here, "Ubuntu" tab.

Easy to say, long road until we made it! This Ubuntu 22 support pulls some relevant changes in the Plastic SCM software stack:

1. Mono removal: We don't require installing mono runtime anymore. We now rely on .NET specific OS-targeted self-contained executables for all Plastic SCM applications, even client-GUI applications (server was already compiled this way since early 2021).

2. Legacy GUI's removal (gtkplastic, gtkgluon, gtkmergetool). Since they were based in mono, they need to be removed and replaced by .NET counterparts: plasticgui and gluonx (mergetool is now part of plasticgui application and can be launched using plasticgui xmerge).

3. Move server from .NET 5 to .NET 6

All these changes were required in order to meet dependencies needs for Ubuntu 22, specially on ssl libraries and graphical toolkit libraries.

New

All platforms - PlasticX, GluonX: Damaged image file won't show error pop up in Pending/Checkin Changes Views.

Selecting a damaged image file won't show error pop up message in Pending Changes/Checkin Changes Views.

The error message will still be visible to the user as a label notification, and also in the Details Panel (GluonX only)

New

All platforms - GluonX: Visual feedback when cutting items

When cutting items from the workspace explorer view, now there is a transparency effect in the icon of the elements that have been cut.

This feature was already available on Plastic, and now it's on Gluon too.

New

All platforms - Plastic: Allow changing the editor font.

Now, the diff/merge font can be changed.

NOTE for windows users. The default monospaced font in Windows OS (if available) is Cascadia Code, which enables font ligatures, so if you want to disable them, you can change the font to use Cascadia Mono, or other available font in your system.

New

All platforms - Plastic: Full Unicode support and IME.

Previous versions of Plastic didn't fully support double-byte languages (Chinese, Korean, Japanese, etc ...). This Plastic version supports, not only double-byte languages and emojis, but also supports IME (Input Method Editor) for these languages, and right-to-left input support for Arabic and other languages.

NOTE for Open Suse Linux users: After this changes, Open Suse 15.2 is no longer supported. An upgrade to Open Suse 15.3 is required in order to run Plastic.

New

Server - Merge and Incoming Changes are much faster tons of ChangeDelete conflicts.

The calculation of the merge or the incoming changes was very slow when there were tons of ChangeDelete conflicts involved in the operation.

In the studied case, 2 million of items were added in the source of the merge but all of them were added under a deleted directory in destination. It initially took more than 2 hours to calculate the merge. Now, the same scenario takes less than 15 seconds to complete it. So, it's 500 times faster.

New

All platforms - PlasticX: added tooltip to Branch Explorer

Branches, changesets and labels on the Branch Explorer now have a tooltip which looks something like this:

.

Clicking the links on the tooltip will open a diff of the specified branch or changeset.

New

All Platforms - Command-Line Client: New information to display on revision history command

A new option has been added: --limit. It displays the N last revisions regarding the specified items. If N is bigger than the number of available revisions, it will display the existing ones (limit will take no effect); if N = 0, it will display every revision; if N < 0 the displayed list will be empty; if 0 < N < numRevisions will display the N most recent revisions, sorted by date and changeset id.

For example:

cm.exe hist foo.c bar.c --format='{path}: {itemid}' --limit=5

Will display the path and itemid regarding the last 5 revisions of foo.c and bar.c

foo.c: 8
foo.c: 16
bar.c: 12
bar.c: 13
bar.c: 15
bar.c: 21
bar.c: 24

Note that, in the example, foo.c only has 2 revisions.

New

All platforms - PlasticX: Changes in Semantic Merge Window

We changed the Semantic Merge Window icon, now the window will now show legacy Semantic Merge tool icon

We added MinWidth and MaxWidth properties to the window

New

All Platforms - Command-Line Client: New information to display on revision history command --format

Two more fields have been added to the revision history command in order to display information such as the revision size in bytes and the revision hash code. The --long option will also regard these new fields.

Now it is possible to use both {size} and {hash} in order to display that information along with the --format option.

For example:

cm.exe hist ./dir/foo.c bar.c --format='{path}: {size} bytes ({hash})'

Will display the review history of both foo.c and bar.c files, outputting the item id, the size of the file at each specific revision and, in between parenthesis, the hash code identifying the content of each revision.

./dir/foo.c: 5 bytes (RKaq9oJlXsU2xCXiO7zSjg==)
./dir/foo.c: 15 bytes (qNJWW77XzCApIMdT13jzkw==)
./dir/foo.c: 203 bytes (NnqIk33R+eUMaewTjAVrqQ==)
bar.c: 2031 bytes (aaHWt78weCApIMHa53jz22==)

In addition, the --long format will also display the new fields:

cm.exe hist bar.c --long

Will display something like the following, considering bar.c file had only 1 revision:

REVISION HISTORY OF C:\wkspaces\default\bar.c
--------------------------
Revision spec: bar.c#cs:1
Located on branch: /main
Created: 9/27/2022 17:53
Revision type: txt
Changeset number: 1
Owner: newuser
Repository: default
Server: localhost:8084
Repository spec: default@localhost:8084
Data status: Available
Item ID: 21
Item path or spec: bar.c
ItemSize: 2031
Item hash code: aaHWt78weCApIMHa53jz22==
Comment: bar.c now is managing HTTP connections

New

All Platforms - PlasticX, GluonX: Application Zoom Support

You can now apply a zoom level to the whole application!

Change it via the ⋮ (triple vertical dot) menu on the top right corner -> Zoom or by pressing Ctrl + Plus, Ctrl + Minus, to increase or decrease the application zoom.

New

All platforms - Plastic: Added text editor options.

Now, the diff tool and the merge window have new options to customize the text editors. Those options allow to:

- Show/hide the tabs and the whitespace.

- Show/hide the line ending (EOL) characters.

- Convert tabs to spaces while editing.

- Customize the indent size (tab size) to 4 or 8 characters.

- Add column rulers.

Demo:

New

Command-line client: New env variables in codereview edit

Previously there was no way to create a [before | after]-editreview trigger and retrieve

information about what editing was being done: the assignee or the status or both of them.

Now there are two new environment variables related to [before | after]-editreview triggers:

PLASTIC_REVIEW_ACTION: edit assignee or edit status or both separated by ';')

PLASTIC_REVIEW_ACTION_INFO (detailing "previous value" "->" "new value" for the assignee, the status or both, separated by ';').

Mind that only when editing the code review from the CLI both fields can be edited at the same time.

For instance, if you have a script which is dumping the environment variables passed as arguments to an output file (DumpEnvVars.exe), the following trigger creation:

cm trigger create before-editreview before-editreview-trigger "C:\wkspaces\scripts\DumpEnvVars.exe -env=PLASTIC_REVIEW_ACTION;PLASTIC_REVIEW_ACTION_INFO C:\wkspaces\outputs\before-editreview-trigger-result.txt" --server=localhost:8084

And you do a code review edit like this one:

cm codereview -e 19 --status="Under review" --assignee="Michaella"

The script would write a file with the following content:

PLASTIC_REVIEW_ACTION = edit status;edit assignee
PLASTIC_REVIEW_ACTION_INFO = Rework required->Under review;Thormund->Michaella

Bug

All platforms - PlasticX: Error in skip merge tracking

An unexpected error was displayed when skipping merge tracking in diff window for big number of differences (>50).

Bug

All platforms - PlasticX, GluonX: fixed issue selecting damaged image files in Pending/Checkin Changes Views.

When selecting a damaged image file in Pending Changes/Checkin Changes Views, if the user had selected previously another image file, image panel still showed to the user the last viewed image, we fixed this issue.

Bug

All platforms - PlasticX: Attributes panel resizing

The attributes panel was not showing the relevant info, the attribute name, when resizing. A fix has been added in order to adapt panel items sizes proportionally to the available space/width when resizing the panel horizontally.

Bug

Server: The REST API to download revisions had a memory leak.

The endpoint to download a file revision content (api/v1/repos/repName/revisions/revId/raw) had a memory leak when the '?version=2' query parameter was specified.

We already fixed a memory leak related to this endpoint in the version 11.0.16.7372, but a different one still happened. Fixed.

Bug

All platforms - Semantic Merge: Fixed diff color palettes for the dark theme.

The colors used to display differences were unsuitable for the dark theme (they had low contrast). Now it's fixed. This is how it now looks:

Bug

All platforms - PlasticX: Fixed empty buttons in pending changes

There was an issue with the "Save" and "Discard" buttons that appear in the pending changes view when you modify a file from Plastic. Sometimes, when changing the selection of the file, these buttons appeared without any content, until moving the cursor over them. We fixed this issue, and now the buttons work as expected

Bug

Windows - PlasticX: Fixed issue when opening files with custom tool

When trying to open a file with a custom tool from the workspace explorer on Windows, there was an exception preventing the new process from starting. We fixed this issue, and now the custom tool launches as in the other platforms

Bug

All platforms - PlasticX, GluonX: Preview was being calculated even when it's not visible.

We optimized the Details Panel behavior. Now, the app will only calculate the Preview data when the panel is visible to the user.

Bug

All platforms - PlasticX: Fixed issue when requesting credentials

When you try to perform an action on a server for which you don't have valid credentials, we show a dialog asking you to authenticate. There was a bug that made this dialog appear multiple times overlapped. We fixed this issue and now the dialog only appears once

Bug

All platforms - PlasticX: Merge view issues

Avoid error loading conflicts from a merge in Merge view and converted multiline texts in one single line for Comments column.

Bug

All platforms - PlasticX, GluonX: Tool command not properly refreshed

In Preferences window when the Diff or Merge Tools were opened, the Tool command text field was not properly updated with the current selected tool command line.

Bug

All platforms - PlasticX: Fixed DNS error for cloud.plasticscm.com

We fixed an issue in the Plastic onboarding where a DNS error was shown after creating a new organization. This issue only appeared for new accounts that didn't have any organizations and created a new one after the sign up.

Bug

All platforms - PlasticX: Help not displayed for empty list of code reviews

The help panel wasn't displayed after clicking the Help button in "Code Reviews" view when the list was empty, now the general query views help will be shown for this case.

Bug

All Platforms - PlasticX: SemanticMerge hangs

An issue has been fixed in which when resolving a conflict with the argument "--process-all-merges"

Bug

macOS - PlasticX: Fixed loading of Polarion extension

When trying to load the Polarion issue tracker exception in macOS, an error was thrown because a missing dependency. We fixed this issue, and now you can use the extension on macOS as in the other platforms

Bug

All platforms - PlasticX: Fixed issue when showing merge tracking colors

We fixed an issue with the merge tracking colors menu, which was only visible when diffing branches that didn't have xlinks.

Now it's also available for diffing changesets and labels, which can contain changes in xlinks

Bug

All platforms - GluonX: Details Panel didn't clear data when no row was selected in Checkin View.

We fixed an issue in the Checkin View Details Panel. Now, the app will always clear previous data when no row is selected or if the Checkin View is empty.

Bug

All platforms: TLS1.3 temporarily disabled.

TLS1.3 is not supported on Windows 10. We identified some software that enables and forces it through registry editing, forcing Plastic SCM secure connections to use it, and failing to connect both to Enterprise and Cloud servers.

Bug

All Platforms - PlasticX: Incorrect theme on ⋮ (options menu)

An issue has been fixed in which sometimes would show the incorrect theme selected on ⋮ (options menu) -> Theme.

Bug

All platforms - GluonX: Hide open repository button

In order to avoid opening not loaded repositories, the open repository button won't be available from Home view in Gluon app.

Bug

All platforms - Plastic: Allow restoring default font in the text editors.

The dialog that allows changing the editor font didn't show the "Select default font" button. Now it's fixed:

Bug

macOS - PlasticX: Fixed hang when discovering new servers

There is an option when adding new accounts to auto discover Plastic servers in the local network. If the discover operation is cancelled while it is running, the application hangs, and needs to be killed.

We fixed this issue, and now the operation can be cancelled without issues

Bug

All platforms - Plastic: Fixed syntax lines are not colored sometimes.

In some scenarios, some lines were not colored when loading a file in the diff viewer. Now it's fixed.

Bug

All platforms - Plastic: The diff scrollbar was not visible under some circumstances.

A recently added option in the diff viewer that allows scrolling below the document caused the scrollbar not to be visible sometimes. Now it's fixed.

Bug

All platforms - Plastic: resolved issue where long running merge processes could accumulate on the server

The Plastic client checks the server for incoming changes in some operations that can affect them. This can trigger the server to calculate a merge. If this calculation took a long time, the calculation would be triggered again by other operations and these processes could accumulate, pointlessly using server resources.

We fix this by ensuring that the calculation will not be requested if another calculation is already in progress.

Bug

Windows - PlasticX, GluonX: Dynamic Workspaces checkbox not visible

The dynamic workspaces checkbox visibility status was not properly refreshed from Create Workspaces dialog. When "plasticfs" process is running the checkbox should be visible so the user can create a dynamic workspace, otherwise it shouldn't be available.

Bug

MacOS - PlasticX: Cannot switch to plastic from gluon

An issue has been fixed that prevented switching from gluon to plastic via the '...' menu.

Bug

Windows - PlasticFS: msys2 redirection overwrites files (append mode)

Trying to concatenate content through shell redirections overwrote files due to a bug related to opening files in append mode:

$ echo -e "This is an apple" >> test.txt
$ echo -e "This is a pen" >> test.txt
$ cat test.txt
This is a pen
le

This has been corrected:

$ echo -e "This is an apple" >> test.txt
$ echo -e "This is a pen" >> test.txt
$ cat test.txt
This is an apple
This is a pen

Bug

All platforms - PlasticX: Error loading branch explorer

Fixed error trying to load a workspace in partial mode in Branch explorer view.

Bug

All platforms - PlasticX: Error reviewing image files

In the code review window, an error was raised trying to select image files, it's because the diff icons bar is not available for image files, the file differences couldn't be loaded properly, and an error message was displayed. Now it's fixed.

Bug

All platforms - Plastic: Go to moved code buttons not drawn.

If you selected "Go to moved code" in the diff viewer, then the action buttons in the destination are not drawn until you mouse-over the column. Now it's fixed.

Bug

All platforms - PlasticX, GluonX: Infinite progress after creating a shelveset

There was an issue when creating a shelveset in Plastic and Gluon, where the progress would spin forever when choosing to undo the changes after creating the shelve