Release Notes

Public Sep 29 2022


Linux, macOS - PlasticX, GluonX: removed "Switch to Legacy GUI" option for Linux and macOS users

This release marks the end of support for the legacy (pre-avalonia framework) Linux and macOS GUIs for all users.

We have removed the "Switch to Legacy GUI" option for Linux and macOS users, and soon their executables won't be included in the package



All platforms - PlasticX, GluonX: Added merge tracking colors to diff view

When you are seeing the differences of a branch with merges, sometimes is difficult to know where each change came from. To make this easier, we added colors to the diff view to differentiate between source, destination, and conflict changes. You can modify these colors and even show/hide them depending on what you want to see.

This feature was already available for Windows users in the legacy GUI. Now it's available in all platforms in the new Plastic GUI.


All platforms - PlasticX: Added ESC key close shortcuts in overlapped Browse Repository and Changesets Views

We've added new ESC key close shortcuts in the following overlapped views in PlasticX

*Browse Repository

*Changesets (only when Changesets View is called as a overlapped View)


All platforms - Command line client: 'cm rm controlled' now removes items in block.

Removing a controlled item involves a few operations: locking the workspace, starting a new workspace transaction, look for the item in the tree metadata, removing said node, checking out the parent (if necessary), removing the content from disk (if necessary), and finally commiting the transaction and unlocking the workspace.

Before, the command cm rm controlled would do all of these steps for each item, regardless of them belonging to the same workspace. This would incur on a big overhead when trying to delete many items in a row.

Now the command deletes all items belonging to the same workspace in block.

However, this forced some changes in how cm rm controlled reports removed items through standard output. If you use this command in an automation script or plugin, and you don't use the --format or --errorformat flags, you might need to consider these changes.

Consider the following scenario: we are going to delete a controlled directory (src), a private file (ignore.conf), and a file that is outside of the workspace (README.txt). This would be the output in previous Plastic SCM versions:

sergio:/wkspaces/Project$ cm rm ignore.conf src ../README.txt

/wkspaces/Project/ignore.conf is not in a workspace.

Item ./src/ has been removed

/wkspaces/README.txt is not in a workspace

Now paths are reported in the following order: first, all the paths that were correctly removed. Then, all the paths that were skipped because of an error (for example, the item not being in a workspace). Finally, all the paths that were skipped because they are not in a workspace. Now we also always use the item's full path:

sergio:/wkspaces/Project$ cm rm ignore.conf src ../README.txt

Item /wkspaces/Project/src/ has been removed.

/wkspaces/Project/ignore.conf is not in a workspace.

/wkspaces/README.txt is not in a workspace.

We honor the behavior of the --format and --errorformat flags.

sergio:/wkspaces/Project$ cm rm ignore.conf src ../README.txt --format="{0} - DELETED" --errorformat="{0} - NOT DELETED"

/wkspaces/Project/src/ - DELETED

/wkspaces/Project/ignore.conf - NOT DELETED

/wkspaces/README.txt - NOT DELETED

We also honor the command's exit code. Before, if an item could not be removed for whatever reason, command's exit code was 1. The same behavior applies here.


All Platforms - PlasticX: Merge files from command line with XMerge

You can now use PlasticX for merging and diffing any files using XMerge!

A quick way to get started is to run PlasticX with a single argument, xmerge. As shown below:

* For Windows:

[plastic|winplasticx] xmerge

* For MacOS:

plasticgui xmerge

* For Linux:

plasticgui xmerge

Now, some quick examples

* To diff two files:

[plasticgui|winplasticx|plastic] xmerge -s=fileA.txt -d=fileB.txt

* To merge two files a common base file is also required:

[plasticgui|winplasticx|plastic] xmerge -s=fileA.txt -d=fileB.txt -b=base.txt

In order to determine if a merge was successful, PlasticX will return 0 or 1 as the application exit code. 0 means a merge was successfully performed and the result file has been save, 1 means that a merge has been aborted or not saved.


All platforms - PlasticX: Open Merge view from command line

The merge-to view could be open from command line to solve the branches merge conflicts, it can be invoked like this: plasticx --merge=/main/task001@myrep@myserver:8084 --to=/main@myrep@myserver:8084

This command has 2 arguments, "–-merge" for indicate the source branch and "–to" for indicate the destiny branch in merge.

When this command is executed from command line a new plastic window will be displayed with the merge view opened, and the merge conflicts will be shown in this view.


All platforms - PlasticX, GluonX: Proxy configuration

When connecting to an on-premises server for the first time, we added an option to use a proxy. This option was already available on Windows, and now you can use it on the three platforms from the new GUI:

Learn more about proxy servers here:


All platforms - PlasticX: show code moves between files in diff window

Plastic can detect code refactors where code blocks have been moved from one file to another.

When you diff a branch or changeset a notification will be shown in the Diff window if such a refactor is detected.

Clicking the Show button will group the changes related to the refactor in the diff window file list.

If the diff contains a large number of items, rather than run a potentially long calculation, we show a notification with the option to run the refactor analysis.


Server: The REST API to download revisions could fail for encrypted data

Version 2 of the endpoint to download a file revision content (api/v1/repos/repName/revisions/revId/raw?version=2) fail to download an encrypted big file content (over 4MB) when the file content cannot be compressed.


All platforms - PlasticX: Allow annotate on a not checked-in file

An exception was thrown when trying to annotate a not checked-in file, now an empty annotate view will be displayed.


Server: Avoid reloading users & groups multiple times

The users and groups are reloaded periodically from the authentication provider. But due to an error, on each periodic reload, the reload was done multiple times. Now it's fixed


All platforms - PlasticX: Mark viewed files on Comments selection

Some files from diff items panel were not marked as viewed in code review window when a comment was selected from comments list, this files came from the diffs for a previous revision. It has been fixed and now all the files will be marked as viewed when any new comment selection were done.


All platforms - GluonX: fixed Gluon plastic links to a file not opening

In some cases, when trying to open Gluon plastic link to a file, Gluon tried to open that file in a new workspace and failed, we fixed this issue

Also, we improved the design of "Get Plastic link" button in Gluon Workspace Explorer Details



All platforms - PlasticX, GluonX: Cannot configure a custom diff tool

The file type extension data (FileType) has been removed from configuration (client.conf) for diff tools with custom extension.


All platforms - PlasticX: Fixed layout when searching in Browse Repository

Search panel in Browse Repository expanded when searching, we fixed the layout


All platforms - PlasticX: Fixed duplicated control is Issue trackers preferences

In Preferences -> Issue trackers, if the user clicked twice "Bind to this issue tracking system", the controls duplicated in the dialog, we fixed this issue