Release Notes



Apr 26 2018

Windows GUI: Improved annotate view:

* Redo the textbox context menus: Now use the same context menu for both annotated lines area and the file content area.

* Reorganize information: We reorganized the information in the panel that shows the information (owner, changeset, branch, date and comments) of the selected line.


Windows GUI: Implemented a way to navigate annotates.

* Added a new option in annotate context menu, "Annotate previous changes (parent of cs:xxx)". This options shows the annotated file of the parent changeset of selected line. This way you can go back in versions of a file to track a change.

* We also added two buttons to navigate back/forward in the annotate history.

The goal of this task is to help finding where a given change was made.


TeamCity CI Plugin: Enable filtering active branches based on Plastic SCM attributes.

The goal is to test and merge task branches to main only when a given attribute is set. This way trunk-based development and DevOps can be easily implemented.

The recommended configuration for TeamCity build configuration is as follows:

* Default branch to track in the VCS root is "/main".

* Branch specification for branches to monitor besides the default one in the VCS root is "+:(/main/*)" (The parenthesis are very important, as they define the logical TeamCity branch name, and has to match with plastic full branch name!).

* Enable the "Automatic merge" feature under the "Build features" section of the build configuration. Set the "Branch filter" to "+:*" so that TeamCity merges all that match the filter. Leave the other fields with the default values (the branches will be merged + checked-in to the default tracked branch "/main").

* Add "VCS Trigger" in "Trigger" section of the build configuration. Set the "Branch filter" to "+:*" too.

When configuring the VCS root for a build configuration, a new section named "Plastic SCM advanced branch filtering" will show up.

Once it is enabled, a textbox allows filtering the candidate branches to be visible by TeamCity in two ways:

* Specifying an attribute name and value pair as follows: attribute_name=attribute_value.

Example: status=resolved which means that only the branches with an attribute named "status" with the value "resolved" will be visible to TeamCity to queue & build them.

* Specifying a complex query valid for "cm find branch" command (which is the underlying Plastic command executed to retrieve the candidate branches). It is not mandatory to specify a plastic attribute in this mode. Two examples below:

where owner!='john_snow' and date > '3/2/2018'
where attribute='stage' and attrvalue='done' and name like 'JIRA-%'


TeamCity CI Plugin: Enable branch filtering based on an external program.

When configuring the Plastic repository for TeamCity, a new checkbox named "Enable custom brach filtering" will appear.

Once it is enabled, a textbox allows specifying the command to run the branch filter and other textbox allows defining the environment variables to be passed to the filter (the format is key=value pair per line).

The external program will receive from TeamCity plugin a list of plastic branches serialized in JSON, and it is expected to return a filtered list serialized in JSON too.

An example of a list of just one plastic branch in JSON format is shown below:












      "mComments":"Fix Jira 10972 - API to get user email",

      "mDateObject":"Mar 20, 2018 6:27:28 PM"



This communication format has been modified in release

This way we basically enable users to create the custom filters they need, connect to their issue trackers, project management tools and the like.

We have published Java code implementing a custom filter here.


Windows GUI: We use tmp files when displaying diffs, in both diff windows and pending changes view. We download the revision contents to a tmp files, so we can reuse them later. Sometimes a "Could not find file '<tmpFile>'" error was displayed. Now it's fixed.


When clicking on individual changesets in the branch explorer, the info in the "Properties" panel updated instantaneously. However, it slowed down from version, making the user to wait 0.5-1 seconds after each click for that information to update. Fixed.


TeamCity CI Plugin: The plugin was unable to diff changed files when browsing changed files in TeamCity dashboard. Fixed.


* TeamCity does not handle moved status (but added/removed)

* If a file was moved and changed in the same changeset, the teamcity plugin will show an error, as the queried path does not match with the new destination path. Will be fixed soon.

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