Release Notes



Jun 19 2018

File locking and LDAP/Active Directory: now we show the name of the user holding the log instead of the SID.

Historically, we displayed the SID, which was not very useful... Yes, shame on us hackers :'(


OS X: Now built-in semantic diffs fallback to text if files can't be parsed.

It also displays the error error message so you know what to do.

It happened often when semantic diff tried to parse Java files but the Java VM was not installed.


'cm crypt' can now handle * chars. Before it was trying to expand wildcards on the arguments, preventing it from correctly encrypting text with '*' symbols. Fixed.


Very weird null fixed in replica when the maximum number of licensed users was exceeded.

It was almost impossible to reproduce but we saw a "null object reference" when trying to replicate a branch and the maximum number of licensed users was exceeded. The null showed up instead of the real license issue. Now it's fixed.


OS X GUI: Pending Changes crashed when it was about to show the diffs for a file and the diff was undone (changes undone outside Plastic).

It happened because any unhandled exception makes the OS X UI crash. We reviewed all pending failure points.


OS X: Upgraded to newest Xamarin.

Two customers reported a crash doing a checkin in a laptop running out of memory.

We were finally able to reproduce it and found that a newer Xamarin reduced the chances of crashing.

The problem is not entirely fixed, we are working with Microsoft to solve what seems to be a Mono garbage collector crash.


Fixed a null in checkin related to Xlinks and security.

Here goes the full explanation, which is not trivial:

* You need a workspace to a repo that has an Xlink.

* You don't have checkin permission on the Xlinked repo (permission not granted, which doesn't mean it is denied).

* You merge from a branch with changes on the Xlinked repo (someone else made the changes, since you don't have permission).

* Now you try to merge and the null happens (object reference not set...)

Now it is fixed.


OS X GUI: update forced didn't clean up the dialog correctly.

* Plastic shows a dialog if an update finds issues.

* The dialog shows 2 options: "retry update" and "update forced".

* If you select all the issues and click "update forced" the "Issues" view wasn't cleaned.

Now it works fine :)



Jun 13 2018

Windows, linux, mac: In the diff viewer, when the text encoding changed between two versions of a file, now we display the old and the new encoding, instead "encoding changed".


Windows Installer: Added long path support for both Plastic and Gluon in Windows 10. Note that you may need to update your computer policy as described here

REMARKS: In case you already customized the plastic.exe.config file, a backup file named plastic.exe.config.installer.backup will be generated in the PlasticSCM "client" install folder.


Windows, linux, mac: Do not show the file content for big added/private files in then pending changes view and the diff viewer.

Big files are considered 2Mb by default. You can change this value adding/editing a property in the mergetool.conf file. For example, if you want a file to be considered as big when it's bigger than 50Mb, you need to specify the following in the mergetool.conf file.



Unity plugin: Now, the "UnityPackageManager" folder is considered for versioning, as Unity2017.2 requires according to the following info.

The "Packages" folder will also be considered. This means both folders and their contents will appear in the "Pending changes" view of "Version Control" window in Unity when they contain any change.


Mac: Now diffs are semantic by default for supported file types (C#, and Java)


2D version tree: make the changeset double click consistent. From now on, it will always be "Diff Changeset" (default changeset action).


Polarion extension: Fixed a null reference exception that seldom appeared when retrieving the task information of a branch.


There were no error notifications for the user when a null reference exception was caught in a thread operation. It was logged but not displayed. Now, it's fixed!

The fix affects to all platforms (Windows, OS X, Linux) and Gluon.


Undoing all changes in the Pending Changes view failed when a given item was deleted and copied during a merge operation at the same time. The message 'An item with the same key has already been added' appeared in an error dialog. Now it's fixed.


Linux CLI: The "cm diff" from the command line in a non-existing directory failed with a "path null" error. Now it's fixed.


Linux, mac: Syntax highlight was not correctly enabled on the pending changes view and the diff view. Now it's fixed.


Windows: The "Workspace Explorer" went blank and ugly if you clicked on it during update or checkin. Now it's fixed.


Windows: The file size in the Workspace Explorer for changed files was wrong. The value was get from the server revision size. Fixed by reading the disk file size instead.


Browsing the contents of a repository in a given changeset or branch failed with a null reference exception if the browsed tree contained an Xlink whose repository was unreachable. Fixed.



Jun 07 2018

Windows, Linux, and Mac OS: Now it is possible to undo changed files in the 'Items' view (a.k.a. 'Workspace Explorer' view).


Windows: Sometimes, the proxy server configuration was not displayed in the configuration window altough it was correctly configured it in the client.conf file. Now it's fixed.


On the following scenario, the 'merge' operation was wrongly checking out a locally changed file although the exclusive checkout could not be acquired. Now it's fixed and the checkout is not done.

* The repository is configured to require exclusive checkouts (locks) for .png files

* User A and user B have their workspaces pointing to the latest changeset of '/main' branch (both are up-to-date)

* User A modifies & checks-in foo.png file.

* User B modifies foo.png file (without performing a checkout).

* User B: the pending changes view shows a notification telling that there are new changes on the server and gets the new changes from the server.

* The merge from the head changes fails because the merge cannot checkout foo.png to merge its content. But after the error, foo.png file is wrongly checked-out.


Windows: The filetypes.conf file could contain usage comments in spanish language, even if the english language was configured. Now it's fixed.


Windows: Diff dialog: Fixed the following scenario:

1. Select a changeset from the 'Branch Explorer' view.

2. Select "Browse repository on this changeset" on the context menu.

3. Select a file on the items view.

4. Selected 'Diff' >> 'Diff revisions...' on the context menu. A dialog will appear to diff the selected revision with the workspace revision.

5. Click ok -> An error appears. The branch name of the target revision was not well formed. Now it's fixed.


Windows: Branch Explorer: after a redesign we made a few weeks ago, many users reported that the option tab displayed when restarting Plastic was not the right one.

We also realized the zoom level was not stored correctly.

We fixed both things and refactored the code that stored BrEx visual settings.


When a big added file was selected in the pending changes view, the application gets hung for a couple of seconds. Now, it's fixed!

This fix applies to all platforms (Windows, OS X, Linux) and Gluon.



Jun 01 2018

Now the server-side merge (preview feature) can apply an existing shelve.


cm merge sh:2 --to=br:/main --merge

If that shelve was created using the server-side merge (so it contains merge traceability info) and it's applied on the same destination than the original merge, the created changeset will include merge traceability from the original merge. What this is mean:

* Using the server-side merge, we perform a merge from changeset 5 (br:/main/task head) to changeset 10 (br:/main head), leaving the result on the shelve 2.

* Using the server-side merge, we apply the shelve 2 on the changeset 10, creating the changeset 11.

* The changeset 11 will include a merge link from changeset 5 and all info about the changes done on that merge. The same merge traceability that if we merge the changeset 5 to the changeset 10 directly without using the intermediate shelve.

Additionally, the merge operation can now ensure that there are no changes on the destination contributor (because the ancestor and the destination contributor are the same) using the option '--no-dst-changes'. This option is particularly useful to ensure that the destination branch head is the same one that was there when the shelve was created. It also ensures that the original merge traceability can be applied.


cm merge sh:2 --to=br:/main --merge --no-dst-changes


Gluon UI: Switching a workspace between gluon and standard modes could easily leave an out-of-date directories configuration. Now, the directories configuration is automatically restored by the gluon update when switching from a workspace in standard mode. This way, new files in the repository are automatically downloaded from Gluon again.



May 31 2018

Windows GUI: we have made more improvements to the 2D version tree!

Now when you launch it with no options selected ("version tree" options in Branch Explorer without "filter only parents" or "Display all merges in history", the diagram will be much more compact than it used to be.

It is a simplified graph, much easier to understand :)

In addition to that, there will be no nodes without parent in the graph anymore, so you will be able to navigate through the history from any node.


Fixed a few texts in Gluon merge after editor review :-)


Windows GUI: fixed a regression introduced in related to modal dialog without parent window.

The fix we made didn't take into account that an intermediate modal dialog could be displayed, and failed when that happened, hanging the GUI.


* Pepper is working on workspace 1 updated to latest on main.

* Tony on workspace 2 checkins foo.prefab.

* Pepper doesn't have last change on foo.prefab.

* Pepper modifies foo.prefab without checking out (and forgetting to claim the lock).

* Now Pepper wants to update:

** She has the following setting turned on: "Preferences" panel --> Other options --> Behavior when updating workspace with changed items --> Allow.

** She is asked to merge during update, because of colliding changes.

** Plastic tries to lock foo.prefab, but it can't because it is not in HEAD version, it tries to show an error message, but it fails due to the bug with the modal dialogs shown above.



GitSync failed with the error 'An item with the same key has already been added' when two different Plastic SCM branches had their names translated to the same git branch name. We have fixed it so the second branch adds a numeric suffix ('${branchName}-0', '${branchName}-1', ...) to the git branch name, which solves the duplicate key issue.


Both names of Plastic branches '/main/task wksp' and '/main/task-wksp' were translated to the same git branch name: 'master-task-wksp', causing GitSync to fail. After this fix, they will be translated to 'master-task-wksp' and 'master-task-wksp-0'.

Internal and public releases

The Plastic SCM development team works in short iterations delivering frequent releases.Our goal is to have at least one new release every week, with new functionalities, bug fixes and performance tweaks.

Every 'weekly' release is not published to our customers, but we like to detail each of them in the release notes so users can easily follow what we achieved on every short iteration.

The releases marked with the word "public" are the ones we do publish on the website. The ones marked as "internal" are the releases we create in-house to keep the project moving week after week.

Version numbering

Starting in Plastic SCM 4.0 the version numbering schema has been modified:

  • major.minor.compatibility.buildnumber

  • Sample: means:
    • 5 -> major release number
    • 0 -> minor release number
    • 44 -> compatibility -> all clients and servers with "44" in the compat number are compatible, even if the build number changes
    • 511 -> internal build number