Release Notes

Public

11.0.16.7048: Jun 09 2022

New

Windows - Plastic: Check out local changes is 300 times faster

Now, checking out local changes is much faster. For example, selecting 135 thousand private and checking them out now it takes less than 4s vs the almost 19 minutes that it took before.

Bug

All clients: Fixed 'unable to sort' error working with local changes

You could get the error "Unable to sort because the IComparer.Compare() method returns inconsistent results" trying to check out, checkin, or undo the pending local changes. It happened due to complex dependencies among the local changes when there were locally moved involved. Now it's fixed.

Bug

All platforms - Command-line client: Paths described in trigger variables can now include whitespaces.

Previously, plastic variables used in triggers such as PLASTIC_BIN_PATH, WKSPACE_PATH and GLOBAL_CONFIG_PATH were not resolving paths with white spaces. That led to wrong command formats when executing. Now, these paths are being wrapped inside double quotes when needed.

You can have the following scenario:

Have the directory where the Plastic SCM command line client is installed:

C:\Program Files\PlasticSCM\client

And inside it, you are planning to store your triggers in a subfolder, something like:

C:\Program Files\PlasticSCM\client\script\after update\script1.pl

So, you could declare a trigger using the following scheme (in Windows cmd shell, for instance):

cm trigger make after-update myTrigger """@PLASTIC_BIN_PATH\scripts\after update\script1.pl""" --server=localhost:8084

And it will solve the white space in PLASTIC_BIN_PATH to C:\Program Files\PlasticSCM\client when executing the trigger.

Bear in mind that, as the path already has a whitespace ("after update" in the example above), you should add escaped quotes to it to specify the executable because we also support arguments. No extra quotes will be added in this case. Here we were considering cmd shell, so quotes are escaped with an extra double quote.

You can also use commands with arguments and both command paths and arguments will properly resolve white spaces:

In case you have a workspace such as C:\my wkspace you could create a trigger like the following:

cm trigger mk after-update callPython "python @WKSPACE_PATH\script.py @WKSPACE_PATH" --server=localhost:8084

In this case, the whitespaces are going to be inserted in the plastic variable. This trigger will execute python, calling the file named script.py located in your workspace and passing to it an argument which is also resolved to the same path, something like executing:

python "C:\my wkspace\script.py" "C:\my wkspace"

Find below examples of the same two commands to create triggers but in three different shells:

1- Windows CMD:

cm trigger make before-update myTrigger """@PLASTIC_BIN_PATH\scripts\before update\script1.pl"" @WKSPACE_PATH\src\readme.txt" --server=localhost:8084
cm trigger make after-update myTrigger """@PLASTIC_BIN_PATH\scripts\after update\script2.pl""" --server=localhost:8084

2- Windows PowerShell

cm trigger make before-update myTrigger "`"@PLASTIC_BIN_PATH\scripts\before update\script1.pl`" @WKSPACE_PATH\src\readme.txt" --server=localhost:8084
cm trigger make after-update myTrigger "`"@PLASTIC_BIN_PATH\scripts\after update\script2.pl`"" --server=localhost:8084

3- Linux/MacOS bash:

cm trigger make before-update myTrigger ""@PLASTIC_BIN_PATH/scripts/before update/script1.pl" @WKSPACE_PATH/src/readme.txt" --server=localhost:8084
cm trigger make after-update myTrigger ""@PLASTIC_BIN_PATH/scripts/after update/script2.pl"" --server=localhost:8084

Bug

All platforms - Server: Fixed slow connection issues

We fixed a bug that caused the server to close connections over SSL if the client did not start the second method call in under 10 seconds from the connection establishment.

This bug was because of a wrong tracking of the connection status from server side and could cause killing long-running operations (such as big check-ins) over slow networks with the error message "An existing connection was forcibly closed by the remote host".

Bug

Command-line client: Fixed null error undoing moved files

The "cm unco" could fail when there are pending moved files to undo. It could fail when the source and the destination directories are different directories, but both are under the same directory. Now it's fixed.

Alpha new

All platforms - PlasticX: New cross-platfrom mergetool

Resolving conflicts in text files during merges will now launch a new cross-platform merge tool.

When the merge tool window is opened, it tells you how many conflicts require user intervention. For each conflict, you can choose to take contribution from the remote version, your local version, or the base of the merge, by clicking the checkbox by each change.

Step back and forth through the remaining unresolved conflicts using the arrows at the top of the screen. You can also step through all conflicts - unresolved, ones you've already resolved, and ones which were resolved automatically.

The result of the merge is shown in the bottom panel. Once all conflicts are resolved, click Save and Exit to return to the merge.

Here is an example conflict resolution.

Before the resolution:

And after the resolution. I chose to keep the local changes:

Alpha new

Windows - PlasticX: New Merge tool for binary files.

We ported our legacy binary merge tool (only available in Windows GUI) to PlasticX.

The binary merge tool allows the user to choose a version when all the versions in a merge, are changed. When resolving the merge, the chosen version will be the resulting file after the merge.

When the content of the merged file can be previewed (any PlasticX supported image type), the preview is displayed. Otherwise, the OS file icon is displayed.

The tool allows to "Open" or "Open with..." each version to allow the user to compare them. Also, some properties, such as file size or date modified, are displayed to help the user to choose a version.

This is an example of merging a Word document:

And this is an example of merging a png image:

Alpha new

All platforms - PlasticX: Repository Empty State

On home view, when a repository contains no files or directories, an "empty state" was added to what would otherwise be a blank panel.

Alpha new

All platforms - PlasticX, GluonX: Added undelete and undelete to the specified path

Added the 'Undelete revision' and 'Undelete revision to specified path...' options to the context menu for the diff window. It can be used to restore a single or multiple deleted items in PlasticX and GluonX.

Alpha new

All platforms - Plastic: Added explanatory text to the welcome window

When you open Plastic for the first time, you are asked to choose the GUI to work with. We added an explanatory text at the bottom of this window, which lets you know that you can change the GUI flavor at any time: