Release Notes

Public

8.0.16.3708: Nov 07 2019

New

Windows - Plastic: Happy to announce that we enabled the new Code Review system by default!

You can find all the information about it in the following blogpost: Improving the new Plastic Code Review system (Part I and

Part II).

New

All platforms - Plastic, Gluon: A lot of users find the contextual help in the Plastic and Gluon UIs very useful. But for our more advanced users the help panel was getting in the way without providing any real benefit. Now, each help item will appear at most once a day. The GUI will only show more help than that when it detects that you might be having difficulty with the tool. Also, the help panel will hide after a few minutes if it opened itself (instead of by clicking the help button).

By the way, if you select "Got it, don't show me again" on the help panel, that help item won't appear ever again!

New

macOS, Linux - Plastic: Say hello to the new Attributes View! It allows you to list and manage the existing attributes in a repository. You'll be able to create new attributes, edit existing ones or simply delete them. This view was really necessary since we introduced the ability to define a list of default values in the attribute comments!

Here it goes on macOS:

And this is how it looks like on Linux:

We also fixed attribute definition in macOS with multiple predefined values: before if you defined default:one, two, "and three" the third value didn't show up in combos as "and three" but as two values. It is now fixed.

New

All platforms - Plastic, Command line client: the merge now checks for locked files and directories before applying changes.

Files and directories locked by third-party applications is a very common source of issues during a merge (Unreal users might be well aware of this!). Plastic might try to remove a file or a directory from your workspace, but because there is an application locking it, the operation fails - potentially leaving the workspace in an inconsistent state that is not obvious to recover.

We have just fixed this by checking that the files and directories involved in a merge are not locked before applying a merge (and this affects the upcoming Incoming Changes that will be the default way to update changes in a workspace when working on a single branch).

= How the detection looks like =

Suppose Notepad.exe is locking a file you are trying to merge. You'll get a message that looks like this:

The operation cannot start because some files or directories are locked by another program. Please close the program and try again.
    e:/wks/actioncable/doc/cord/de_win.c (used by Notepad, notepad.exe, 4856)

And this is the message you get if what's locked is a directory:

The operation cannot start because some files or directories are locked by another program. Please close the program and try again.
    e:/wks/actioncable/doc/cord

= Going under the hood =

How do we detect locked files and directories on each platform?

* Windows and macOS: we open each file involved and try to move each directory involved to a temporary location.

* Linux: nothing, since Linux FS are quite friendly when it comes to applying changes to disk, so we don't have to worry about aborted operations by locked files or directories.

= Performance impact =

Since we now check every file involved in a merge prior to really combine the files and apply changes, we can expect a performance impact.

These are some numbers we grabbed so you can get an idea: checking if 50000 files are locked by another program takes 3 seconds.

New

Windows - Plastic: We are making a series of improvements to the single branch working workflow.

When you are working in a single branch with other people, it is common to find they have checked in new changes.

When this happens, Plastic will notify you on the top-right area of the window.

= Scenario 1 =

You have no pending changes and new changesets from other users appear. Plastic will show you a green notification in order to allow you to see the changes in the Incoming Changes view, and update to them.

= Scenario 2 =

You have pending changes. New changesets from other users appear, but they don't affect any of the files you have changed. Plastic again will show you a green notification in order to allow you to see the changes in the Incoming Changes view, and update to them.

= Scenario 3 =

You have pending changes. New changesets from other users appear, and there are changes in files that you have also changed. In this case you need a merge. Plastic will show you a red notification in order to allow you to see the conflicts in the Incoming Changes view, and resolve them.

This is how the Scenarios 1 and 2 look like:

And this is how the Scenario 3 looks like:

You can see it working here:

This feature is experimental.

To activate it, add the following line in the client.conf configuration file you can find at %LOCALAPPDATA%\plastic4\client.conf:

<EnableIncomingChanges>yes</EnableIncomingChanges>

New

All platforms - Proxy: Added support for Plastic Protocol.

The Plastic Proxy (a.k.a. cache server) now can handle requests using Plastic Protocol instead of just "remoting".

The Proxy was already reaching remote servers using Plastic Proto, but it handled requests from clients using *only* remoting.

Plastic Protocol is a binary protocol we developed a few years ago. On the other hand, remoting is the older, slightly less efficient protocol we used for years. Our goal is to stick to Plastic Protocol and deprecate remoting later on this year.

New

All platforms - Plastic: Sometimes things are too easy. Like deleting a repository in Plastic. Two clicks and you can irreversibly delete your whole repository. We redesigned the "delete repository" dialog to eliminate accidental deletions.

