Release Notes

Public

Release 7.0.16.2246

May 24 2018
New

Gluon for Linux: Added a "switch to branch" button (next to the switch workspace button) that allows to switch the working branch in the current workspace.

New

The status performance (cm status & pending changes view) was improved to skip looking for non-ignored items under ignored paths when there are no exception rules in the ignored.conf file.

In a workspace with 30k ignored items out of 60k total, the cm status command runs 2 times faster.

New

Windows Gluon: when you disable the auto-refresh of Checkin Changes, it won't be refreshed when you switch tabs either.

Bug

Gluon: fixed renames involving only upper-case/lower-case.

The issue happened with Gluon on case-insensitive filesystems. The checkin of a case-sensitive rename (move Foo.c to foo.c) failed with the error "The item '/Foo.txt' cannot be moved to '/foo.c' because it is already loaded in the destination in the server. Please undo the move operation and update to the latest version".

But now it's fixed :-)

Bug

SemanticSCM: The differences were not calculated according to the "skip format changes" option in the diff viewer. Fixed.

Bug

The cm update --cloaked was not working. The --cloaked option was ignored. Fixed.

Bug

The server-side merge (in-preview) wasn't properly tracking changes on file system (FS) permissions when those were the only changes applied to an item (i.e. no content changes). This issues didn't make the server-side merge fail, but the differences of the resulting changeset didn't properly group the merge changes related to those FS permissions changes.

Public

Release 7.0.16.2237

May 22 2018
New

Windows GUI: there were cases where a modal dialog was displayed but it was not set as parent of the main window, so you could go outside plastic, return, and be unable to click on any action thinking it was frozen. It was fixed long ago but now we removed a few more corner cases.

New

Gluon auto-refresh pending changes is now configurable.

New option added to Pending Changes option, so that you can now configure whether you want to auto-refresh or not.

Bug

We fixed some server-side merge (in-preview) issues, detected in complex merge scenarios with moved items dependencies (related to cycle move conflict).

Bug

Diff/Mergetool: Disabled the auto case corrector language feature of the textbox -developed by ActiPro- in order to avoid unexpected behaviors when the editing occurs (e.g: restore difference using the action bar).

Bug

Windows GUI: The warning message shown by the switch operation with pending changes was not modal. Fixed.

The error message when trying to update with checkouts in a Gluon workspace was improved: "Cannot switch from a Gluon workspace to a standard one with checkouts. You can checkin from Gluon (or undo) and retry the update."

Public

Release 7.0.16.2228

May 19 2018
New

OS X and Linux GUI: We changed the Pending Changes "options button" behavior, so that it can always be clicked.

This means you can change the options while the pending changes is being refreshed.

This is useful if, for some reason, the Pending Changes takes forever, due to move detection, most likely. You can disable move detection before waiting for the search to finish.

New

Windows GUI: Some users reported that merge link colors in the Branch Explorer don't have enough contrast and they are not visible enough. Changed to use a stronger green.

Bug

Windows GUI: The GUI didn't show any error message when the update/switch operation failed. Fixed.

The error message when using the 'fast update' operation in a Gluon workspace was improved: "The 'fast update' option is not allowed in Gluon workspaces. Please disable the option and retry the operation again."

Public

Release 7.0.16.2220

May 17 2018
New

Now Plastic can switch a workspace to a shelve using the cm switch command (e.g. 'cm switch sh:2'). The workspace will load the shelve content in read-only mode, the same way a 'switch to label' does. This feature allows you to test and build temporary changes before committing, and it is essential for the devops initiative.

New

CodeBeamer issue tracker extension: Taking advantage of the new External SCM Integration capabilities of CodeBeamer, we added an option to log every checkin using that feature instead of just adding a comment to the affected issues. This increases traceability and provides a tighter integration with your issue tracker. Please make sure you're using a compatible CodeBeamer version before you enable it!

New

Windows GUI: From now on, we will automatically search for code moved between files in the diff window. If there are matches, you'll be notified.

We will only find refactors automatically if there are less than 50 files. Up to that, a button will appear to launch it, just as it did before. Please have in mind that analyzing refactors can be a time/resource consuming operation.

New

Linux GUI: We implemented a context menu for annotate/blame with the following actions:

* Diff branch: Diffs the branch where the selected line was changed.

* Diff changeset: Diffs the changeset where the selected line was last changed.

* Annotate parent revision: Annotates the parent of the current revision.

* Annotate before this changes: Annotates the changeset parent of the one where the selected line was changed. This is good to navigate back changes.

* Add diff selection: Copies a text to the clipboard. Use diff with previous selection to diff with selected text.

* Diff with previous selection: Diffs the previously selected text vs the current selection.

* Annotate options: To configure the fields to show in the left pane (date, author, changeset, branch, etc ...)

Also you can use back and forward buttons to navigate between annotated versions.

Basically we applied to Linux the same changes we released for Mac a few versions ago.

New

Gluon: The error messages when trying to configure an item that is changed in the workspace were improved to give better information to the user.

Examples:

* The file 'voice/player.wav' cannot be loaded/unloaded because it is already changed at 'voice/player.wav'. Please undo the change and retry the operation.

