Release Notes

Public

11.0.16.7274: Aug 04 2022

New

All platforms - PlasticX: Auto-refresh Sync to Cloud view after opening

In Plastic X, when selecting "Sync to Cloud" view, the view was not refreshed. Now it's automatically done, helping to improve the workflow.

New

All platforms - PlasticX, GluonX: Removed Plastic SCM prefix from release name

All Plastic releases have a release name, which is a song name and the artist. This name can be seen in the about window.

A few releases back we added a "Plastic SCM" prefix before this name. We removed it, so now you see just the name as before.

New

All platforms - PlasticX: Improved history view

We re-wrote the history view from scratch. The new history view has the following features:

* Improved the revision list layout. Now it optimizes the horizontal space. We also display the avatar for the revision creator (note that it displays the Gravatar image when the username is an email).

* Setup a new panel that allows displaying diffs/annotate for the selected revision.

* Support history for text, image, binary, and directories revisions.

* Note that in this version of the history view, we display the changeset comment for the moved and removed revisions (previously the comment was not displayed).

* We also improved the way we display the changeset comments in the details panel. Long comments are split in two chunks, and the second chunk can be expanded/collapsed.

See it in action:

And now for images:

Note that you can still use the legacy history view by setting up the following setting in the plasticgui.conf file, placed in the user config folder:

UseLegacyHistoryView=True

New

All platforms - PlasticX: Added Merge options

We brought back this feature from the legacy GUI to PlasticX

This feature will allow PlasticX users to define merge options for each merge:

*Merge from both contributors, or only from one side

*Automatic merge conflict, or manual merge conflict (always launch the merge tool event with 0 unsolved conflicts)

*Ignore Merge Tracking

*Advance options: ancestors

New

Command-line client: Annotate command options update

The command to annotate files (cm annotate) was using, among others, the --ignore option, with (eol | whitespaces | "eol&whitespaces" | none) as possible values. Due to other commands are using another interface, it has been decided to homogenize them all. Now, --ignore will become --comparisonmethod and its regarding options will be (ignoreeol | ignorewhitespaces | ignoreeolandwhitespaces | recognizeall).

NOTE:

Old syntax will be deprecated, but it is still working. Therefore, scripts or other programs using this command will continue working as before. Despite of this, we encourage to update its usage to the new interface. More details in the command help.

Example: in case we want to annotate a foo.c file which has been created and checked-in on a unix system and after that some changes were done and checked-in on a Windows platform, we might want to ignore the EOL:

cm annotate foo.c --comparisonmethod=ignoreeolandwhitespaces

New

Command-line client: Diff command options update

The command to show differences (cm diff) was using, among others, the --ignore option, with (eol | whitespaces | "eol&whitespaces" | none) as possible values. Due to other commands are using another interface, it has been decided to homogenize them all. Now, --ignore will become --comparisonmethod and its regarding options will be (ignoreeol | ignorewhitespaces | ignoreeolandwhitespaces | recognizeall).

NOTE:

Old syntax will be deprecated, but it is still working. Therefore, scripts or other programs using this command will continue working as before. Despite of this, we encourage to update its usage to the new interface. More details in the command help.

Example: in case we want to check a foo.c file which has been created and checked-in on a unix system and after that some changes were done and checked-in on a Windows platform, we might want to ignore the EOL:

cm diff rev:foo.c#cs:1 rev:foo.c#cs:2 --comparisonmethod=ignoreeol

New

Command-line client: Shelveset apply command options update

The command to apply shelvesets (cm shelveset apply) was using the --comparisonmethod with (ignoreeol | ignorewhitespaces | ignoreeolwhitespaces | notignore) as possible values. Due to other commands are using another interface, it has been decided to homogenize them all. Now, "ignoreeolwhitespaces" will become "ignoreeolandwhitespaces" and "notignore" will become "recognizeall".

NOTE:

Old syntax will be deprecated, but it is still working. Therefore, scripts or other programs using this command will continue working as before. Despite of this, we encourage to update its usage to the new interface. More details in the command help.

Example: in case we want to apply a shelveset and, when comparing actual with previous contents for merging the changeset, we might want to ignore the EOL and whitespaces:

cm shelveset apply sh:2 --comparisonmethod=ignoreeolandwhitespaces

New

Command-line client: Diffmetrics command options update

The command to print metrics of differences between two revs (cm diffmetrics) was using, among others, the --ignore option, with (eol | whitespaces | "eol&whitespaces" | none) as possible values. Due to other commands are using another interface, it has been decided to homogenize them all. Now, --ignore will become --comparisonmethod and its regarding options will be (ignoreeol | ignorewhitespaces | ignoreeolandwhitespaces | recognizeall).

NOTE:

Old syntax will be deprecated, but it is still working. Therefore, scripts or other programs using this command will continue working as before. Despite of this, we encourage to update its usage to the new interface. More details in the command help.

Example: in case we want to see how many added, modified and deleted lines in a foo.c file and compare them with its version from a different branch, recognizing all, including EOL and whitespaces:

cm diffmetrics foo.c#cs:2 foo.c#br:/main/scm007 --comparisonmethod=recogniseall \
    --format="There are {0} changed, {1} added and {2} deleted lines."

New

Server: Server backups no longer block read-only web calls

The web calls were not allowed while the server was running a backup. Now the web calls that are read-only calls are allowed during the backup. This applies to the web client, the web admin, and also mergebots.

New

Command-line client: After-checkin trigger payload: move operations were not displaying move reference information

Previously, after-checkin triggers were generating a JSON content with several variables. One of these variables is named INPUT, which contains information about the changes checked in. These changes might be one of the following: AD, CH, DE and MV, indicating the type of operation which was performed regarding one item. MV operation has a particularity, as it involves not only one file but two.

Now it has been fixed and displays both source and destination of the moved file in the proper order (src->dst).

For example, let's imaagine we have a workspace with the following controlled contents: "./foo.c" and "./FooFolder" and we perform the following operations:

cm mv ./foo.c ./fooFolder/foo2.c
cm ci -c="foo belongs to fooFolder"

The INPUT variable will now display:

 'INPUT':'CH \"/\" DIR#br:/main;changeset:59@rep:default@repserver:localhost:8084
CH "/fooFolder" DIR#br:/main;changeset:59@rep:default@repserver:localhost:8084
MV "/foo.c" FILE#br:/main;changeset:2@rep:default@repserver:localhost:8084->"/fooFolder/foo2.c" FILE#br:/main;changeset:2@rep:default@repserver:localhost:8084'

As you can see, there are two changes corresponding the changes in the root directory and the change in the fooFolder and a MV operation, which now details both source file and destination file of that operation, separated by a "->" operand and both displaying all the information re the change.

Therefore, for the move operation, the specification will become:

status src_item_path item_type#br:branch;changeset:cset_id@rep:rep_name@repserver:server->status dst_item_path item_type#br:branch;changeset:cset_id@rep:rep_name@repserver:server

IMPORTANT NOTE: it is possible that users already parsing this output will perceive their parsers start to fail. We are sorry for any inconvenience this might cause. We balanced different options and finally decided to give you more information for you to use, despite of it might be needed to retouch existing parsers at this moment.

Bug

Command-line client: Changelist wrongly removed by cm status with filter

cm status --changelist --controlledchanged

Running the command from above, non-persistent changelists only containing local changes are expected to be omitted from output. However, the command was actually erasing the changelist. Now, doing the same preserves the changelist intact.

Bug

All platforms - PlasticX: Fixed error in branches explorer dialog

Opening the branches explorer dialog would, in some cases, for example performing the "Merge from this changeset to ...", trigger an unexpected exception. We fixed that.

Bug

All platforms - PlasticX: Focus items list after search

In Plastic X, using the items search and selecting a search result using the "Enter" key, caused the items list to not grab the keyboard focus. Now it's fixed.

Bug

All platforms - GluonX: Fixed comments textbox losing the focus.

After doing a check-in or undo checkout operation in GluonX, a bug prevented the check-in comments textbox to preserve the keyboard focus while typing. Quite annoying. Now is fixed.

Bug

All platforms - PlasticX: Fixed exception in workspace explorer

There was an exception that was thrown sometimes while navigating through directories in the workspace explorer. This issue is now fixed

Bug

All platforms - PlasticX: Null exception closing shelves view

In PlasticX, there was a rare issue where a null exception message could appear when closing Shelves View, we fixed this issue