Now, the dialog initially looks like this…:

…and the 'OK' button only activates when you enter the required text:

The functionality is the same of Mac and Linux:

New

Unity 3D plugin: The Unity plugin now deletes files in batches. It means when it has to delete thousands of files, it is much faster than before.

Using a project with 1.000 files the delete time is:

* Before: 65 s

* After: 10 s (reduction of 84,6%)

New

Jenkins plugin: The log output encoding is now hard-coded to be "utf-8".

New

macOS - Plastic: We implemented the Incoming Changes notification.

When you are working in a single branch with other people, it is common to find they have checked in new changes.

When this happens, Plastic will notify you on the top-right area of the window.

* Scenario 1. You have no pending changes and new changesets from other users appear. Plastic will show you a green notification in order to allow you to see the changes in the Incoming Changes view, and update to them.

* Scenario 2. You have pending changes. New changesets from other users appear, but they don't affect any of the files you have changed. Plastic again will show you a green notification in order to allow you to see the changes in the Incoming Changes view, and update to them.

* Scenario 3. You have pending changes. New changesets from other users appear, and there are changes in files that you have also changed. In this case you need a merge. Plastic will show you a red notification in order to allow you to see the conflicts in the Incoming Changes view, and resolve them.

This is how the Scenarios 1 and 2 look like:

And this is how the Scenario 3 looks like:

You can see it working here:

This feature is still experimental. You need to manually activate it, adding the following line in the client.conf configuration file located at $HOME/.plastic4/client.conf:

<EnableIncomingChanges>yes</EnableIncomingChanges>

New

Windows - Plastic: The GUI now shows a notification in the toolbar when the changeset you are working on no longer exists. This can happen if a colleague deletes that changeset.

This helps users returning to a valid configuration by updating the workspace. The notification looks like this - click on "Update" and you are good to go!

New

Windows - Plastic: We improved the message for the Incoming Changes view. It now explains that you only need to update the workspace to synchronize the metadata when your changes match the ones in the new head of the branch.

New

All platforms - Plastic, Command line client: We added the repository name to the error message you get when you try to create a child branch and you don't have that permission. This is useful when you have a merge involving xlinked repositories, because now you can we which repository is causing the problem.

New

Windows - Plastic: We added a tooltip in the notification bar for the incoming changes to explain the current scenario.

The available scenarios are:

* There are new changes in the branch that you can preview and download.

* There are new changesets that conflict with your current changes.

* The changeset you were working on no longer exists. Click the "Update" button to return to a valid configuration.

Bug

macOS - Plastic: A "Cannot access a disposed object" error showed up when closing a merge that displayed a help panel. This could also happen when switching workspaces. Now it's fixed.

This bug was critical on macOS - it forced you to exit the application doing a "force quit". It also affected Linux, but it was not critical there (just an error message). This doesn't affect Windows.

To prevent further issues because of this bug, we unpublished the following releases:

8.0.16.3685 (10/30/2019)

8.0.16.3691 (10/31/2019)

8.0.16.3694 (11/04/2019)

Bug

Windows - Plastic: A few releases earlier we introduced new color filters for the Branch Explorer. But there was a bug on Windows! As you know, when there is more than one label in a changeset, we draw a split crown. When searching, the entire crown gets colored - even if only one of the labels matches the search. But none of the pieces got colored if a color filter matched another label different than the first one. That's now fixed. Thanks to forum user Wolfram for noticing and reporting this!

Bug

All platforms - Server: We detected some scenarios where the 'mergeto' endpoint of the server REST API failed. This happened if the merge contained a multi-file conflict and changes under an Xlink, too. As a side note, the main consumers of this endpoint are our mergebots. It's now fixed.

Bug

Windows, Linux - DevOps: The Jira plug couldn't connect to some Atlassian Cloud servers because of the lack of support for TLS 1.2. Not it's fixed.

Bug

Windows - Plastic: The GUI did not re-enable the buttons in the Pending Changes view after an error during the checkin. This prevented you from using it again unless you restarted the application. Now it's fixed.

Bug

Windows - Plastic: The update workspace operation failed from the incoming changes view when it took more than one minute to process. The view refreshed incorrectly before the operation finished.

Bug

Windows - Plastic: We noticed a visual issue in the list views (branches, changesets, labels, etc.). The text of the first column overflows the column bounds if you scroll to the right. The GUI didn't calculate the text width correctly! It's now fixed.