* The directory 'voice' cannot be loaded/unloaded because it contains changes inside 'voice'. Please undo all the changes inside the directory and retry the operation.

* The root item cannot be loaded/unloaded because there are pending changes in the workspace. Please undo all the workspace changes and retry the operation.

New

The client update triggers (before & after) were only executed by the standard update operation. Now, they are also triggered by the 'fast-update' operation and the Gluon update.

New

We enhanced the server-side merge (preview feature) so it can create a shelve with the merge result instead of checking it in. This allows users to review the merge result before it's confirmed. To take advantage of this staged merge you just need to include the '--shelve' argument in the merge command.

Example:

cm merge br:/main/task --to=br:/main --merge --shelve

New

Now the shelve content can be checked using the diff command. Example: cm diff sh:2

New

TeamCity CI Plugin: Improved the format used by the branch filtering based on an external program.

The external program receives a JSON list of branches to filter from the stdin and returns a list with the actual branches that you want TeamCity to process in the stdout, also in JSON format.

The following is an example of a possible input and output if the external program just wants TeamCity to process DTC-14:


[

   {

      "BranchName":"/main/DTC-15",

      "BranchHeadChangeset":"21651",

      "BranchComments":"Change comment size",

      "BranchCreationDate":"2018-03-19 17:30:00",

      "BranchOwner":"John",

      "Repository":"devops_tc2",

      "Server":"blackmore:7070",

   }





   {

      "BranchName":"/main/DTC-14",

      "BranchHeadChangeset":"29726",

      "BranchComments":"Fix Jira 14 - null in head",

      "BranchCreationDate":"2018-03-20 18:27:28",

      "BranchOwner":"Tom",

      "Repository":"devops_tc2",

      "Server":"blackmore:7070",

   }





   {

      "BranchName":"/main/DTC-16",

      "BranchHeadChangeset":"29999",

      "BranchComments":"Fix broken unit test boo",

      "BranchCreationDate":"2018-03-21 8:19:18",

      "BranchOwner":"Bill",

      "Repository":"devops_tc2",

      "Server":"blackmore:7070",

   }



]

And the output:


[

   {

      "BranchName":"/main/DTC-14",

      "BranchHeadChangeset":"29726",

      "BranchComments":"Fix Jira 14 - null in head",

      "BranchCreationDate":"2018-03-20 18:27:28",

      "BranchOwner":"Tom",

      "Repository":"devops_tc2",

      "Server":"blackmore:7070",

   }

]

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.

New

Gluon Mac: Added a "switch to branch" button (next to the switch workspace button) that allows switching the working branch in the current workspace.

Bug

We fixed some item merge-tracking issues in the server-side merge (in-preview), detected in complex merge scenarios. These issues didn't make the server-side merge fail, but the differences of the resulting changeset didn't properly group the merge changes.

Bug

We fixed a corner case merging an edited Xlink that threw a 'merge needed' message incorrectly.

The case happened if you had a common repository, let's say 'engine', xlinked by two repositories, GameA and GameB.

Each repository uses a custom main branch, /main/GameA and /main/GameB.

Then:

* If the "engine" Xlink is edited manually in GameA to include engine changes that were performed in GameB (main/GameB@GameB)

* And then the change is merged to main/GameA@GameA,

* The checkin operation could throw a 'Merge needed' when no merge was needed.

Bug

Jenkins plugin: The parameters of the plastic workspace name were not correctly resolved. It means, it used the exact workspace name string (e.g. 'Jenkins-${JOB_NAME}-${NODE_NAME}') without resolving the parameters JOB_NAME and NODE_NAME (e.g. 'Jenkins-project-MASTER').

Bug

CLI: The 'cm revert' command of an xlinked item can be executed in any path. Before, it failed if executed outside the xlink path with the following error: "Object reference not set to an instance of an object."

Public

Release 7.0.16.2192

May 08 2018
New

OS X GUI: Implemented a context menu for annotate with the following actions:

* Diff branch: diffs the branch where the selected line was changes.

* Diff changeset: diffs the changeset where the selected line was changes.

* Annotate parent revision: annotates the parent of the current annotated revision.

* Annotate before these changes: annotates the changeset parent of the one where the selected line was changed. This is good to navigate back changes.

* Add diff selection: copies a text to the clipboard. Use diff with previous selection to diff with selected text.

* Diff with previous selection: diffs the previously selected text vs the current selection.

* Annotate options: to configure the fields to show in the left pane (date, author, changeset, branch, etc ...)

Also you can use back and forward buttons to navigate between annotated versions.

New

Jenkins plugin: The Plastic SCM plugin can work with multiple plastic workspaces or just a single plastic workspace. Now, the jenkins workspace and the plastic workspace paths will match in the single workspace mode. Therefore, some jenkins features (such as pipeline shared libraries) that need both paths to match will correctly work.

New

Windows GUI: We changed the pending changes options behavior, so that it can always be invoked. This means you can change the options while the pending changes is being refreshed.

Bug

Command line: The merge-to command was not working outside a workspace. Fixed.

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: 5.0.44.511 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