Release Notes

Glossary of terms
Public

11.0.16.8223: Oct 19 2023

New

All platforms - Server can checkin directories with lots of direct entries.

The server used a buffer of 5M to calculate the hash of the directory entries. This was not enough for folders with more than 150.000 entries, so the checkin failed. Now, this limit is much bigger.

New

All platforms: Greatly improved the performance while finding locally removed files.

Removed an unneeded check for moved files when the workspace only contains locally removed items, no private or ignored files.

Example: In a working copy with 14K locally removed files, the search took 20 seconds to complete; now it takes 500ms.

Also, improved the search operation for moved items. Before, we downloaded all the locally deleted content to attempt a move-match with private file candidates. Now, we only download those whose size will be a valid match for the existing candidates.

New

All clients: Client-side check-in triggers support added to partial workspaces

If you configure a client-side check-in trigger, it will now run for partial workspaces:

> cm trigger mk before-clientcheckin MyBeforeTrigger before_trigger.sh
> cm trigger mk after-clientcheckin  MyAfterTrigger  after_trigger.sh
> cm partial update
> cm co file.txt ; cm partial ci

# The triggers (MyBeforeTrigger and MyAfterTrigger) will run before and after the changeset creation!
New

All platforms - Desktop GUI: Improved checkin operation startup time

In the check-in operation, we have made an enhancement to optimize startup time. Previously, the operation included a phase where paths were resolved to expand them and make them canonical, as well as resolving symlinks. However, it was observed that the GUI doesn't require this step. Therefore, we have decided to skip it, resulting in a faster check-in operation.

New

All platforms: Faster workspace status calculation with added items.

Improved heavily the time to calculate the workspace status when a big number of items were added under the same folder. This is only noticeable if the number of files is greater than 1.000.

In our tests, the workspace status calculation of 8.000 added files goes from 9s to 0.15s.

The workspace status calculation is performed when running the 'cm status' command or refreshing the pending changes from Desktop GUI & Gluon.

Bug

All platforms - Desktop GUI/CLI: Delay in visual feedback during large check-ins

When performing a large check-in, there was a noticeable delay between initiating the check-in and receiving visual feedback through the UI or CLI. This delay became especially prominent during very large check-ins. We were missing notifying visual feedback during the "Assembling check-in data" phase. Now it's fixed.

Bug

All Platforms - Desktop GUI: Improved performance expanding nodes in the Workspace Explorer

Previously, expanding a node in the Workspace Explorer that contained 18k items took a variable amount of time, ranging from 6 to 15 seconds. This performance issue was impacting the user experience.

Expanding 18k nodes is now significantly faster (about 750ms), enhancing overall usability.

Bug

All platforms - Desktop GUI: Show notification dialog when pending changes in diff window

The Unsaved changes dialog will be shown in Diff window after a new branch/changeset selection is done and exist any pending changes to save/discard in the diff view.

Bug

All platforms - Desktop GUI: Super-slow check-in of many deleted files.

The pre-processing time of the checkin operation (when launched from Desktop GUI) was super-slow when the changes to checkin included lots of files deleted under a folder that still loaded lots of files.

Let's see a scenario where it happened: there is a folder '/Assets' with 20.000 files. If we deleted 10.000 of them and tried to check them in from the Desktop GUI, the check-in operation took more than one hour to start. Now, it only takes around 50s. This means x100 times faster.

As a workaround for this slowness, you could disable symlink support on Windows in the client.conf file: <EnableSymlinkSupportOnWindows>no</EnableSymlinkSupportOnWindows> .

This problem also happened from the command line if the 10.000 deleted paths were passed as individual arguments to the 'cm checkin' command (not very common, but possible).

Public

11.0.16.8204: Oct 05 2023

New

All platforms: Faster checkin of added items in partial workspaces

Improved heavily the time to check added files in when a big number of them are located under the same folder. This is only noticeable if the number of files is greater than 5.000.

In our tests, the improved step when checking 50.000 files in goes from 250s to 0.25s. The overall check-in time could go from 270s to 20s (depending on the files size to upload).

Bug

macOS - Desktop GUI: Fixed preferences dialog getting the UI stuck

If you try to shelve or checkin some changes with an empty comment, a dialog appears by default asking for confirmation. In that dialog, there's a link to open the preferences dialog in case you want to prevent that warning from appearing in the future.

There was an issue in macOS that caused the preferences dialog to show behind the warning in that scenario, rendering the GUI unresponsive as a result. It is fixed now.

Public

11.0.16.8196: Sep 28 2023

New

Command line client: Faster full checkin in partial workspaces

Improved heavily the time calculating the changes to checkin in partial workspaces with lots of added items.

In our tests, the time calculating the changes to checkin for 300.000 files goes from 180s to 1s.

Bug

All platforms - Gluon: Configuration tree didn't refresh properly

The configuration tree in Gluon didn't allow to change the check status of items that were changed previously when a refresh was done. For example, when any file/folder was marked to unload and then the refresh button was clicked, it was not possible to switch back this status to load again and an error message was displayed on the bottom.

Bug

All Platforms - Desktop GUI: Replace shortcut to open a workspace from the Home view

In the Home view, the shortcut to open the selected workspace in a new window was Shift+O. This shortcut was being executed when trying to type Shift+O in the filter text area.

We changed the shortcut to Ctrl+O

Bug

All platforms - Desktop GUI] Improved horizontal scrolling speed

Previously, scrolling horizontally (SHIFT + mouse wheel) in the Branch Explorer was noticeably slower compared to the legacy GUI. To address this problem and enhance the scrolling experience, we have increased the horizontal scroll size from 10px to 250 pixels and also the vertical scroll size from 10 pixels to 32 pixels.

These changes should result in significantly improved horizontal scrolling performance in the Branch Explorer, making it more in line with user expectations.

Bug

All platforms - Desktop GUI: Fixed memory leak in DiffWindow/DiffViewer/DiffControl

Previously, there was a memory leak in the DiffWindow, DiffViewer, and DiffControl components, leading to increased memory usage over time. We've addressed this issue by identifying and fixing several memory leaks.

Public

11.0.16.8183: Sep 21 2023

New

All platforms - Desktop GUI: Show icon when permissions are marked as overridden

A new icon will be displayed when any permission from the Permissions dialog is selected to be overridden, it will be applied to the selected column "Allowed" or "Denied".

New

All platforms - Desktop GUI, Unity Plugin: Use the same default organization for the Desktop GUI and the Unity Plugin

Now, if you select an organization after doing the onboarding in the Desktop GUI or the Unity Plugin, the selected organization will be saved by default for both places.

New

All platforms - Desktop: New Cloak options for browsing a changeset

Now, when browsing a changeset in a workspace, users will be able to add and remove items from the cloak filter using the context menu on the files or directories.

Click here for more info about cloaked files: https://docs.plasticscm.com/book/#_ignoring_private_files_with_ignore_conf

New

Command-line client: cm listuser --group now fails if the group does not exist

If you set a group that does not exist, the command will explicitly notify you about it.

> cm listuser --group=edvelopers
The 'edvelopers' group does not exist.
%ERRORCODE = 1%
Bug

Command-line client: cm patch command fails unexpectedly

The patch command failed with the following error message in certain scenarios involving permission changes.

> cm patch cs:123@repository@organization@cloud

Error: Object reference not set to an instance of an object.

Now those cases are handled gracefully, and the command will run to completion.

Bug

Command-line client: cm checkout message does not belong to the machine-readable output

The following message was wrongly shown by the checkout command when using the --machinereadable option:

> cm checkout --machinereadable
The selected items are about to be checked out. Please wait ...
(...)

The message is actually intended for human users. Now we don't print it anymore in this mode.

Public

11.0.16.8168: Sep 14 2023

New

All platforms: Improved merge file conflicts with Smart Locks

1) A file is always checked-out when solving a conflict. It doesn't matter the type of resolution chosen (merge, keep source or keep destination). This prevents the creation of parallel changes while a merge is being processed in a workspace.

2) Before, when solving a file conflict with an existing lock in Retained status, the destination of the merge had to always be the retained revision. This implied running an extra merge (rebase) from the destination branch (/main) to the branch to integrate (/main/task) before integrating the branch into /main. Now, the branch that contains the Retained revision (/main/task) can be directly integrated into the destination branch (/main) so the file conflicts are solved there without any extra step.

Bug

All platforms - Plugin for JetBrains IDEs: Fixed wrong diff calculation after applying a shelve

The UVCS plugin for JetBrains IDEs calculated the wrong diffs for items that were checked out in the workspace as a result of applying a shelve using a UVCS client (GUI/CLI) outside the IDE. Now it's fixed.

Bug

Command-line client: Partial check-in progress bar glitches

When running a partial check-in operation, the progress bar line and the results were overwriting each other in the command line.

Now both are displayed properly.

/ Confirming checkin operation 417 bytes/417 bytes [################################] 100 %
Modified c:\Engine\README.txt
Created changeset cs:3@br:/main@Engine@localhost:8084 (mount:'/')
Bug

Command-line client: Switch and partial switch will now take into account the workspace repository

Before, running the "cm switch" or "cm partial switch" commands under a Xlinked directory, the default repository was the Xlinked one. This behavior was confusing, and it could produce unexpected changes in the workspace:

$ cd xlink
$ cm switch br:/main # CAUTION: Switching to a different repository

Now, the top-level repository is used by default for these commands. If you really need to switch to a different repository, you can still achieve it by explicitly typing the destination repository:

$ cd xlink
$ cm switch br:/main@XlinkedRepository
Bug

All platforms: Merge didn't release locks for file conflicts with keep destination resolution

The lock was ignored after solving a file conflict with the keep destination resolution. So, if there was a lock related to that merge, the lock could get out-of-dated. This happened for client-side merge and server-side merge. Fixed.

Bug

All platforms - All clients: Fixed the update progress message in Japanese

We applied a more accurate wording in the Japanese localization for the message that gets displayed while updating a workspace.

Bug

All platforms - Desktop GUI: Added ScrollViewer to the initial login window

Previously, when launching the GUI with no configuration (no accounts) and resizing the window to a minimal height, the controls were being cut off, and a scrollbar was not displayed as expected.

Now, we have introduced a ScrollViewer to the view. This means that when the contents do not fit within the screen height, a scrollbar will automatically appear, allowing users to access all controls even in smaller windows. Screenshot:

Bug

All Platforms - Text Merge Tool: Comparison Method options cannot be deactivated

Previously, the three comparison method options (Ignore EOLs, Ignore Whitespaces, Ignore EOLs, and Whitespaces) were always checked and could not be manually deactivated by the user. Now it's fixed.

Public

11.0.16.8153: Aug 31 2023

Bug

All platforms: Server-side merge failed with locks.

The server-side merge (merge-to) operation failed when processing a file that was only modified on the source if it was under lock rules. It could fail with both legacy locks and Smart Locks. This has now been fixed.

Bug

macOS - Desktop GUI: Opening bad links no longer closes the app

After opening a link that pointed to an unreachable server, the application closed automatically when the user dismissed the message popup that appeared.

We now keep the main window open after the popup is dismissed, so the user doesn't get the impression that the application crashed.

Public

11.0.16.8133: Aug 03 2023

New

All platforms - Desktop, Gluon: Improved handling of purged revisions in the GUIs

Several views can now detect a purged revision.

In the views that show a list of revisions (such as the History view) the purged revisions now have a trash icon and a different visual style. A tooltip also indicates purged revisions from the list.

In the Differences view, a message indicates the revision was purged. This Differences view appears in different places within the application: the History view, the Diff window, the Code Review window...

New

All platforms: Restrict code review status changes to reviewers

From now on, only a reviewer will be able to update the review status.

When there is no reviewer assigned to a code review, the GUI will allow updating its status by any user, as before.

New

All platforms - Triggers: The "edit review" trigger includes the reviewer edition action

Now, the add reviewer, update reviewer, and remove reviewer actions also run the edit-review triggers and set the following info on the PLASTIC_REVIEW_ACTION and PLASTIC_REVIEW_ACTION_INFO variables

* Add reviewer

** PLASTIC_REVIEW_ACTION -> add reviewer

** PLASTIC_REVIEW_ACTION_INFO -> James

* Remove reviewer

** PLASTIC_REVIEW_ACTION -> remove reviewer

** PLASTIC_REVIEW_ACTION_INFO -> James

* Update reviewer status

** PLASTIC_REVIEW_ACTION -> update reviewer

** PLASTIC_REVIEW_ACTION_INFO -> James:Reviewed

New

All platforms: Server-side merge takes into account the exclusive check-out rules

Before, the server-side merge (merge-to) operations ignored the exclusive check-out rules (lock rules). This happened both for Smart Locks and the legacy lock system. This misbehavior could lead to file conflicts although the lock rules were in place.

Now, the exclusive check-out checks & operations run from merge-to too. The operation now behaves the same as if you run the merge from the client side, and can not lead to file conflicts.

New

All Platforms - Client Command Line: The cloaked configuration is now taken into consideration in encrypted organizations

When working on an encrypted organization, the encryption key is stored in the client for security reasons - it never reaches the server.

Because of this, the server could not apply the cloaked filter stored in the server (apply the cloak before even attempting the download). It could only use the cloaked filter stored in the workspace, which could be out of date.

Now the server can read the cloaked.conf stored in the server without compromising the security. For encrypted organizations, the client first downloads the cloaked.conf in the server. This way the client can use the latest version, regardless of its encryption status.

Bug

All platforms - Desktop GUI: Fixed an exception when removing all accounts

The GUI could throw an error under some circumstances when removing all accounts. Now if you remove all accounts you will see the onboarding again, as if you had a clean setup.

Bug

All platforms - Desktop GUI: Fixed an exception when pressing Ctrl+F

When pressing Ctrl+F / Cmd+F in the Workspace Explorer the GUI threw an error if the search box was empty. Now you can use the search shortcut as normal.

Public

11.0.16.8108: Jul 13 2023

Bug

All platforms - Desktop GUI: Text displacement when scrolling in help panel

There was an issue with the help panels that had long text lines: when scrolling through the text and making the long lines invisible, the whole text was horizontally moved to one side. We fixed this issue, and now scrolling in the panel doesn't affect the alignment of the text inside it.

Bug

WebAdmin: Wrong results when diffing branches

The endpoint to calculate the diff for two branches was returning wrong results when comparing with the "pendingToIntegrate" query parameter, as it was not considering that the branch can have several children branches.

Public

11.0.16.8101: Jul 06 2023

New

All platforms: Introducing Smart Locks

There are many kinds of files that present a challenge for merging content changes:

* Unity scenes

* 3D models

* Images and texture maps

* Sound files

* Excel spreadsheets

* Etc...

It is quite easy to see how important it is to apply changes to these assets sequentially and always iterate over their last revision. The creation of parallel histories usually means that some changes are discarded and redone down the line, since conflicts in these files cannot be merged.

So far, you could set up these lock rules to guarantee that nobody else made changes to the same file at the same time. When you were done, changes were checked in — or unchecked out — and the lock was removed. This "legacy" lock system was devised mainly for artists that work on a single branch, forcing the user to work on the last revision of the branch.

However, protection did not extend to multi-branch scenarios, allowing the creation of parallel changes in different branches:

1. Alice made some changes to player_icon.jpg at /main/level_12. The scene is waiting to be integrated, and the file is not locked anymore.

2. Bob is working on its own branch (/main/level_11) and makes a quick change to the same file too.

Yes, both are using the last revision on their branch, but they don't take into account new revisions in other branches.

Now introducing Smart Locks.

Smart Locks are the mechanism that Unity DevOps Version Control uses to track which branch retains an asset for edition, and it works as a baton pass or as a "torch". Even if the file is not exclusively checked out right now, task branches retain the lock and prevent developers from checking out an outdated revision in a different branch.

Moreover, locks are not retained by the users who created them. As long as they keep working with the last revision, other developers can still exclusively check out the file you just checked in! This is true even for multi-branch scenarios.

In other words, Smart Locks ensure a single line of development for assets among different branches while enabling collaboration between developers. Long gone are the days when you needed to keep a physical token on your desk to let your colleagues know that you were holding an asset: Unity DevOps Version Control keeps you covered.

== CREATING SMART LOCKS ==

Smart Locks are here to replace legacy locks, and the new version of the server already uses them from the get go (see details in the 'COMPATIBILITY' section). If you were already using locks, you probably just need to upgrade.

First of all, you need to set up the lock rules (if you don't already have them!):

# Contents of the lock.conf file.

rep: * br:/main
*.UNITY
*.dae
*.mkv

rep: myrepo br:/main excluded_branches: /main/experiment /main/experiments/* */art-concept */art-concepts-*
*.jpg
*.png
*.wav

Note that there are two new optional fields available in the lock rules:

1. The "destination branch" — br:/main by default — is the source of truth when creating a new lock: the revision loaded here is considered the last revision. Locks created in other branches are not released until they get integrated back into the destination branch.

2. Some "excluded branches" where the lock rules are ignored. Note that you can use wildcards at the beginning and at the end. Excluded branches are matched by name, so bear it in mind when renaming branches!

After setting up the rules, you can create a task branch and try to check out a file. The "lock list" subcommand will help you to inspect which locks are in place and their current status:

> cm co fmv_intro.mkv

> cm lock list --anystatus
myrepo  1932  6/27/2023 10:02:11 AM /main  241  /main/task 241  Locked  mikel  mywk  /assets/fmv_intro.mkv

# Do some changes and check them in!
> cm ci

> cm lock list --anystatus
myrepo  1932  6/27/2023 10:02:54 AM /main  241  /main/task 242  Retained  mikel  mywk  /assets/fmv_intro.mkv

# cm lock list --help

Within the Desktop GUI, the Workspace Explorer now tells explicitly which files are locked by other users, and they are represented with special icons for clarity.

Also, a new panel was added to the Desktop GUI and Gluon to display the Smart Locks that currently exist in the workspace repository. Since there, you can release or remove the locks too:

Moreover, this panel is available in both, the Workspace Explorer and the Home View, so you don't even need a workspace to manage the locks of a repository.

Likewise, the same functionality is provided by the WebUI:

Remark: note legacy locks as they are not truly tied to specific repositories, so they cannot be visualized this way. Running "lock list --anystatus" shows all the server locks by default, so you can use it to find them if necessary.

See in detail how to configure exclusive check-out using an on-prem server in our administrator guide:

https://docs.plasticscm.com/administration/plastic-scm-version-control-administrator-guide#Chapter7:Configuringexclusivecheckout(Lock)

== LIMITATIONS ==

* Smart Locks do not travel across replicas.

* Replicas might add newer revisions to the repository, leaving the lock outdated.

* Some scenarios involving changeset deletion might leave the lock outdated for obvious reasons.

* Merge-to does not support locks — neither legacy nor smart ones —... yet! Stay tuned.

Even if you bump into such scenarios, none of them are unrecoverable. See the following section.

== REMOVING AND RECREATING LOCKS ==

You might land in a situation where a lock must be forcefully unlocked — maybe somebody locked an asset and forgot to release it, or maybe a lock was invalidated for some other reason.

You can use the Desktop GUI, Gluon, or the WebUI to release or remove the lock. Alternatively, you can also use the "lock unlock" subcommand:

# Unlocks the lock for the item id 56 in the repo 'myrep@myorg@cloud'.
> cm lock unlock itemid:56@myrep@myorg@cloud

# Unlocks the lock of an item by path.
> cm lock unlock /home/user/workspace/foo.psd

# Not just unlock the item, remove it entirely.
> cm lock unlock foo.psd --remove

# cm lock unlock --help

By the way, if you really need to remove a lock entirely, you might want to recreate it somewhere else. You can use the "lock create" subcommand for that. Lock rules already determine which is the destination branch, but you still need to explicitly specify the holder branch, like so:

# Creates a lock for the item id 56 in the branch /main/task@myrep.
> cm lock create /main/task@myrep itemid:56@myrep

# Creates a lock for the selected item in the branch /main/task.
> cm lock create br:/main/task item:/home/user/workspace/foo.psd

# cm lock create --help

== COMPATIBILITY ==

* Before, lock rules allowed a lockserver field (although this was barely used and could introduce some issues). It won't be supported anymore.

* Old versions of the client can perform exclusive check outs over files, but they won't be able to release Smart Locks, only legacy ones. If you try, you will be prompted to upgrade in order to continue.

* After upgrading, legacy locks already in place will stay as they are. But as soon as files get checked in or unchecked out, the legacy lock will be gone. The next time you check out such files, they will start using the new system.

* There could already be parallel versions of some files (coming from legacy locks, if they were used this way). In this case, some manual operations could be needed to continue working with these files during this transition to Smart Locks. 'cm lock unlock' and 'cm lock create' are here to help.

* Legacy locks will still be supported, at least for a while. Indeed, you can disable the new behavior in the server by adding the following key to the server.conf:

<EnableSmartLocks>false</EnableSmartLocks>

You can find more information in the official documentation:

https://docs.unity.com/devops/en/manual/smart-locks

New

Command-line client: cm update now has its own update report

The update command usually does not show an update report. Instead, it shows a progress bar (if used interactively) or all the relevant events that happen on items as they are updated (a behavior intended for tool automation).

However, the progress bar does not clearly communicate errors. Now using cm update interactively features an update report at the end, which helps to better understand what happened:

> cm update
| Finished       [####################] 100%  510/510 MB - 204/204 file
Error updating 'c:\wks\Game\Source\main.cs': (...)
Warning updating 'c:\wks\Game\Source\Utils.cs': (...)
>
Bug

All platforms - Desktop GUI, Gluon: Links not properly formatted in release notes

The release notes were not properly formatted when any link tag was included, we have included a fix in order to accept the different link formats we support.

Public

11.0.16.8077: Jun 29 2023

Bug

Command-line client: cm checkin --silent option not working properly

Before, progress text was shown even when the --silent mode was specified. Now it won't be shown anymore.

Bug

All platforms - Desktop GUI, Gluon: Test Issue tracker connection failing

An error message was shown when trying to test a valid issue tracker connection, now the green tick will appear if the connection is correct.

Bug

All platforms - WebAdmin: Fix Lock Rules section

Opening the Configuration / Lock Rules section failed with a "something went wrong" error. This happened since 11.0.16.7995. Now it's fixed.

Bug

Windows, All clients: Path errors when mounting drives as directories

When drives are mounted as directories in Windows, a junction mount point is created for it. Unity DevOps Version Control was overzealously solving their target paths, leading to some errors and glitches.

Now, these paths are properly acknowledged, allowing more complex workspace setups.

Public

11.0.16.8060: Jun 22 2023

New

All platforms: Trim your repository size with Purge

Real-time 3D projects can grow substantially in storage size. The iterative nature of development leads to the creation of multiple revisions of large files that, by design, are kept safely stored in Unity Version Control. Although we keep this behavior as the standard, we also want to provide our customers with flexibility so they can choose how to better manage their data.

We are excited to introduce Purge. You'll have the power to permanently delete those old, unused revisions and trim your repository data, leaving room for the ideas that lie ahead. You'll be able to select a specific period of time and file extensions you want to remove, and in a few steps, you'll get your repository shrunk.

Important note: This operation is destructive and irreversible. While we want to give users the flexibility to have the ability to control their repositories, we also don’t recommend purging your repositories. Unity Version Control is designed to keep the history of your project fully registered as long as it lives, and the use of purge means that you are losing data.

== A feature with safety features in mind ==

While this operation is destructive and irreversible, we designed it to preserve the most vital revisions. This ensures that you will always have stable checkpoints inside your repository.

The purging process calculates the scope of your requests, skipping those revisions loaded at the head of a branch or if they exist in a changeset with a label. These simple safety features guarantee that you can always return to any label or branch head.

== Try now on your CLI ==

Purge is only available through the command-line interface, where you can calculate, execute, and consult the history of your operations. Don’t forget to set permissions for it and to keep it as an administrator-only functionality.

First, you will need to request a purge. This is done using the “cm purge register” command, specifying the file extension and the ‘before’ date when to apply the purge.

> cm purge register ".png" "2023-Jun-21 13:40" --repository=prince
A7919afc-45af-4c58-a5b8-c54c32f1c0ea

The register command will return you a purge GUID, this value can be used to check its status via the “cm purge show” command:

> cm purge show a7919afc-45af-4c58-a5b8-c54c32f1c0ea
PurgeId: a7919afc-45af-4c58-a5b8-c54c32f1c0ea
Repository: prince
Author: manu
Status: ReadyToPurge
Purge size: 77 revisions, 290.06 MB
.png: 77 revisions, 290.06 MB

Once you are sure you want to run the purge operation, you will need to use the “cm purge execute” command, specifying the purge GUID you want to execute.

>cm purge execute a7919afc-45af-4c58-a5b8-c54c32f1c0ea
PurgeId: a7919afc-45af-4c58-a5b8-c54c32f1c0ea
Repository: prince
Author: manu
Status: ReadyToPurge
Purge size: 77 revisions, 290.06 MB
.png: 77 revisions, 290.06 MB

You’ll need to confirm the request to safeguard the process.

This operation cannot be undone or canceled. You will permanently lose the revisions of these files.
Tip: if you want to inspect all the affected revisions, do NOT continue and run this command:
  $ cm purge show a7919afc-45af-4c58-a5b8-c54c32f1c0ea --verbose --server=localhost:8787
Are you sure you want to execute the purge? (y/n)
y
The purge action is now running.

Lastly, you can use the command “cm purge history” to check the specific status of one purge or previously executed purges.

> cm purge history
a7919afc-45af-4c58-a5b8-c54c32f1c0ea PurgeCompleted

== Check out the complete CLI documentation and learn more about Purge ==

Since we are talking about CLI, we recently updated and brought the documentation to the web, making it easy for everyone to find, search, and learn about every available command and the extensive list of capabilities from Unity Version Control.

https://docs.unity.com/devops/en/manual/uvcs-cli/version-control-cli

== How to Access ==

You can visit our webpage and download the latest version right now:

https://www.plasticscm.com/download

Please note that this feature is only available through the Unity Version Control CLI for Cloud customers. Only new Cloud organizations will have the new ‘purge’ permission enabled by default for the “Administrators” group. If you want to start using this feature, make sure you grant the ‘purge’ permission first.

If you are not a customer or want to start using Unity DevOps for free, you can subscribe here:

http://www.unity.com/products/unity-devops

Bug

All platforms - Desktop GUI: Pending merge links were not visible with no pending files

The empty state message was displayed in the Pending Changes view without considering any pending merge links, just taking into account if there were files with pending changes to check-in. Now the empty state message won't be shown when pending merge links are detected.

Public

11.0.16.8051: Jun 14 2023

New

All platforms - Desktop GUI, Gluon: Updated to Avalonia UI v11

In this release, we updated the apps to use the new version of Avalonia UI framework, which includes clear type rendering for Windows and some improvements in the Asian languages support for the edition.

In addition, Avalonia UI v11 carries the most substantial changes in their API to date, setting it up for a thriving future to ensure a more robust and reliable UI.

New

All platforms - Desktop GUI, Gluon: Empty state when view has no items

The empty state message will be displayed when no element is found for the current main view. This empty state message has been added for all Unity VCS main views except for the Branch Explorer, Branches and Changesets views, and for all Gluon main views except for the Changesets view. The context menu will be available for some of those views in this empty state, in order to use some basic actions.

Public

11.0.16.8044: Jun 08 2023

New

Windows - All clients: Symlink support is now enabled by default

Windows symlink support was released in Plastic 11.0.16.6979 on May 19th, 2022. That's quite a while!

Now symlink support is enabled by default for all machines running Windows 10.0.14972 or newer. You can check which Windows version you have by running cmd.exe:

Microsoft Windows [Version 10.0.14972.1000]
(c) Microsoft Corporation. All rights reserved.

C:\>

== REQUIREMENTS ==

To actually use this feature, you need to enable Developer Mode in Windows. To do so, you just need to type 'Developer Settings' into the Cortana search box, in the taskbar, and switch the 'Developer Mode' toggle on:

https://docs.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development

If for some reason you are not allowed to enable it and your repository contains symlinks already, you might want to keep the old behavior. To achieve that, you can simply disable the feature by setting the following configuration key in your client.conf file:

<EnableSymlinkSupportOnWindows>no</EnableSymlinkSupportOnWindows>

== HOW TO UPGRADE ==

If you already have some symlinks in your repository, your workspace will have placeholder files loaded in the tree.

To upgrade an existing workspace, you just need to remove those files from the disk (for instance, using Windows Explorer) and undo your changes in Unity DevOps Version Control immediately after. This will force it to recreate the items as proper symlinks.

== HOW TO CREATE SYMLINKS ON WINDOWS ==

You can use the same Unity DevOps Version Control commands and options you would use on Linux or macOS:

C:\wkspaces\sokoban> mklink /D Scripts Assets\Scripts
C:\wkspaces\sokoban> cm add Scripts
The selected items are about to be added. Please wait ...
Item c:\wkspaces\sokoban\Scripts was correctly added
C:\wkspaces\sokoban> cm ci --symlink Scripts
The selected items are about to be checked in. Please wait ...
- Checkin finished 26 bytes/26 bytes [################################] 100 %
C:\wkspaces\sokoban> cm co --symlink Scripts
The selected items are about to be checked out. Please wait ...
Item c:\wkspaces\sokoban\Scripts was correctly checked out
C:\wkspaces\sokoban> cm undo --symlink Scripts
c:\wkspaces\sokoban\Scripts unchecked out correctly

== ADVANCED USERS ==

Conversely, if you want to enable the feature using an older version of Windows, you can set the same configuration key explicitly:

<EnableSymlinkSupportOnWindows>yes</EnableSymlinkSupportOnWindows>

Mind you, this implies an advanced usage and involves running Unity DevOps Version Control with the administrator account. Whereas such usage is discouraged for obvious reasons, it is allowed.

New

All platforms - Command-line client: "cm log" command learns "--dateformat" parameter

The cm log command is now able to set a date format to print the log entries with the specified date format.

Example (will print the dates in universal sortable dateformat):

$>cm log --dateformat=u --csFormat={changesetid}({date}){newline}{items}
6022(2023-02-17 22:02:55Z)
 C vmachines.conf
 C testprograms\obs.auto.hal.txt
New

All platforms - Unity DevOps Version Control, Gluon: Shelves improvements

We improved the discovery for the Shelves view by opening it the first time you use the app.

The state of the Shelves view is remembered as a user preference in order to be shown or not when you open the application again.

Also, we implemented an empty state to appear if the user doesn't have shelves, or if the user executes a query without results.

Bug

All platforms - Desktop GUI: Workspace Explorer search crashes

The Workspace Explorer search for very large workspaces has been improved in performance and memory management, and the results are displayed sorted by path. In addition, the search will only be executed from 3 characters as it is done in Gluon.

Public

11.0.16.8022: Jun 01 2023

New

All platforms - Desktop GUI, Gluon: New option to display cloaked files in pending changes

As part of the pending changes options, we added a new option to display cloaked items. Now, you can see any cloaked file with changes in the pending changes view enabling this new option.

New

All platforms - All clients: Files modified only on source are checked-out in cherry picking.

Now, cherry picking, subtractive and interval merge checkout the files that are modified only on source before applying the change in the workspace.

This way the lock mechanism is respected for these kind of merges to avoid creating file conflicts for non mergeable files easier.

Bug

All platforms - Desktop GUI: Home view refresh doesn't keep the selected organization

If you changed the selected organization in the Home view, the next time the window was activated the selected organization was changed to the first value in the list.

We fixed this issue and the selected organization now is preserved.

Bug

All platforms - Desktop GUI, Gluon: Shelve empty comment warning configuration issue

The ShowEmptyShelveCommentWarning configuration setting just needs to be updated only when it's changed from the 'Preferences' window or when the 'Don't ask me again' option is checked in the 'Shelve empty comment' dialog.

Bug

Linux - Installers: Cannot resolve libicu dependency. Fixed.

Some Debian / Ubuntu distros were showing an error while installing telling that there is an unmet dependency of libicu and cannot be resolved.

Now it is fixed, since "libicu72" is set as a valid alias for libicu dependency.

REMARK: Ubuntu 23.04 won't be yet compatible with the installation of the server package. Stay tuned for upcoming fixes in next releases!

Public

11.0.16.7995: May 25 2023

New

All platforms - Desktop GUI: Improved undo behavior after creating a shelve

After a new shelve is created, we show a dialog asking if the user wants to undo the changes or keep them in the pending changes. Now this dialog appears before the shelve is created, and it can be closed to cancel the whole shelve operation.

We also added a checkbox that allows to remember the selected option. This behavior can be changed at any time from the preferences

New

All platforms - Desktop GUI, Gluon: Improved the style of the sign-in dialog

New layout modifications have been done in the sign-in dialog.

Public

11.0.16.7978: May 18 2023

New

The Unity Version Control CLI documentation is now live on the web!

Previously, we were missing the complete documentation with all commands, and the only way to access it and understand how to use the command line was through internal help. Now there’s a comprehensive guide available for everyone!

You can find the documentation here:

https://docs.unity.com/devops/en/manual/uvcs-cli/version-control-cli

It’s packed with detailed explanations, examples, and usage instructions for all the Unity Version Control CLI commands. Whether you’re a seasoned pro or just getting started, this resource will be invaluable.

Keep in mind that this is the first published version. While it’s a significant milestone, we recognize that there’s always room for improvement.

Stay tuned for more updates on the online CLI help!

New

All-platforms - Command-line client: New mvbranch trigger

We added a new type of trigger, which is called before/after the renaming of a branch. Along with the trigger, we added two new environment variables:

PLASTIC_BRANCH_NEW_NAME
PLASTIC_FULL_BRANCH_NEW_NAME

These can be used in combination with previous environment variables for automation purposes (see below).

For instance, it would be possible to create a trigger with the following command:

cm trigger create before-mvbranch MyTrigger "C:\cisystem\trigger.bat C:\cisystem\triggerresult.txt"

This script could contain the following - indeed, you can try something like this to set the trigger up and test it!

REM trigger.bat
@echo off

(
echo PLASTIC_BRANCH_NEW_NAME %PLASTIC_BRANCH_NEW_NAME%
echo PLASTIC_FULL_BRANCH_NEW_NAME %PLASTIC_FULL_BRANCH_NEW_NAME%
echo:
echo PLASTIC_BRANCH_NAME %PLASTIC_BRANCH_NAME%
echo PLASTIC_FULL_BRANCH_NAME %PLASTIC_FULL_BRANCH_NAME%
echo:
) >> %1

And then, when executing a rename in the branch, the result file would have the following content:

# triggerresult.txt
PLASTIC_BRANCH_NEW_NAME = task002
PLASTIC_FULL_BRANCH_NEW_NAME = /main/task002

PLASTIC_BRANCH_NAME = task001
PLASTIC_FULL_BRANCH_NAME = /main/task001

As always, the usual environment variables are also available when running the trigger:

PLASTIC_BRANCH_NAME
PLASTIC_FULL_BRANCH_NAME
PLASTIC_REPOSITORY_NAME
PLASTIC_COMMENT
PLASTIC_USER
PLASTIC_CLIENTMACHINE
PLASTIC_SERVER
Bug

All platforms - Desktop GUI: Fixed exception deleting text in Merge Tool.

In some scenarios, selecting all the text and deleting it from the result TextEditor caused an IndexOutOfRange exception when using the merge tool. Now it's fixed.

Public

11.0.16.7974: May 11 2023

New

All platforms - Desktop GUI, Gluon: Preferences menu icons on hover

Changed the color of the menu item icon when the mouse is over the item.

New

Windows, Linux - Desktop GUI, Gluon: Shortcut to open preferences dialog

Handled the "Ctrl+," keyboard shortcut to open the Preferences window in Windows and Linux.

New

All platforms - Desktop GUI, Gluon: Improve empty comment warning

We updated the dialog that appears when you try to check in some changes without entering a comment. Now the dialog has a check box that allows you to remove this warning for future check-ins. There's also a link to the view in the preferences where you can change this setting later.

Also, now the warning is also shown when creating shelves

New

Windows - PlasticFS: Serveral improvements in symlink support

PlasticFS now uses its own reparse point solver. Now relative symlinks are allowed to freely reach the mount point and outside the workspace.

$wk> mklink /D to_workspace .
symbolic link created for to_workspace <<===>> .

$wk> cd to_workspace

$wk\to_workspace> dir

04/12/2023  11:41 AM    <DIR>          .
04/12/2023  11:41 AM    <DIR>          ..
04/12/2023  11:41 AM    <SYMLINKD>     to_workspace [.]

Some additional corner cases involving junctions are now fixed too.

== SYMLINKS LIMITATIONS ==

1) This feature is in an early stage of development, so you can expect minor bugs to happen.

2) PlasticFS always creates symlinks as files. By trying to access them, they will be automatically solved and converted to directories. However, this step might confuse external programs that do not expect it.

* This happens anytime you create a new workspace or under some special conditions involving "undo" and "update" operations.

* Windows Explorer will force this conversion, but you might have to refresh the window the first time it shows a symlink.

New

All platforms - Desktop GUI, Gluon: Standardize zoom controls

The image diff viewer zoom controls have been replaced by new ones with same look&feel of the Branch Explorer zoom controls.

Bug

All platforms - Desktop GUI: Fixed exception when closing Merge Window too quickly

Clicking "Save and Exit" on the Merge Window before the merge was calculated resulted in an unexpected error. We fixed this by disabling the button until the merge calculation completes.

Bug

All platforms - Desktop GUI: Back button appears on user account change

The back button only has to be displayed when the Home view is visible for returning to the main workspace view.

Public

11.0.16.7957: Apr 27 2023

New

All platforms - All clients: Faster workspace tree (plastic.wktree) update

Clients using super-huge trees (more than 1M items) will experience a performance improvement.

A single file checkout/checkin/undo operation in a workspace of 7M of items is now x10 times faster!

* Before, it took around 6 s to write the workspace tree.

* Now, it only takes 600 ms to write the workspace tree.

This change is only available for clients with the following client.conf setting enabled (see "Remarks"):

<EnableNewWorkspaceTreeFormat>yes</EnableNewWorkspaceTreeFormat>

Remarks:

* Enabling this setting could cause trouble if there are older Unity DevOps Version Control installations (including older versions of the Unity Plugin) in the same machine. Be careful!

* In this first step, this smart update is only enabled when there are not structural changes or xlink editions to write. We will improve this in the future.

* This optimization is geared to workspaces with more than 1M of items, it won't be noticeable for smaller workspaces.

Details about the change:

Before, the entire workspace tree file was rewritten each time its metadata was modified (through a checkin, checkout, switch, etc. operation) even if only a few files were touched. Now it only re-writes the modified entries, which makes it much faster for big workspaces.

New

All platforms - Desktop GUI, Gluon: Added Attributes view for shelves

Now you can see and edit the attributes of a shelve when seeing its differences. There's a new button at the top that lets you open the list of attributes, from where you can add, remove or modify them.

New

All platforms - Desktop GUI: "Close merge view and open pending changes" set by default

As of this release, "Close merge view and open pending changes" Preferences option will be set by default to all new users.

New

All platforms - Desktop GUI: Code Review comments Reply button disabled after it's clicked

In code review window the Edit and Reply buttons has been disabled from comments and questions list while the new comment is in edition mode. This is done to avoid discarding the changed text when this button is clicked instead of the Comment button.

New

Linux - Desktop GUI: Updated app icon

As part of the ongoing rebranding to Unity Version Control, we replaced the 'Plastic SCM' icon with 'Unity DevOps Version Control' one in the app for the Linux platform.

New

Windows - Wwise plugin: Prompt for checkout on edit is now supported

Implemented support for the VCS setting "Prompt for checkout on edit", allowing users to checkout the affected files as part of the saving process.

New

Windows - PlasticFS: Upgrade to WinFSP 2023

Plastic FS now uses WinFSP 2023 as the minimum supported version. If you already have WinFSP 2023 Beta 1, the upgrade process will be easier than ever.

You can find the WinFSP release notes in https://github.com/winfsp/winfsp/releases.

Bug

All platforms - Desktop GUI: Issue tracker repo list is unsorted

In the Preferences window, the repositories list from Issue Trackers view will be sorted alphabetically.

Bug

All platforms - Desktop GUI: Pending Changes - Selected items number not updating

Fixed text update in Pending changes tree, when the items were checked/unchecked the displayed category text wasn't updated properly.

Bug

All platforms - Desktop GUI, Gluon: Fixed misaligned links position

In the app, links and texts on the same line could appear vertically misaligned. We fixed this issue

Bug

All platforms - Desktop GUI: After-checkin trigger errors now shown in GUI

Notifications about failures when running after-checkin triggers were being shown in the command line tools, but were not being shown in the GUI.

Now, we display the error in a dialog to ensure that you are alerted when a trigger fails to run.

Bug

All platforms - Desktop GUI: Fixed null exception when resolving merge

We fixed an exception that could be thrown while processing file conflicts one at a time during a merge, where the merge involved writeable xlinks but there were no conflicts in files under the xlink. The exception didn't affect the merge, but the error dialogs made it look like there was a problem.

Bug

All platforms - Gluon: Details Panel showing incorrect characters under Spanish localization

Gluon Details Panel show incorrect characters in fields "Tamaño" and "Último acceso" in Spanish localization.

We fixed this issue.

Public

11.0.16.7935: Apr 20 2023

New

Windows - Desktop GUI: The legacy Plastic SCM GUI has been deprecated

Please update your installation to the latest version. Continuing to use any older version may result in reduced support for your operation.

The new GUI has been the default since version 11.0.16.7105 and is fully capable of upholding your Unity Version Control workflows, please don't hesitate to contact us to provide additional feedback so we can continue improving it.

New

All platforms - Desktop GUI: New design of the shelves view

We improved the design of the shelves view. The old table style was replaced with a new list that displays all the relevant information about each shelve in a cleaner way.

Also, we rearranged the buttons to create a new shelve and see the shelves list in the pending changes. Check it out:

New

All platforms - Desktop GUI, Gluon: Shelve diffs shown in the pending changes view

Now when showing the diff of a shelve, instead of opening it in a separate diff window, we show it integrated in the pending changes view. You can close the diff to go back to the pending changes or select a different shelve to view its differences.

We also redesigned the header of the diff window to match the new style of the shelve diff.

New

All platforms - Desktop GUI, Gluon: Added option to automatically open shelves

We added a new option in the Shelves view that, when enabled, allows you to automatically open the selected shelve in the current window, every time you change the selection. If you disable this feature, you can work as before, by double-clicking on each shelve to open the diff in a separate window.

New

Windows - Desktop GUI: Enabled SemanticMerge by default

As of this release, the SemanticMerge tool will be the default tool for new Windows users instead of the legacy SemanticMerge tool.

New

All Platforms - Desktop GUI: Enhanced Shelve view toolbar

Users will now see new "Apply" and "Delete" buttons in the toolbar, (and the previously existing context menu equivalent options). By prominently displaying these actions in the toolbar, we aim to improve the visibility and ease of use of these options for users.

New

All Platforms - Desktop GUI: Improve notifications

We replaced the old transient notifications in the status bar, with window notifications for a better experience.

New

Windows - Desktop GUI: Removed "Switch to Legacy GUI" menu option

The legacy Plastic GUI for Windows is no longer being supported as of this release.

In Unity VCS, the "Switch to Legacy GUI" menu option has been removed, and the executable will soon no longer be part of the installation package.

Also, "Welcome to new GUI" message panels were removed

New

All platforms - Desktop GUI: Updated 'Sign in' dialog layout

We updated the 'Sign in' dialog in order to highlight the Unity ID auth because now it is the main one.

Bug

All platforms - All clients: Fixed an error that could result in corrupted downloads because of a socket timeout when using SSL

Under some circumstances, downloading revision data from the UVCS server to the disk - typically a workspace update operation - might fail, leaving partial content on the disk (files not completely downloaded, or not downloaded at all).

The message error you would see in this situation is:

Received an unexpected EOF or 0 bytes from the transport stream

Now there is a higher timeout in place both for send and receive operations, which reduced timeouts by more than a 90%. This results in fewer retries overall for every user, and fewer chances of facing this error, even without updating your client version. Nevertheless, we encourage you to also update your client to this version, as now it is properly detecting unexpected EOF's at SSL to retry the operation automatically.

Bug

All platforms - Desktop GUI, Command line client: Allow complete a merge keeping the local changes with the files locked

Previously, the merge operation needed to access all the files in conflict, no matter the selected resolution for those files.

Now, when you want to keep your local changes during the merge (keep destination resolution), this access is not needed.

It is useful when your IDE locks the file you are working on and for which you want to keep your changes, such as an asset of the Unreal Engine.

Bug

All platforms - Desktop GUI: Fixed exception when navigating to "Find in files" result in large file

In some circumstances, navigating to a "Find in files" result after previously selecting a file large enough to show the "large file" warning, could result in an error being shown. We fixed that.

Bug

All platforms - Desktop GUI: Fixed branch explorer multilabel issues

An error was obtained when double clicking a multilabel shape in the branch explorer, now the browse repository view will be displayed after this user action. The displayed properties from the Options panel were not consistent with the current selection when a multilabel was selected, now no Properties will be displayed for this kind of labels.

An issue has also been fixed regarding the branch explorer view, when the browse repository view was closed the branch explorer was not in normal mode because it had the panning mode activated.

Bug

All platforms - Command line client: Fix client configuration for Unity ID authentication

The cm configure command was wrongly setting the LDAP working mode, when configuring your client to work directly against the cloud server using the Unity ID authentication.

As a result of this misconfiguration, when you try to access a different server, which was not used before (without a profile for it), the client fails with the error "Invalid parameters for LDAP in client config file."

Now the cm configure command sets the right SSO working mode. Also, when the misconfiguration is detected is fixed automatically without having to configure the client again.

Bug

All Platforms - TeamCity plugin: Added a timeout so now plugin is able to reset if it hangs up on the shell initialization

Plugin was some times getting stuck on cm shell version command for some Agent operations. We added a timeout for those operations and now if it hangs we are able to get rid of it and fail.

Bug

All platforms - Server: TrunkBot Mergebot (DevOps) was throwing an error on a race condition

It could happen that the TrunkBot is about to start processing a branch from its queue, but at the same time an attribute change of that branch could cause the deletion of the same branch from the queue, causing an internal exception that stopped the process and prevented the branch to be processed. Fixed.

Public

11.0.16.7881: Apr 03 2023

New

All Platforms - Unity DevOps Version Control: Organization creation redirect.

Previously, it was possible to create organizations directly from the GUI, but now, organization creation has been moved to the Unity Dashboard.

So when you try to create a new organization from the GUI, you'll now be redirected to the Unity Dashboard.

New

All platforms - Plastic, Gluon: New Code Editor and Language settings in Preferences

A new settings tab has been added to Preferences window to allow Code editor settings management. In this new view we can modify some of the settings related to the code editor as the font or number of tab spaces, and also the values can be restored from the default configured values.

The app language selection has been also added to the Other options view from Preferences window. When a new language selection is done and saved, a new popup message will be displayed asking for the application restart. The new language will be applied in GUI only if the application is restarted.

New

All platforms - Unity DevOps Version Control: Updated app icons

As part of the ongoing rebranding, "Plastic SCM" icons were replaced by "Unity DevOps Version Control" icons in the app.

Bug

All Platforms - Unity DevOps Version Control: "Checkin" grammar revision

"Checkin" grammar revision was made in all text strings.

For instance, the "Checkin" button was changed to "Check in" in the Pending Changes View.

Bug

All platforms - Unity DevOps Version Control: fixed exceptions in Home view when user has no organization

We fixed a couple of issues in the Home view where exceptions were thrown when the user has no organization. The exceptions were thrown when the show deleted repositories option was toggled, and when text was entered in the filter.

Bug

All platforms - Unity DevOps Version Control: Localization broken

Fixed the loading of localized texts into the GUI.

Public

11.0.16.7851: Mar 23 2023

New

All Platforms - Unity DevOps Version Control: Color Picker: Removed alpha channel slider

In this release, alpha channel slider was removed for Color Picker controls

New

Server: Allow to see the branch changes pending to integrate when it doesn't fulfill the merge rules.

The diff --integration (e.g., 'cm diff br:/main/task --integration') allow to see the pending changes to integrate for the given branch. But, when the branch doesn't fulfill the merge rules defined on the server (e.g., you need to review the branches prior to merge them into /main), you get the error "Cannot perform the merge because of the Merge Rules. Review the branch '/main/task' to merge it to '/main'." when you try to see the changes pending to integrate on a branch without a code review.

Now the diff --integration works, no matter if the server has any merge rule enabled or if the branch fulfill those rules.

New

All platforms - Unity DevOps Version Control, Gluon: Improve visibility of current changeset or branch

We added some visual cues to the Branches and Changesets view so that you can more easily see which is your current branch or changeset.

We also applied the same style change to the item history view in Gluon.

New

All platforms - Unity DevOps Version Control, Gluon: Highlight path changes for moved items

We added highlighting to the paths for moved items so that you can more easily see which parts of the path were changed.

This applies to the Pending Changes, Merge, Diff and Incoming Changes views in Unity DevOps Version Control and Gluon.

New

All platforms - Unity DevOps Version Control: Notification added to invite users to try the new Code Review experience.

We have added a notification bar that invites users to try out our enhanced Code Review experience from the Unity Dashboard :

New

All platforms - Command line client: Revamped the client configuration from the command line.

We improved the way of configuring the client interactively from the command line client ( cm configure ).

The first change is that now you are not asked for the repository server specification in different steps. Take this as an example - this is what you had to do before to configure a SSL server:

Configure the Unity VCS server address/port:
Unity VCS server address [localhost]: version-control.unity-hq.domain
Unity VCS server port [8087]: 8087
Use encryption (SSL)? [y/N]: y
Unity VCS SSL server port [8088]: 9095

You had to specify a plain TCP port despite the server might not be even listening on one. Then you were asked whether or not you wanted to use SSL, and only then you could specify the port you really wanted to use. This process was both slow and error prone.

This is what you need to do now to achieve the same:

Enter server address: ssl://version-control.unity-hq.domain:9095

Additionally, if your server requires connection credentials (User and password, or email and password), the command line client checks that the credentials are correct before saving any configuration - letting you retry if you fail to type in your user or password.

And last but not least the cm configure command now supports configuring your client directly against a Cloud organization (using email and password, Unity ID, or any other Single Sign-On mechanism you might have configured). Before these changes, only email and password were allowed for configuring your client directly against the Unity DevOps Version Control Cloud servers.

New

Windows - Wwise plugin: New location for the Wwise plugin

From this version on, the Wwise plugin compatible with version 2021 and below can be found in the PlasticSCM installation folder, under the path "client/plugins/wwise".

New

Windows - Wwise plugin: New plugin for Wwise 2022

We are pleased to announce the first release of the Unity DevOps Version Control Plugin for Wwise compatible with version 2022.

This new plugin can be found in the PlasticSCM installation folder, under the path "client/plugins/wwise2022".

New

Command-line client: Update command improved for automation

Now moved files will be also regarded when option --xml is specified. On top of that, a new field "ChangeType" has been added in order to make the output more understandable and easier to parse. For instance, if we are 1 changeset behind the head and within the last changeset we renamed a file "math.c" to "stats.c" and moved "dice6Tex01.png" into "textures" folder, then we changed the content of dice6Tex01.png. When updating the workspace to the head, we could see something similar to the following:

$ cm update . --xml 2>update_errors.txt
<?xml version="1.0" encoding="Codepage - 437"?>
<UpdatedItems>
  <List>
    <UpdatedItem>
      <Path>c:\wkspaces\BestGameEver\stats.c</Path>
      <User>john.scott</User>
      <Changeset>7</Changeset>
      <Date>2023-01-12T15:30:39+01:00</Date>
      <OldPath>c:\wkspaces\BestGameEver\math.c</OldPath>
      <ChangeType>Moved</ChangeType>
    </UpdatedItem>
    <UpdatedItem>
      <Path>c:\wkspaces\BestGameEver\textures\dice6Tex01.png</Path>
      <User>john.scott</User>
      <Changeset>7</Changeset>
      <Date>2023-01-12T15:30:39+01:00</Date>
      <OldPath>c:\wkspaces\BestGameEver\dice6Tex01.png</OldPath>
      <ChangeType>Moved</ChangeType>
    </UpdatedItem>
    <UpdatedItem>
      <Path>c:\wkspaces\BestGameEver\textures\dice6Tex01.png</Path>
      <User>john.scott</User>
      <Changeset>7</Changeset>
      <Date>2023-01-12T15:32:12+01:00</Date>
      <ChangeType>Changed</ChangeType>
    </UpdatedItem>
  </List>
</UpdatedItems>
CommandResult 0

See --usage for details:

> cm update --usage

Special considerations:

- Have in mind that every operation performed on an item will appear as different UpdatedItem nodes. As seen in the previous example, the file "dice6Tex01.png" is both relocated and changed in the same changeset, so it appears twice (one per operation) in the XML output.

- If a controlled file has been deleted and added again with the same name (either with the same or different content), it will be reported both as a delete and an add operations. This is, the item will appear twice in the report, the same as it works in other commands such as 'cm partial update'. Before this code change, when the content of the file was identical, the file was not reported at all. When the content of the file was different, it was only reported as a change.

- If a file has the exact content of the revision we are updating it to (i.e. for revision X and revision Y the content of the file is "hello", and we are updating the file from revision X to revision Y), it is reported as a changed item. Before this code change the file was not reported as changed because Unity DevOps Version Control didn't need to download data from the repository server (the hashes from both revisions match).

Bug

Server: Configure generates server.conf in one line

Breaking changes in the underlying .NET serialization library were removing indentation from the configuration file.

https://github.com/dotnet/runtime/issues/64885

A different approach was used to avoid the issue.

Bug

All platforms - Gluon: Fixed error when workspace was on a label

If you switch your workspace to a label on Unity DevOps Version Control and then try to convert it to a partial workspace to work on it from Gluon, we were showing an error and the workspace couldn't be updated. We fixed this issue, and now you can convert the workspace to partial and vice-versa without issues

Bug

All platforms - Unity DevOps Version Control: Eliminated file not found error launching diff from visual diff

When launching a method diff from the visual diff panel a "file not found" error would be shown. There was no actual error, and the diff would be shown correctly. We stopped that erroneous error from appearing.

Bug

All platforms - Unity DevOps Version Control, Gluon: Improved the way we classify files with unknown extensions

When adding new items from the Pending Changes view, if the extension is not one of the well-known extensions for text or binary files, we were always classifying the new files as binary. We improved this behavior, and now when the extension is unknown, we will check the contents of the file to determine if it should be classified as binary or text

Public

11.0.16.7832: Mar 16 2023

~ WARNING ~

Plastic SCM is now Unity Version Control, a component of Unity DevOps.

The names of applications and programs that are part of Unity Version Control are subject to name changes in future versions. If you rely on the executable names, please check the release notes in coming releases for any updated information.

New

All platforms - semantic merge: Moved buttons to options menu

We moved the "Visual merge", "Run text merge" and "Restart merge" buttons to the options menu Screenshot

New

All platforms - Unity Version Control: Improved the Search Panel for the source code editors:

- Users can now use the Replace functionality if the editor is writable.

- Search queries now support Match Case, Match Whole Word, and Regular Expressions.

- A tag has been added to inform users if matches have been found and to display their current match index out of the total number of matches.

- The total number of matches found is also displayed.

- The search result colors have been improved for both light and dark themes.

Some demo:

New

All platforms - Unity Version Control: Ported configuration dialog to semantic merge

A Configuration dialog has be ported to the new semantic merge, it is accessible from options menu, and contains preferences and configuration options pertaining to semantic merge.

New

All platforms - semantic merge: Added options menu

We have stated populating the options menu in the semantic merge window. So far it looks like this Screenshot

New

All platforms - semantic merge: added Explain Move button

We added an "Explain move" button for move conflicts to the semantic merge outline panel here Screenshot .

Clicking it opens up a visual depiction of the move.

New

All platforms - Unity Version Control: Renamed "DevOps user profile" preferences tab

We have renamed the "DevOps user profile" tab in Preferences to "Mergebots".

New

All platforms - Unity Version Control: Removed Plastic SCM logo

As part of the ongoing rebrand to Unity Version Control we have removed the Plastic SCM logo.

New

All platforms - Unity Version Control, Gluon: New options context menu

The options context menu navigation and look&feel has been improved.

* The items from the menu have been rearranged.

* The margins between icons and texts have been adjusted.

* New options have been added: Documentation, Unity Version Control Web UI (just for Cloud edition)

* Simplified the theme selection.

New

All platforms - Unity Version Control, Gluon: Modify the sign-up process to redirect users to Unity DevOps purchase flow.

We removed the ability to sign up for Plastic SCM credentials and redirect users to the checkout page for Unity DevOps. When landing on this page, they’ll be invited them to create a UnityID first. Once this is done, they can continue the purchase on the checkout page.

New

Windows - Unity Version Control: Rename Start Menu shortcuts

As part of the ongoing rebrand to Unity Version Control, Plastic SCM shortcuts in Start Menu have been renamed.

Also, a new shortcut was added in this menu: "Unity DevOps Version Control"

Bug

All platforms - Unity Version Control: Fixed a crash restoring diffs in the diff viewer.

Previously, restoring a diff with search results focused in the right text editor could cause the GUI to crash. We have fixed this issue so that it no longer occurs.

Bug

All Platforms - Unity Version Control: Fixed Encoding comparison issue

Sometimes we faced wrong results performing the encoding comparison. Now it's fixed.

Bug

All Platforms - Unity Version Control: Inconsistent Display of Encoding Differences

The display of encoding differences has been updated to consider the "effective" encoding.

If the left contributor is detected as UTF-8 and the right encoding is detected as NONE, but the system encoding is also UTF-8, the encoding differences will not be shown.

The BOM will also be considered when displaying encoding differences.

These changes will improve the accuracy of encoding detection and the display of encoding differences.

Bug

Windows, Linux - Unity Version Control, Gluon: Fixed 'Open With' operation if the path contains whitespaces

The 'Open With' operation failed if the item path contains whitespaces, preventing the item from being opened.

We fixed this issue.

Public

11.0.16.7806: Mar 06 2023

New

All platforms: Plastic SCM is now Unity Version Control

Plastic SCM is now rebranded as Unity Version Control.

We have also updated our end-user license agreement (EULA). You will find it in the installer.

New

All platforms - SemanticMerge: UI improvements.

Added a UI refresh for the semantic merge tool. These are the main points:

- Use camel case for buttons and labels.

- Moved the "Process al merges" button to the conflicts header.

- Improve each conflict resolution text readability.

- Use buttons instead links for match/unmatch actions.

- Fixed the encoding string in the contributor headers.

- Unify some margins and paddings.

New

All platforms - Plastic: Undo checkouts options

Added a new option in the pending changes view that lets you undo the checked-out files while keeping the local changes. This is the same as using the --keepchanges option when executing the cm undo command.

We also reorganized the buttons in the pending changes view.

New

All platforms - Plastic: Removed the license expires soon reminder for non-trial licenses.

We removed the license expires soon reminder for all non-trial license users to avoid disturbing users who have monthly subscriptions.

The license notification will still appear for those users when their license fully expires.

This notification panel doesn’t appear anymore in the app:

Bug

All Platforms - SemanticMerge: Fixed wrong content for resolved conflicts.

When resolving a manual conflict, if the merge resolution text was exactly the same as the base contributor text, it caused the semantic merge tool to wrongly choose the destination text for the result. Now it's fixed.

Bug

All platforms - Plastic: Fixed null exception using Find in files in Plastic Link.

When you use Find in files in a Diff or Code Review Plastic Link, a null exception is thrown.

We fixed this issue.

Public

11.0.16.7792: Feb 23 2023

New

All platforms - Plastic: Semantic diff viewer.

Launching semantic merge as a standalone tool displayed the text-based differences. Now the semantic-based differences are displayed.

You can try executing the semantic merge standalone tool:

plastic semanticmerge
-s="<path-to-src-file>.cs" 
-d="<path-to-dst-file>.cs"
New

All Platforms - Plastic: Add codepage encodings to the encoding menu.

- We've added all the available codepage encodings to the Encoding dialog.

- The encoding list now shows EncodingName, WebName, and CodePage for easy identification.

See it in action!

New

All platforms - Plastic, Gluon: Find in files feature added to diff window

You can now do a text search in all files in a diff or code review.

Just press the "Find in files" button to open the Find in files dialog.

You can choose if the search is case sensitive. You can also choose to search only the source, or destination contributor. You can choose to search all files in the diff, just currently filtered files, or just the currently selected file. Also, you can filter the results by file extension.

Search results will appear at the bottom of the window.

Selecting a result will open the relevant file and show the matching line.

Bug

All Platforms - Plastic: Fixed an encoding issue in merge.

For a file that was encoded as UTF8 but contained invalid bytes, the merge process could raise the following error:

Unable to translate bytes [XX] at index YYY from specified code page to Unicode.

Now it's fixed.

Bug

All platforms - Plastic: Fixed 'Label all writable xlinked repositories' option

There was an issue with 'Label all writable xlinked repositories' option for the 'label this changeset' dialog, the app always created the label in the xlinked repositories too. We fixed this issue.

Public

11.0.16.7778: Feb 16 2023

New

All platforms - Plastic: Added Visual Diff button to Semantic Merge

The "visual diff" button has been added to allow viewing the differences in a "visual" way, it's accessible via the outline panels on semantic merge.

New

All platforms - Plastic: SemanticMerge parsing error dialog

Added a new functionality to display any parsing error that semantic merge has detected.

New

P4/Git importers: From now on, running import operations is restricted to users with the change owner permission

The Plastic import operation sets the original P4/Git objects author to keep the repository history intact.

Creating branches, labels, revisions... as a different user is something the importer, under an account with change owner permission, should do to reduce the risk of impersonating objects.

If you have a periodic sync operation ongoing, please make sure that the user running the "cm" command has the change owner permission enabled for the repository

New

All platforms - Plastic: Added Restart Merge and Run Text Merge buttons to Semantic Merge

A new set to buttons is now available on semantic merge, "Restart Merge", and "Run Text Merge".

New

Server: More resilient check-in to out-of-date workspace due to cloaked

Now the check-in operation returns a meaningful error when you try to check in an out-of-date item that is no longer loaded on the server:

The item '/l_memory.h' is not loaded on the changeset you are working on (cs:5).
Most likely, you updated the workspace with the item cloaked, so it wasn't unloaded.
Please retry the check-in operation excluding this item, then update the entire workspace to fix any inconsistency.

This problem can happen when you remove the cloaked rules for an item, this item remains out of date, and you modify it. See an example:

* James - Cloak '/code' directory

* Mary - Delete '/code' & check in the change

* James - Update his workspace

* James - Uncloak the '/code' directory

* James - Move '/code/botlib/l_memory.h' to '/l_memory.h'

* James - Delete '/code'

* James - The check-in will fail with the error above because '/l_memory.h' no longer exists on the repository.

New

All platforms - Plastic, Gluon: Added conflict resolution text label in Semantic Merge

We have added a new text label in Semantic Merge. This label will inform the users of resolved conflict status

New

All platforms - Plastic: New "Show pending to integrate" option for branch diffs

We added a new option in the diff window for branches, that lets you see the branch changes pending to integrate into its parent branch. This is the same as using the recently added --integration option in the cm diff command.

Bug

All Platforms - Plastic: Fixed wrong color of Semantic Merge on dark themes

When launching Semantic Merge via command line and using a dark theme, the color combination of a highlighted section that contains a code comment would make the section unreadable, this has now been fixed.

Bug

All Platforms - GitServer: Failure running 'git pull' using HTTP protocol.

After certain repository size, the 'git pull' operations could fail with the 'fatal: protocol error: bad pack header' error. This happened only when using the http:// protocol.

The Plastic GitServer was implemented long time ago and it doesn't support the multi_ack_detailed & no-done capabilities that most Git clients do. So, we rely in the original protocol without these extra capabilities leading to some weird behavior in some cases. This will be improved in the future.

With the fix done, the 'git pull' operation will download the Git package (and it will not fail anymore like it did), but, sometimes, it will not update the local references. Thus, an extra 'git pull' command execution could be needed to upload the repository references (that will download nothing).

git pull
remote: Exporting changeset cs: ... (1/118)
Receiving objects: 100% (354/354), 79.23 KiB | 3.30 MiB/s, done.
git pull
From http://server/repo
   47a2ee4..ffe577f  master     -> origin/master
   0cce4d8..3184425  task       -> origin/task
Updating 47a2ee4..ffe577f
Fast-forward
 foo.c | 2 ++
 1 file changed, 2 insertions(+)
Bug

All Platforms - GitServer: HTTP server thread crashed with unexpected error.

The thread used to serve the GitServer HTTP requests could crash if there was any unexpected exception when closing the client HTTP connections. Now this error is fixed.

Public

11.0.16.7762: Feb 09 2023

New

Server: Make check-in more robust to client errors

Added protection to the check-in operation to prevent a not uploaded file ends stored on the repository with a wrong revision.

New

All platforms - PlasticX: Cloud Repositories view removed

We removed Cloud Repositories view from Plastic because this functionality is now available through the Home view.

Also, we added the "Create new sync view (push/pull)" context menu option, which was missing, in the Home view.

Bug

All platforms - PlasticX, GluonX: Protect the delete repo operation when a workspace is in use

We protected the delete repository operation to take into account if there is a workspace in use that points to it. In this way, we prevent error messages due to the missing repository for the current workspace.

The app now shows a message to notify you about this scenario:

Public

11.0.16.7754: Feb 02 2023

New

macOS, Linux - Plastic: New binary merge tool configured by default

Now the binary merge tool is set as the default tool to fix binary conflicts on macOS and Linux. So when you try to diff or merge a binary file, like an image, the new tool will be used

New

Windows - Gluon: Removed legacy Gluon GUI from the installer

The "legacygluon.exe" won't be available anymore. Use "gluon.exe" instead if you aren't already!

This release marks the end of support for the legacy Gluon GUI for Windows.

New

All platforms - Plastic: Shelveset merge summary updates when toggling items

When applying a shelveset to your workspace you can use the checkboxes to choose which changes to take from the shelveset. We now update the summary at the top of the view according to the selected changes.

Here is an example:

New

macOS, Linux - Plastic: New semantic merge tool configured by default

Now the semantic merge tool is set as the default tool to fix semantic conflicts on macOS and Linux. So when you try to diff or merge a semantic file (C#, VisualBasic or Java), the new tool will be used.

New

Command-line client: ACL commands warn about objects without ACL

Updated the help of the ACL command to remove those objects without an ACL. Also, the ACL command warns about those objects that are invalid.

New

Windows - PlasticX, GluonX: Updated Avalonia version

In this release we've updated Avalonia, our cross-platform UI framework

This update addresses an issue that affects dialogs for Windows users (showing a message dialog after a dialog could throw a null exception).

New

PlasticFS: The executable is signed from now on

Previous versions of Plastic contained an unsigned version of PlasticFS. In some places, restrictions apply over unsigned executables rendering PlasticFS unusable.

Now they are signed to overcome this limitation and make it easier to use.

Bug

All platforms - Plastic: Binary merge, can't close error message

An issue has been fixed which prevented an error message, due to invalid arguments, from being closed.

Bug

Windows - Plastic: Fixed null exception in Merge Options Dialog

In Merge View, a null reference exception appeared when you saved the merge options in Merge Options Dialog with at least one solved directory conflict, not allowing the user to cancel or recalculate the merge. We fixed this issue and now it works correctly.

Bug

All platforms - Plastic: Optimized refresh operation after saving Merge Options

In Merge View, after saving Merge Options, merge view was always refreshed.

In this release, we only refresh the view when a merge recalculation is needed.

Bug

macOS - Plastic: Fixed tool config for server-side merge operation

In the previous release we had an issue with the server-side merge operation, where the merge tool that appeared in the default configuration couldn't be launched for text conflicts on macOS.

We fixed this issue, and now you don't need to apply any workaround to fix text conflicts in server side merges.

Public

11.0.16.7739: Jan 26 2023

~ WARNING ~

In a clean macOS machine, the server-side merge operation won't find the merge tool if there are text file conflicts. This happens due to a configuration issue.

As a workaround, you need to edit the text-based merge tool through the 'Preferences view' > 'Merge tools' tab in order to use '/usr/local/bin/plasticgui xmerge' (instead of 'plasticgui merge').

New

All Platforms - Gluon/GluonX: Incoming Changes only checks-out local changes involved in conflicts.

Before, the Incoming Changes applied all the local changes in the workspace before running the operation. It didn't matter whether these local changes were in conflict with the changes to update/merge or not.

This could end up locking exclusively some files that were only locally modified (unrelated to update operation) and preventing other users to modify those files due to an undesired lock.

Now, only the local changes that are in conflict with the server changes to update/merge are applied in the workspace.

New

Command-line client: Partial update command improved for automation

Several adjustments have been made to the partial update command:

* There was no --xml option in the partial update command. Now it is available.

* --xml option can be used in a pipeline.

* Using the --xml option implies --silent. Informative output gets trimmed.

* Using the --silent option removes informative output only. Warning and error messages are still written through standard error output. You can silence those messages by using output redirection.

New

All platforms - Plastic: Diff images available for binmerge tool

Now you can specify two arguments to the "plasticgui binmerge" command, the source and the destination contributors, to diff them instead of performing a merge. Both files must be images:

plasticgui binmerge -s=source.png -d=destination.png
New

All Platforms - Plastic: SemanticMerge match/unmatch

Ported match/unmatch functionality to new GUI for SemanticMerge.

Bug

All platforms - Plastic: Fixed issue applying directory conflict resolutions from shelveset

When applying the changes in a shelveset you can choose which of the changes you wish to apply. There was a bug which meant that if you chose to apply only resolved directory conflicts you would be told that no changes were selected and you would not be able to apply those changes. We fixed this, so now you can apply your directory conflict resolutions without issue.

Bug

All platforms - Plastic: App hang on closing if Pending Changes View is refresing

Plastic didn't respond if the user closed the GUI or switched to another Workspace when Pending Changes View was running a "finding changes in the workspace" operation.

This issue is now fixed.

Public

11.0.16.7726: Jan 19 2023

New

All platforms - Command-line client: Flag to print just the root spec

Now the shelve creation is able to print just the shelveset spec of the root repository, skipping other "xlinked" shelvesets created this way. This is useful for automation purposes.

Example:

$>cm shelve --all --summaryformat
sh:64@tools_repo@plastic_server:8087
New

All platforms - DevOps: Trunkbot now also sends trunk branch in a property

The trunkbot now also sends the configured trunk branch (usually the /main branch) to the underlying Continuous Integration system in a property named "PLASTICSCM_MERGEBOT_TRUNK_NAME".

New

Windows - Gluon: Removed "Switch to Legacy GUI" menu option

This release marks the end of support for the legacy Gluon GUI for Windows.

We removed the "Switch to Legacy GUI" menu option in Gluon, and soon the executable won't be included in the install package.

New

All platforms - Plastic: Unified the style of the color pickers

We unified the style of all color pickers that are shown in the application. This is how they look now:

New

Linux - Plastic: Allow changing the editor font.

For Windows and macOS you could change the font of the diff/merge:

Now you can also do it on Linux

New

All platforms - Plastic: Unified the look of the overlapped views

Sometimes when opening a view that requires all the space in the window, we open it on top of the current view. Overlapped views show a header at the top, that you can also use to close the view go back to the previous one.

We unified the style of these headers, and now all overlapped views in the application have the same look.

New

MacOS - Plastic: Update default merge tool

We updated the merge tool that is used by default to solve file merge conflicts. Now, unless you change it manually, the name of the new cross-platform merge tool will be used, instead of the legacy platform-specific one

New

Command-line client: Merge command improved for automation

Several options have been added, mirroring the update command: --xml and --encoding:

$ cm merge /main/task1001229 --xml --encoding=utf-8 2>nul
<?xml version="1.0" encoding="ibm850"?>
<Merge>
  <Added>
    <MergeItem>
      <ItemType>Xlink</ItemType>
      <Path>/Assets</Path>
      <Spec>
        <Server>localhost:8084</Server>
        <Name>ArtAssets</Name>
      </Spec>
    </MergeItem>
    <MergeItem>
      <ItemType>Dir</ItemType>
      <Path>/Source</Path>
      <User>tim</User>
      <Date>2022-12-15T11:46:46+01:00</Date>
    </MergeItem>
    <MergeItem>
      <ItemType>File</ItemType>
      <Path>/README.md</Path>
      <Size>6</Size>
      <User>tim</User>
      <Date>2022-12-15T11:46:46+01:00</Date>
    </MergeItem>
    <MergeItem>
      <ItemType>File</ItemType>
      <Path>/Assets/guy.brush</Path>
      <Size>17</Size>
      <User>tim</User>
      <Date>2022-12-15T11:46:46+01:00</Date>
    </MergeItem>
  </Added>
  <Deleted>
    <MergeItem>
      <ItemType>File</ItemType>
      <Path>/README.txt</Path>
      <Size>9</Size>
      <User>tim</User>
      <Date>2022-12-15T11:46:46+01:00</Date>
    </MergeItem>
  </Deleted>
  <Changed>
    <MergeItem>
      <ItemType>File</ItemType>
      <Path>/LICENSE.txt</Path>
      <Size>39</Size>
      <User>tim</User>
      <Date>2022-12-15T11:46:46+01:00</Date>
    </MergeItem>
  </Changed>
  <Moved>
    <MovedMergeItem>
      <ItemType>File</ItemType>
      <SrcPath>/LICENSE.txt</SrcPath>
      <DstPath>/LICENSE</DstPath>
      <Size>39</Size>
      <User>tim</User>
      <Date>2022-12-15T11:46:46+01:00</Date>
    </MovedMergeItem>
  <PermissionsChanged>
    <MergeItem>
      <ItemType>File</ItemType>
      <Path>/Assets/guy.brush</Path>
      <Size>20</Size>
      <User>tim</User>
      <Date>2022-12-15T10:46:46+01:00</Date>
    </MergeItem>
  </PermissionsChanged>
  </Moved>
  <Warnings />
  <DirConflicts>
    <ConflictedItem>
      <ConflictItemType>DIV_MV</ConflictItemType>
      <SourceDiff>
        <ChangeType>Moved</ChangeType>
        <ItemType>File</ItemType>
        <SrcPath>/PLAN</SrcPath>
        <DstPath>/JC_PLAN</DstPath>
      </Source>
      <DestinationDiff>
        <ChangeType>Moved</ChangeType>
        <ItemType>File</ItemType>
        <SrcPath>/PLAN</SrcPath>
        <DstPath>/RJ_PLAN</DstPath>
      </Destination>
    </ConflictedItem>
  </Conflicts>
</Merge>

See --usage for details:

> cm merge --usage
New

All Platforms - Plastic: Merge files from command line with Binary Merge

A quick way to get started is to run Plastic with a single argument:

* For Windows:

plastic binmerge

* For MacOS:

plasticgui binmerge

* For Linux:

plasticgui binmerge

For example, To merge two files with a common base file:

[plasticgui|plastic] binmerge -s=fileA.txt -d=fileB.txt -b=base.txt

In order to determine if a merge was successful, Plastic will return 0 or 1 as the application exit code. 0 means a merge was successfully performed and the result file has been save, 1 means that a merge has been aborted or not saved.

Bug

All platforms - Plastic: Corrected Merge View title when applying shelveset

When applying a shelveset the view title is now "Apply shelveset sh:<shelveset id>".

Bug

Windows - Gluon: Legacy merge tool opening for shelveset conflicts

On Windows Gluon, when trying to apply a shelveset that is in conflict with the local changes, we were opening the legacy merge tool (native to Windows). We fixed this issue, and now the new cross-platform merge tool is used instead

Public

11.0.16.7709: Jan 12 2023

New

Windows - PlasticFS: Upgrade to WinFSP 2023 Beta1

Among other changes, the next version of WinFSP does not require to reboot for upgrading.

You can find the WinFSP release notes in https://github.com/winfsp/winfsp/releases.

New

Windows - PlasticFS: Junction support for dynamic workspaces

We added support for junctions to PlasticFS! Tools that create temporary junctions on disk can now run on dynamic workspaces.

Before:

> mklink /J assets ..\..\game_tree\assets

Local NTFS volumes are required to complete the operation

After:

> mklink /J assets ..\..\game_tree\assets
>

In PlasticFS, junctions have the same limitations and capabilities that symlinks have, with the following exceptions:

* Junctions, they can only be used with directories. The flip side is that, unlike symlinks, junctions always have the right type.

* Junctions only support absolute paths.

* Plastic itself does not distinguish between "junctions" and "symlinks". Adding a junction to source control will eventually replace it with a symlink.

== REQUIREMENTS ==

Besides PlasticFS, you might want to enable symlinks in the GUI and the command-line interface.

To do so, add the following to your client.conf:

<EnableSymlinkSupportOnWindows>yes</EnableSymlinkSupportOnWindows>

== LIMITATIONS ==

1) This feature is in an early stage of development, so you can expect minor bugs to happen.

2) Currently, junctions are not allowed to point to the dynamic workspace directory nor anything outside it.

New

All clients: Incoming Changes only checks-out local changes involved in conflicts.

Before, the Incoming Changes & merge operations applied all the local changes in the workspace before running the operation. It didn't matter whether these local changes were in conflict with the changes to update/merge or not.

This could end up locking exclusively some files that were only locally modified (unrelated to the merge/update) and preventing other users to modify those files due to an undesired lock.

Now, only the local changes that are in conflict with the server changes to update/merge are applied in the workspace.

This new behavior applies to PlasticX, Plastic and the command line client (it's not available or partial/Gluon workspaces yet).

New

All platforms - PlasticX, Command-Line Client: Triggers are not accepting URIs on Windows servers

Due to the possibility of working cross-platform, sometimes Plastic is performing paths correction to fit the different OS's syntax. Therefore, anything that might be considered as a path can be altered by replacing slashes with backslashes on Windows. That was affecting the trigger commands, which can receive arguments. Usually, these arguments are expected to be paths, many times the executable itself, but it is also possible to use Internet addresses and endpoints. These addresses were being altered when parsing the command arguments (replacing the slash). That was leading to unexecutable triggers on Windows servers.

Now it is fixed and it will be possible to create triggers receiving valid URIs as arguments.

For instance:

cm tr mk before-update TryToLoginTrigger "curl -X POST http://localhost:8080/login ./secret.key" --server=localhost:8084

When creating the command on a Windows machine, it will fix the "./secret.key" path to convert it to ".\\secret.key" but the localhost endpoint will remain the same.

This allows new possibilities of interaction through triggers on Windows machines.

NOTE: to be able to distinguish between local paths and external URI, it is advisable to use absolute URIs.

A known limitation for this would be the following syntax:

cm tr mk before-update UnityTrigger "curl -X POST unity.com/amazing" --server=localhost:8084

Under the hood, Plastic will modify the "unity.com/amazing" and use the "unity.com\\amazing" endpoint instead, because the literal complies with the local path formation rules.

The way to avoid the issue would be to use the absolute URI referring to the same endpoint: "https://unity.com/amazing", which will remain unaltered.

New

Command-line client: status command now gives changed/unchanged info for checkouts

Unlike in the GUIs, the command line was only able to show an item as either checked-out or changed, but not both at once. This made hard to tell if a file was actually modified or not:

> cm status --noheader
Changed
    Status         Size        Last Modified     Path

    Checked-out    10 bytes    12 minutes ago    checked-out-CHANGED.txt
    Checked-out    11 bytes    13 minutes ago    checked-out-unchanged.txt

> cm status --noheader --compact
Modified items (CH = changed, CO = checked-out, CP = copied (new), RP = replaced)
 CO checked-out-CHANGED.txt
 CO checked-out-unchanged.txt

Now, additional detail is given when changes are found:

> cm status --noheader
Changed
    Status                     Size        Last Modified     Path

    Checked-out (changed)      12 bytes     1 minute ago     checked-out-CHANGED.txt
    Checked-out (unchanged)    11 bytes    21 seconds ago    checked-out-unchanged.txt

The "--compact", "--xml" and "--machinereadable" options don't display these details by default. It is so to not break existing integrations/automations. You need to combine them with the "--iscochanged" option to see the additional information.

> cm status --noheaders  --noheader --compact
Modified items (CH = changed, CO = checked-out, CP = copied (new), RP = replaced)
 CO checked-out-CHANGED.txt
 CO checked-out-unchanged.txt

> cm status --noheaders --noheader --compact --iscochanged
 CO+CH checked-out-CHANGED.txt
 CO checked-out-unchanged.txt

Note that this information is only provided when the status command is searching for changed items (see the --changed option in --help for details). For instance, in case you only need to find whether items are or not checked-out, you can filter the search by using the --checkout option. That way, those details will be omitted as before.

Bug

Server: Incoming Changes failed with path permissions and a cloaked rules.

From 11.0.16.7656, the Incoming Changes failed and didn't appear when certain conditions were met: 1) there were set path permissions, 2) no cloaked.conf in the client and 3) a cloaked.conf loaded on the head tree of the branch (it contains a /cloaked.conf file). Now, it's fixed.

Bug

All platforms - GluonX: Null exception on clicking the Get Plastic link button in Checkin view

We fixed it to don't show this button in the details panel for the Checkin View because it is only available for the Explore workspace view.

Public

11.0.16.7696: Dec 22 2022

New

All platforms - Command-line client: the diff command allows now to see the branch changes pending to integrate

You can use the new diff option --integration (e.g.: 'cm diff br:/main/task --integration') to see the branch changes pending to be integrated into its parent branch.

See some scenarios when it's useful:

* You are working on a child branch, and you make a rebase, a merge from /main. The regular 'cm diff br:/main/task' command will show the child branch changes combined with the rebased changes. Now, with the 'cm diff br:/main/task --integration', the command will skip the rebased changes. You will see a cleaner, more focused view of the actual branch changes.

* You are working on br:/main/task and you merge it into br:/main. Then you realize that you need additional changes in the branch and make them. The 'cm diff br:/main/task --integration' command will show those additional changes that you didn't merge yet.

New

All platforms - All clients: Pending changes: "Copied" items are now listed in "added" category

A "copied" is an existing item that is copied from a source changeset into the current one where it doesn't exist. It could happen due to a merge or revert operation.

Previously the copied changes were inside the modified category:

$cm status --noheader
Pending merge links
    Cherry pick from cs:3 at /main/added_file@change_delete_tests@localhost:7777

Changed
    Status                              Size       Last Modified    Path

    Copied (new) (Cherrypick from 3)    7.95 KB    7 minutes ago    FindMerge.cs

Now they are inside the added category, as the item is a new one on the current changeset even if it already exists on the repository:

$cm status --noheader
Pending merge links
    Cherry pick from cs:3 at /main/added_file@change_delete_tests@localhost:7777

Added
    Status                              Size       Last Modified    Path

    Copied (new) (Cherrypick from 3)    7.95 KB    4 minutes ago    FindMerge.cs
New

All platforms - All clients: New "change - not loaded" conflicts for cherry-picking merge & apply shelve

The old "change - delete" conflicts were replaced by the new "change - not loaded" conflicts for the cherry-picking merge, and apply shelve, where the changed item is not deleted on the destination, it's simply not loaded.

These new conflicts give a more accurate description and actions for these types of conflicts:

* Changed file on the source that doesn't exist on the destination:

* Changed file on the source whose parent doesn't exist on the destination:

* Added file on the source whose parent doesn't exist on the destination:

New

All platforms - PlasticX, Command-Line Client: Basic Auth now working with webtriggers

Webtriggers requiring basic authentication were not supported. There was a workaround to create a script with the call (using curl for instance inside a *.bat or *.sh file) including the authentication and then wrapping that script call within a regular trigger. Now it is possible to directly use webtriggers with basic authentication instead.

For example, imagine you have a configured Jenkins with a job named "MyProject" and you would like to call Jenkins to build the project after a check-in has been successfully completed. You could create a trigger like the following:

cm trigger mk after-checkin buildJenkins "webtrigger http://user:pass@localhost:8080/job/MyProject/build" --server=localhost:8084
New

All platforms - Plastic, Gluon: Added new arguments

The following arguments were available in legacy Windows GUI. Now we added them to the new cross-platform GUI:

* --clientconf: Lets you use a custom client.conf file, instead of the one at the default location

* --branchexplorer: Opens the branch explorer view of the specified workspace

* --preferences: Opens the preferences view when Plastic starts

* --createworkspace: Opens the dialog to create a new workspace when Plastic starts

In addition, arguments used to open the legacy GUI are now passed to the new GUI when clicking the "Try new GUI" button

New

All platforms - Plastic, Gluon: Provided better description in User Profile Tab

We renamed Preferences "User Profile" tab to "DevOps User Profile" to avoid confusion with "Connection Profiles"

Also, a explanation text and additional help hyperlinks were added, improving the documentation of this tab and giving better descriptions to the users

New

macOS, Linux - Plastic: Cross-platform semantic merge tool enabled by default

From now on, in macOS and Linux, when there is a non-automatic merge conflict on a code file, the cross-platform semantic merge tool will be launched to solve the conflict. Until now, you had to manually enable it by adding a flag in the client.conf file.

On Windows the native tool is still the default one, so you need to add the flag in client.conf if you want to use the new cross-platform tool:

<EnableSemanticMergeCrossPlatform>true</EnableSemanticMergeCrossPlatform>
New

All platforms - Plastic: shelvesets can now be filtered

We've improved the shelving workflow in Plastic by adding flexibility when applying a shelveset to your workspace. Now you can pick and choose individual files from a shelveset and apply only those that you want.

Shelvesets are chosen from the Shelves view, accessed using the "Show Shelves" button on the Pending Changes view, in the usual way:

Check the files in the shelveset that you want to apply to your workspace. Unchecked files will be ignored:

Bug

All platforms - Plastic, Gluon: Page Up/Down keys navigation fixed

We've fixed in this release Page Up/Down keys navigation for all Tables and Trees

Bug

All platforms - Plastic: Fixed exception when using the semantic icons bar

When clicking on "Diff changed code..." from the semantic icons bar in a changed portion of a file, an exception was thrown. We fixed this issue and now the diff window is opened correctly

Bug

All platforms - Command-line client: Failing to create an Xlink leaves a private directory

So far, trying to create an Xlink to a non-existent item still created a a private directory in the workspace.

Now, the item is solved before the xlink command can tinker with the workspace.

Bug

All platforms - IntelliJ: IntelliJ plugin diff does not display properly

Previously to this change, diff was not displayed properly if the revision was pointing to a shelve as the internal find command was lacking shelve option. We added shelve option and parse revId correctly so the content can be downloaded and displayed.

Public

11.0.16.7679: Dec 15 2022

New

DevOps: TrunkBot now deletes shelvesets for Xlinks

When merging a task, the TrunkBot creates a shelveset that gets deleted when done. If the repository contains Xlinks, shelves are potentially created for each "xlinked" repository.

Before, the TrunkBot only removed the shelveset of the root repository, so the shelves of the "xlinked" repositories were left behind.

Now server and TrunkBot were improved so all shelvesets are properly cleaned.

New

Command-line client: Automatic shelve before switch (with pending changes).

The 'cm switch' and 'cm partial switch' commands now ask about shelving the workspace changes before continuing with the switch operation when there are pending changes in the workspace.

If the answer to the question is yes, it automatically shelves and undo your local changes before continuing with the switch operation.

This new behavior only happens if the following option is set in the client.conf configuration file.

<PendingChangesOnSwitchAction>Shelve</PendingChangesOnSwitchAction>

The shelve question can be skipped if the switch commands are executed with the '--noinput' option. In this case, the shelve + undo are run by default before the switch operation.

New

MacOS - Plastic: Automated update workflow

The update workflow has been improved on MacOS! It automatically downloads the latest release and executes it, whenever an update is available, and the user wishes to update.

New

All Platforms - Plastic/PlasticX/GluonX: Semantic supports C# 9, and 10 versions!

We modified Semantic Diff/Merge to support the new features introduced in the C# (9, and 10), and VB (16.9) languages for all platforms.

Here is a sample for C# 9 files with target-typed new expressions, and top-level statements (program without Main method):

Here is a sample for C# 10 files with global using, file-scoped namespace, and constant interpolated strings:

New

All platforms - PlasticX, GluonX: Removed the repositories view from the switcher window

When you clicked on the workspaces drop down at the top and selected "View repositories..." you would see the switcher window with a list of all the repositories you can access. This information was redundant, because you can also see the repositories from the home view. We removed the repositories view from the switcher window, and now it only displays the list of your workspaces

New

All Platforms - Plastic: Check for update option

You can now to check for a new update at any time, by selecting it from the application context menu.

Bug

All platforms - Plastic, Gluon: Home shows error message selecting repo with read permission denied

Plastic app could show a "An unexpected error has occurred" message in Home View if a repository with no read permission was selected, we fixed this issue

Bug

All platforms - Plastic, Gluon: Home will show public directories in repos with root path permission denied

We fixed the following scenario:

If an admin account denied all root permissions to another user accounts, but some subdirectories are public, HomeView would show empty repository to these users

This is the full repo an admin user could have:

And this will be the Home View normal users will now see in this scenario:

Bug

Windows - Visual Studio 2022 plugin: Prevent private files from showing CodeLens information

Previously to this change, private files were showing "Private" for every method and class and an empty tooltip. Now we are hiding useless information.

Bug

Command-line client: status --short option not providing a list of files

Before, the status command didn't provide a list of files as the help said. It couldn't be used in a pipeline without some workarounds.

Now it is possible to use it as expected:

> cm status --short | cm unco - --keepchanges
Bug

All platforms - Plastic, Gluon: Home View Path permissions created with \ instead of /

In the Home View, if we browse a file o directory to add a Path Permission, backslashes were used instead of forward slashes, we fixed this issue

Public

11.0.16.7665: Dec 01 2022

New

Command-line client: Update command improved for automation

Several adjustments have been made to the update command:

Before:

* Using the --xml option was not meant to be used in a pipeline.

* Using the --silent option was meant to trim all output.

Now:

* Using the --xml option with no file implies --silent. Informative output gets trimmed.

* Using the --silent option removes informative output only. Warning and error messages are still written through standard error output. You can silence those messages by using output redirection.

New

All clients: Incoming Changes respects the cloaked rules.

Before, the Incoming Changes operation downloaded the files/directories although they were under cloaked paths. This was inconsistent with the update operation behavior and with the cloaked semantics themselves.

Now, the changes under cloaked paths are skipped like the update operation does.

The Gluon Incoming changes is not affected by this behavior (cloaked rules don't make sense in Gluon) since the operation works in a different way.

New

All Platforms - DevOps: Jenkins plug now shows the link to the build job

The Jenkins plug now notifies the URL to the build job. This way users are able to get the details about what failed while building the task in Jenkins.

Find below a sample of this notification using a local Jenkins plug with a TrunkBot mergebot on Slack:

New

Command-line client: Switch command improved for automation

Several options have been added to the switch command, mirroring the update command: --silent, --verbose, --xml and --encoding.

See --usage for details:

> cm switch --usage
New

Command-line client: Undo controlled changes and preserve local content

Added the option -k | --keepchanges to the cm unco & cm partial unco to allow undo checkout and preserve all local changes.

It could be very useful when you have a checked-out file with some changes for testing that you don't want to check in. So, now, you can undo the checkout (that releases the lock), and preserve local changes just to continue with your local tests.

$cm status --noheader
Changed
    Status         Size         Last Modified    Path

    Checked-out    319.30 KB    1 minute ago     body.png


$cm unco -k
c:\tmp\quake\body.png unchecked out correctly

$cm status --noheader
Changed
    Status     Size         Last Modified    Path

    Changed    319.30 KB    1 minute ago     body.png

The unco -k command can be applied to all kinds of controlled changes, turning them into local changes. This is complementary to using the checkout command to promote local changes into controlled ones.

*Added are left as private

*Checked-out are left as changed

*Deleted are left as locally-deleted

*Moved are left as locally-moved

Note this option is incompatible with dynamic workspaces.

New

All platforms - Plastic, Gluon: Improved app stability

We've improved app stability in some scenarios, preventing the app from crash when an exception is thrown

New

Command-line client: Update --xml now includes deleted items

Before, the --xml output of the update command was meant to only report items with added or updated revisions.

Deleted items are now included:

<UpdatedItems>
  <List>
    <UpdatedItem>
      <Path>/wkspaces/SuperRacing/Assets/wheels.png</Path>
      <User>Kit</User>
      <Changeset>122</Changeset>
      <Date>2022-11-27T20:30:44+01:00</Date>
    </UpdatedItem>
  </List>
</UpdatedItems>
New

All platforms - Plastic: Disabled Semantic History option for unsupported text files

We've disabled Semantic History menu option in Annotate View for all unsupported text files in semantic history (for example, .txt files)

New

macOS - Plastic: Removed mono-based GUI's

We finally removed the mono-based GUI's that were deprecated months ago, in favor of net(core) based counterparts: plasticgui and gluon .

This way we ease the setup of the Plastic SCM GUI applications, since no more "mono/xamarin" and related dependencies will be a requirement anymore.

Bug

All platforms - Plastic: Fixed exception in diff when selecting files outside of refactor group

We fixed an error that was causing an exception to be thrown when selecting an item in the diff window that is not inside a refactor group.

Bug

Command-line client: Unrelated conflicts when applying a shelve.

The 'shelveset apply' command could show some directory conflicts that were not related to the changes/paths specified in the command.

This happened when 1) only some changes were specified to be applied from the shelveset and 2) there were more than one directory conflicts involved in the shelveset application.

The problem came because the filter used to apply only the specified changes was not applied again after resolving a directory conflict. Fixed.

Bug

Command-line client: Update command --xml and --silent options are incompatible

Before, using the --silent option allowed the XML output to be printed but affected to the contents themselves.

Now, those options are compatible. Moreover, the --xml option now implies --silent.

Public

11.0.16.7649: Nov 24 2022

New

All platforms - PlasticX, GluonX: Updated Avalonia version

In this release we've updated Avalonia, our cross-platform UI framework, to the latest public release

This update brings many stability improvements under the hood, and also addresses the following macOS issues:

- Sometimes a dialog could hang the app, this issue is fixed

- Merge links are now clickable again in Branch Explorer

- Fixed strange issue where buttons could disappear

- Fixed flickering in the Home View

New

All Platforms - PlasticX: Jira task details on branch explorer

You can now see and navigate to a Jira task when using the Jira extension to create a branch.

New

All platforms - PlasticX: Launch Semantic Merge as standalone

The Semantic Merge tool could be launched from the command line using:

plasticx semanticmerge -s=source -d=destination -b=base

For unsupported file formats the merge tool will be launched instead of semantic merge. If the base argument is missing in the command line, the diff tool will be launched instead.

New

All platforms - PlasticX: Clarification message for deleted repositories

Improved description of how long repositories are kept in storage after being deleted.

Bug

All platforms - PlasticX: Branch options not working in Merge diagram

When the merge diagram was opened from the Merge view, some of the available actions from the branch context menu were not working as expected.

Bug

Command-line client: Misleading diff result message

When requesting a diff of a private file or non-existent file, the message tries to indicate that there is nothing to compare it with.

However, this feature includes a misleading message:

> cm diff private_file.txt
Item has only one revision.

Now this is corrected:

> cm diff private_file.txt
There is no previous revision for this item.
Bug

All Platforms - Command-Line Client, PlasticX: Codereview creation with triggers fails.

Having an "editreview" trigger enabled, the creation of a code review through PlasticX fails.

This happens becase, when creating a code review with the CLI or with the PlasticX application, the reviewer might not be specified in the command and it is not set by default in PlasticX when the creator of the code review is the same user who created the branch.

Now it is fixed.

Bug

All platforms - PlasticX: Corrected semantic outline for multi-file moves

We corrected the information displayed in the semantic outline when we detect that code has been moved from one file to another.

Here is an example:

Bug

All platforms - PlasticX: Check-in button disabled during the check-in operation

We've disabled the Pending Changes view Check-in button until the check-in operation is complete

Bug

Windows 10: We disabled the possibility of negotiating TLS 1.3 connections on Windows 10

This TLS version is experimental on Windows 10 and, although it can be enabled and forced through registry hacks, it is not officially supported (as per Microsoft documentation) and won't work when trying to connect to Plastic SCM Cloud nodes.

By doing this, we re-enabled TLS 1.3 support on Windows 11, Windows Server 2022, and all other platforms that support it.

Bug

All platforms - GluonX: Error sorting columns in the Workspace Explorer view

If a user tries to sort by the Changeset column in the Workspace Explorer view and one item has no revisions (for example, a newly created file), the operation throws an exception.

We've fixed this issue.

Bug

All platforms - GluonX: Shelve and undo changes, fixed null exception error message

We've fixed the following scenario in GluonX:

If a user undo changes right after a shelve operation, and the Pending Changes view was completely cleared, a null exception could appear

Public

11.0.16.7626: Nov 17 2022

New

All platforms - DevOps: TrunkBot adds tasks' title to the check-in comment when merging

Now TrunkBot mergebot will add the task' title from the configured issue tracker to the check-in comment when a merge is successfully performed. If there is no configured issue tracker, it will add the branch comments instead.

New

All platforms - Server: Deleting an object now deletes the associated code review data.

Now, when deleting a changeset, a shelve, or a branch, all the associated code review data gets deleted as well. This means that all code reviews targetting a changeset or a shelve, as well as all the code review comments made on a changeset or a shelve, will be deleted along with the changeset or shelve. When deleting a branch, all the code reviews targetting the branch will be deleted too.

Until now, the only thing that happened (regarding code reviews) when deleting a changeset was that all the change requests applied on said changeset were marked as not addressed. Now, the cleanup is complete.

New

All platforms - Command line client: Now you can create code reviews for shelves!

If you want your colleagues' feedback on some code, but don't want to actually check in the changes, now you can create a shelve and ask them to review the changes with the integrated code review functionality! Bear in mind that creating the code review only works (from now) from the cm command line client, but once created, you can open the code review from the GUIs.

To do so, you will need the shelve ID of your shelve. You can obtain that from the "ID" column in the "Show shelves" view in the GUIs, or by running a cm find command:

cm find "shelves where owner = 'me' on repository 'secretproject@coolorg@cloud"

Then, create the code review specifying the shelve:

cm codereview sh:1354@secretproject@coolorg@cloud "Please review this change with care!"

The code review can then be opened and edited from the GUIs.

New

Server: Deny temporary access for some specific users

Now you can deny access to certain users. To do so, create a deniedusers.conf file inside the server directory and add a user per line.

You don't need to restart the server, but note it might take some seconds until the server reloads the list of users with access denied.

Examples:

alice
bob

Note users might look different, as it depends on the configured authentication:

alice@mail.com
bob@mail.com
New

Windows - PlasticX: PlasticX is now the official GUI on Windows

We are happy to announce that our new, cross-platform, GUI is now the official GUI on Windows.

To launch the new GUI simply run plastic.exe as before. The old windows gui has been renamed to LegacyPlastic.exe.

New

Windows - PlasticFS: Symlink support for dynamic workspaces

We added support for symlinks to PlasticFS!

Now symlinks are supported everywhere in the Plastic ecosystem: Windows, Linux, macOS and PlasticFS.

== REQUIREMENTS ==

1) While PlasticFS does not need anything to support it, you might want to enable the Windows client support. This will allow the command line and PlasticX/GluonX to work with symlinks on Windows.

To do that, add the following configuration setting to your client.conf:

<EnableSymlinkSupportOnWindows>yes</EnableSymlinkSupportOnWindows>

2) If you update an existing dynamic workspace, you will find placeholder files where symlinks should be. To get the actual symlinks, you can delete the placeholder files, then tell Plastic to undo changes so they are recreated.

Be sure to read the LIMITATIONS section before using.

== HOW TO USE THEM ==

You can use mklink as usual to create some symlinks:

mklink filelink file.txt
mklink /D dirlink dir

Note that, unlike with static workspaces, you don't need to enable Developer Mode to make it work!

== LIMITATIONS ==

1) This feature is in an early stage of development, so you can expect minor bugs to happen.

2) PlasticFS always creates symlinks as files. By trying to access them, they will be automatically solved and converted to directories. However, this step might confuse external programs that do not expect it.

* This happens anytime you create a new workspace or after undoing a placeholder file (see REQUIREMENTS section).

* Windows Explorer will force this conversion, but you will have to refresh the window the first time it shows a symlink.

3) Currently, relative symlinks are not allowed to link the mount point directory or anything above it.

New

All platforms - PlasticX: View deleted repositories on home view

You can now see the recently deleted repositories on the home view!

It is accessible by clicking on the cog icon near the search bar.

To restore a deleted repository, simply right click on the deleted repository and select the "undelete" option

Bug

Windows - Visual Studio 2022 plugin: Fixed issue when opening Pending Changes

After uploading Visual Studio 2022 to version 17.2.0 or higher, if the solution contained a solution's folder, Visual Studio plugin was prompting the error:

"GetSccFiles must be called on the UI thread"

It was preventing the Pending Changes view from working properly.

The issue has been fixed and now Pending Changes is fully usable in any situation.

Bug

All platforms - PlasticX: Flicker issue in the pending changes refresh

The refresh operation for the pending changes view launched different operations to calculate the review comments to apply and the pending changes which caused a flicker issue. We unified those operations to avoid this issue.

Bug

All platforms - PlasticX: Missing success message after creating a shelveset

After creating a shelveset the success message was shown in the status bar but it was immediately hidden due to an issue in the pending changes refresh operation that overwrote the message with the progress. Now it's fixed.

Bug

All platforms - PlasticX: Fixed slow pending changes category checkbox

We improved the performance of toggling a pending changes category checkbox when the category contains a very large number of items.

For example, toggling a category containing 30,000 items used to take about 20 seconds, and now takes less than half a second.

Bug

Cloud Server: Fixed deadlock with concurrent checkins in the same repo.

The cloud server uses locks to handle concurrent access to the Jet files and to the internal caches. There was a race condition where concurrent checkins (in the same repo) that added new files to the repo could get stuck forever due to a deadlock between the previous mentioned locks. Fixed.

This was a corner scenario since the race condition was not easy to reproduce without the right debugging.

Bug

All platforms - GluonX: Details Panel could not be resized.

We found a rare scenario in the Details Panel where this subview couldn't be resized anymore. We fixed this issue

Also, we have also set minimum width to the Workspace Explorer and Checkin Views when Details Panel is shown to the users

Bug

All platforms - PlasticX, GluonX: Skip format changes not working properly

There's an option in the pending changes view and diff view that allows you to skip format changes when diffing two versions of a file, such as line endings or spaces. This option was not being initialized correctly, and even when it was enabled, it appeared as disabled in the GUI. This issue is now fixed

Bug

All platforms - PlasticX: Diff/Merge Window crash after Cut empty text

PlasticX crashed cutting an empty line from the editable text editor in diff/merge view.

Public

11.0.16.7608: Nov 07 2022

New

All platforms - Plastic: Semantic Visual Differences are here!

We ported the Visual Diff feature from the Windows Legacy GUI to the new (multiplatform) GUI, which means that now, the Visual Diff feature is available on three platforms, Windows, macOS, and Linux!

The Visual Diff is a diagram that helps to understand the changes made to a file, in a semantic way. Visual Differences are available for those file formats that support semantic differences (.NET, Java, PHP, C, C++). When the semantic differences are calculated, the Visual Diff displays a graphical representation of them. The diagram displays, classes, usings, methods, members, fields, etc, and some decorations indicating if an entity was added, changed, moved, or deleted. It also helps to display the differences between them.

The Visual Diff is available in three places:

1- The Diff Control (note that we also implemented a couple of options for the semantic diff):

* Skip format changes: This option ignores the indentation and EOL changes when the semantic diffs are calculated.

* Reformat: This option automatically reformats the source code:

2- The Diff Window, when clicking a Refactor Group when using our "analyze refactors" feature:

3- The Semantic Merge tool:

New

All platforms - PlasticX: Visual diff window new design

Some colors and layout design has been changed for the Visual diff window in order to improve legibility and visibility for both themes.

New

Linux - Plastic: removed mono-based GUI's

We finally removed the mono-based GUI's that were deprecated months ago, in favor of netcore-based counterparts: plasticgui and gluon .

This way we ease the setup of the Plastic SCM GUI applications, since no more "mono" and related packages will be a requirement anymore.

The final goal is to support newer distros, and for that goal, this removal of mono-based applications is a must.

REMARK: The package name was renamed from plasticscm-client-gtk to plasticscm-client-gui , but your package manager should care automatically of this renaming.

New

Linux - Client and Server: Added support for Ubuntu 22

Now you can install Plastic SCM on Ubuntu 22 using the package manager! Instructions here , "Ubuntu" tab.

Easy to say, long road until we made it! This Ubuntu 22 support pulls some relevant changes in the Plastic SCM software stack:

1. Mono removal: We don't require installing mono runtime anymore. We now rely on .NET specific OS-targeted self-contained executables for all Plastic SCM applications, even client-GUI applications (server was already compiled this way since early 2021).

2. Legacy GUI's removal (gtkplastic, gtkgluon, gtkmergetool). Since they were based in mono, they need to be removed and replaced by .NET counterparts: plasticgui and gluonx (mergetool is now part of plasticgui application and can be launched using plasticgui xmerge ).

3. Move server from .NET 5 to .NET 6

All these changes were required in order to meet dependencies needs for Ubuntu 22, specially on ssl libraries and graphical toolkit libraries.

New

All platforms - PlasticX, GluonX: Damaged image file won't show error pop up in Pending/Checkin Changes Views.

Selecting a damaged image file won't show error pop up message in Pending Changes/Checkin Changes Views.

The error message will still be visible to the user as a label notification, and also in the Details Panel (GluonX only)

New

All platforms - GluonX: Visual feedback when cutting items

When cutting items from the workspace explorer view, now there is a transparency effect in the icon of the elements that have been cut.

This feature was already available on Plastic, and now it's on Gluon too.

New

All platforms - Plastic: Allow changing the editor font.

Now, the diff/merge font can be changed.

NOTE for windows users. The default monospaced font in Windows OS (if available) is Cascadia Code , which enables font ligatures , so if you want to disable them, you can change the font to use Cascadia Mono, or other available font in your system.

New

All platforms - Plastic: Full Unicode support and IME.

Previous versions of Plastic didn't fully support double-byte languages (Chinese, Korean, Japanese, etc ...). This Plastic version supports, not only double-byte languages and emojis, but also supports IME (Input Method Editor) for these languages, and right-to-left input support for Arabic and other languages.

NOTE for Open Suse Linux users: After this changes, Open Suse 15.2 is no longer supported. An upgrade to Open Suse 15.3 is required in order to run Plastic.

New

Server - Merge and Incoming Changes are much faster tons of ChangeDelete conflicts.

The calculation of the merge or the incoming changes was very slow when there were tons of ChangeDelete conflicts involved in the operation.

In the studied case, 2 million of items were added in the source of the merge but all of them were added under a deleted directory in destination. It initially took more than 2 hours to calculate the merge. Now, the same scenario takes less than 15 seconds to complete it. So, it's 500 times faster.

New

All platforms - PlasticX: added tooltip to Branch Explorer

Branches, changesets and labels on the Branch Explorer now have a tooltip which looks something like this:

Clicking the links on the tooltip will open a diff of the specified branch or changeset.

New

All Platforms - Command-Line Client: New information to display on revision history command

A new option has been added: --limit. It displays the N last revisions regarding the specified items. If N is bigger than the number of available revisions, it will display the existing ones (limit will take no effect); if N = 0, it will display every revision; if N < 0 the displayed list will be empty; if 0 < N < numRevisions will display the N most recent revisions, sorted by date and changeset id.

For example:

cm.exe hist foo.c bar.c --format='{path}: {itemid}' --limit=5

Will display the path and itemid regarding the last 5 revisions of foo.c and bar.c

foo.c: 8
foo.c: 16
bar.c: 12
bar.c: 13
bar.c: 15
bar.c: 21
bar.c: 24

Note that, in the example, foo.c only has 2 revisions.

New

All platforms - PlasticX: Changes in Semantic Merge Window

We changed the Semantic Merge Window icon, now the window will now show legacy Semantic Merge tool icon

We added MinWidth and MaxWidth properties to the window

New

All Platforms - Command-Line Client: New information to display on revision history command --format

Two more fields have been added to the revision history command in order to display information such as the revision size in bytes and the revision hash code. The --long option will also regard these new fields.

Now it is possible to use both {size} and {hash} in order to display that information along with the --format option.

For example:

cm.exe hist ./dir/foo.c bar.c --format='{path}: {size} bytes ({hash})'

Will display the review history of both foo.c and bar.c files, outputting the item id, the size of the file at each specific revision and, in between parenthesis, the hash code identifying the content of each revision.

./dir/foo.c: 5 bytes (RKaq9oJlXsU2xCXiO7zSjg==)
./dir/foo.c: 15 bytes (qNJWW77XzCApIMdT13jzkw==)
./dir/foo.c: 203 bytes (NnqIk33R+eUMaewTjAVrqQ==)
bar.c: 2031 bytes (aaHWt78weCApIMHa53jz22==)

In addition, the --long format will also display the new fields:

cm.exe hist bar.c --long

Will display something like the following, considering bar.c file had only 1 revision:

REVISION HISTORY OF C:\wkspaces\default\bar.c
--------------------------
Revision spec: bar.c#cs:1
Located on branch: /main
Created: 9/27/2022 17:53
Revision type: txt
Changeset number: 1
Owner: newuser
Repository: default
Server: localhost:8084
Repository spec: default@localhost:8084
Data status: Available
Item ID: 21
Item path or spec: bar.c
ItemSize: 2031
Item hash code: aaHWt78weCApIMHa53jz22==
Comment: bar.c now is managing HTTP connections
New

All Platforms - PlasticX, GluonX: Application Zoom Support

You can now apply a zoom level to the whole application!

Change it via the ⋮ (triple vertical dot) menu on the top right corner -> Zoom or by pressing Ctrl + Plus, Ctrl + Minus, to increase or decrease the application zoom.

New

All platforms - Plastic: Added text editor options.

Now, the diff tool and the merge window have new options to customize the text editors. Those options allow to:

- Show/hide the tabs and the whitespace.

- Show/hide the line ending (EOL) characters.

- Convert tabs to spaces while editing.

- Customize the indent size (tab size) to 4 or 8 characters.

- Add column rulers.

Demo:

New

Command-line client: New env variables in codereview edit

Previously there was no way to create a [before | after]-editreview trigger and retrieve

information about what editing was being done: the assignee or the status or both of them.

Now there are two new environment variables related to [before | after]-editreview triggers:

PLASTIC_REVIEW_ACTION: edit assignee or edit status or both separated by ';')

PLASTIC_REVIEW_ACTION_INFO (detailing "previous value" "->" "new value" for the assignee, the status or both, separated by ';').

Mind that only when editing the code review from the CLI both fields can be edited at the same time.

For instance, if you have a script which is dumping the environment variables passed as arguments to an output file (DumpEnvVars.exe), the following trigger creation:

cm trigger create before-editreview before-editreview-trigger "C:\wkspaces\scripts\DumpEnvVars.exe -env=PLASTIC_REVIEW_ACTION;PLASTIC_REVIEW_ACTION_INFO C:\wkspaces\outputs\before-editreview-trigger-result.txt" --server=localhost:8084

And you do a code review edit like this one:

cm codereview -e 19 --status="Under review" --assignee="Michaella"

The script would write a file with the following content:

PLASTIC_REVIEW_ACTION = edit status;edit assignee
PLASTIC_REVIEW_ACTION_INFO = Rework required->Under review;Thormund->Michaella
Bug

All platforms - PlasticX: Error in skip merge tracking

An unexpected error was displayed when skipping merge tracking in diff window for big number of differences (>50).

Bug

All platforms - PlasticX, GluonX: fixed issue selecting damaged image files in Pending/Checkin Changes Views.

When selecting a damaged image file in Pending Changes/Checkin Changes Views, if the user had selected previously another image file, image panel still showed to the user the last viewed image, we fixed this issue.

Bug

All platforms - PlasticX: Attributes panel resizing

The attributes panel was not showing the relevant info, the attribute name, when resizing. A fix has been added in order to adapt panel items sizes proportionally to the available space/width when resizing the panel horizontally.

Bug

Server: The REST API to download revisions had a memory leak.

The endpoint to download a file revision content (api/v1/repos/repName/revisions/revId/raw) had a memory leak when the '?version=2' query parameter was specified.

We already fixed a memory leak related to this endpoint in the version 11.0.16.7372, but a different one still happened. Fixed.

Bug

All platforms - Semantic Merge: Fixed diff color palettes for the dark theme.

The colors used to display differences were unsuitable for the dark theme (they had low contrast). Now it's fixed. This is how it now looks:

Bug

All platforms - PlasticX: Fixed empty buttons in pending changes

There was an issue with the "Save" and "Discard" buttons that appear in the pending changes view when you modify a file from Plastic. Sometimes, when changing the selection of the file, these buttons appeared without any content, until moving the cursor over them. We fixed this issue, and now the buttons work as expected

Bug

Windows - PlasticX: Fixed issue when opening files with custom tool

When trying to open a file with a custom tool from the workspace explorer on Windows, there was an exception preventing the new process from starting. We fixed this issue, and now the custom tool launches as in the other platforms

Bug

All platforms - PlasticX, GluonX: Preview was being calculated even when it's not visible.

We optimized the Details Panel behavior. Now, the app will only calculate the Preview data when the panel is visible to the user.

Bug

All platforms - PlasticX: Fixed issue when requesting credentials

When you try to perform an action on a server for which you don't have valid credentials, we show a dialog asking you to authenticate. There was a bug that made this dialog appear multiple times overlapped. We fixed this issue and now the dialog only appears once

Bug

All platforms - PlasticX: Merge view issues

Avoid error loading conflicts from a merge in Merge view and converted multiline texts in one single line for Comments column.

Bug

All platforms - PlasticX, GluonX: Tool command not properly refreshed

In Preferences window when the Diff or Merge Tools were opened, the Tool command text field was not properly updated with the current selected tool command line.

Bug

All platforms - PlasticX: Fixed DNS error for cloud.plasticscm.com

We fixed an issue in the Plastic onboarding where a DNS error was shown after creating a new organization. This issue only appeared for new accounts that didn't have any organizations and created a new one after the sign up.

Bug

All platforms - PlasticX: Help not displayed for empty list of code reviews

The help panel wasn't displayed after clicking the Help button in "Code Reviews" view when the list was empty, now the general query views help will be shown for this case.

Bug

All Platforms - PlasticX: SemanticMerge hangs

An issue has been fixed in which when resolving a conflict with the argument "--process-all-merges"

Bug

macOS - PlasticX: Fixed loading of Polarion extension

When trying to load the Polarion issue tracker exception in macOS, an error was thrown because a missing dependency. We fixed this issue, and now you can use the extension on macOS as in the other platforms

Bug

All platforms - PlasticX: Fixed issue when showing merge tracking colors

We fixed an issue with the merge tracking colors menu, which was only visible when diffing branches that didn't have xlinks.

Now it's also available for diffing changesets and labels, which can contain changes in xlinks

Bug

All platforms - GluonX: Details Panel didn't clear data when no row was selected in Checkin View.

We fixed an issue in the Checkin View Details Panel. Now, the app will always clear previous data when no row is selected or if the Checkin View is empty.

Bug

All platforms: TLS1.3 temporarily disabled.

TLS1.3 is not supported on Windows 10. We identified some software that enables and forces it through registry editing, forcing Plastic SCM secure connections to use it, and failing to connect both to Enterprise and Cloud servers.

Bug

All Platforms - PlasticX: Incorrect theme on ⋮ (options menu)

An issue has been fixed in which sometimes would show the incorrect theme selected on ⋮ (options menu) -> Theme.

Bug

All platforms - GluonX: Hide open repository button

In order to avoid opening not loaded repositories, the open repository button won't be available from Home view in Gluon app.

Bug

All platforms - Plastic: Allow restoring default font in the text editors.

The dialog that allows changing the editor font didn't show the "Select default font" button. Now it's fixed:

Bug

macOS - PlasticX: Fixed hang when discovering new servers

There is an option when adding new accounts to auto discover Plastic servers in the local network. If the discover operation is cancelled while it is running, the application hangs, and needs to be killed.

We fixed this issue, and now the operation can be cancelled without issues

Bug

All platforms - Plastic: Fixed syntax lines are not colored sometimes.

In some scenarios, some lines were not colored when loading a file in the diff viewer. Now it's fixed.

Bug

All platforms - Plastic: The diff scrollbar was not visible under some circumstances.

A recently added option in the diff viewer that allows scrolling below the document caused the scrollbar not to be visible sometimes. Now it's fixed.

Bug

All platforms - Plastic: resolved issue where long running merge processes could accumulate on the server

The Plastic client checks the server for incoming changes in some operations that can affect them. This can trigger the server to calculate a merge. If this calculation took a long time, the calculation would be triggered again by other operations and these processes could accumulate, pointlessly using server resources.

We fix this by ensuring that the calculation will not be requested if another calculation is already in progress.

Bug

Windows - PlasticX, GluonX: Dynamic Workspaces checkbox not visible

The dynamic workspaces checkbox visibility status was not properly refreshed from Create Workspaces dialog. When "plasticfs" process is running the checkbox should be visible so the user can create a dynamic workspace, otherwise it shouldn't be available.

Bug

MacOS - PlasticX: Cannot switch to plastic from gluon

An issue has been fixed that prevented switching from gluon to plastic via the '...' menu.

Bug

Windows - PlasticFS: msys2 redirection overwrites files (append mode)

Trying to concatenate content through shell redirections overwrote files due to a bug related to opening files in append mode:

$ echo -e "This is an apple" >> test.txt
$ echo -e "This is a pen" >> test.txt
$ cat test.txt
This is a pen
le

This has been corrected:

$ echo -e "This is an apple" >> test.txt
$ echo -e "This is a pen" >> test.txt
$ cat test.txt
This is an apple
This is a pen
Bug

All platforms - PlasticX: Error loading branch explorer

Fixed error trying to load a workspace in partial mode in Branch explorer view.

Bug

All platforms - PlasticX: Error reviewing image files

In the code review window, an error was raised trying to select image files, it's because the diff icons bar is not available for image files, the file differences couldn't be loaded properly, and an error message was displayed. Now it's fixed.

Bug

All platforms - Plastic: Go to moved code buttons not drawn.

If you selected "Go to moved code" in the diff viewer, then the action buttons in the destination are not drawn until you mouse-over the column. Now it's fixed.

Bug

All platforms - PlasticX, GluonX: Infinite progress after creating a shelveset

There was an issue when creating a shelveset in Plastic and Gluon, where the progress would spin forever when choosing to undo the changes after creating the shelve

Public

11.0.16.7504: Oct 13 2022

New

All platforms - PlasticX: Edit accounts

We added a new option in the home panel that lets you modify on-prem servers accounts. When using it, you will be able to authenticate again to the server, updating the stored credentials

New

All platforms - Command line client: Now you can list group members from cm!

Doing so is easy: just specify the group name in the --group option of the cm listusers command.

If a group is a member of a group, the command will solve its users recursively too.

So take this scenario as an example: Users 'sergio' and 'brenda' are part of the Developers group. User 'paula' is part of the QA group, and so is the Developers group. So QA users are 'paula' and 'Developers', and 'Developers' users are 'sergio' and 'brenda'. By solving groups recursively, the command output will look as follows:

> cm listusers --group=QA myorg@cloud
sergio
brenda
paula
New

All platforms - PlasticX: License notifications

Plastic will display user notifications about the license status. An information message will be shown when the current license is going to expire indicating the remaining days and how to renew it. On the other hand, when the license has been expired then an error message will be shown.

For extended trial licenses the notification panel will allow users to start the license registration process, so users could extend their licenses for 30 days.

New

All platforms - Command-line client: Better cm status with tables!

Modern times arrive for our command line, with a much better way to display workspace changes: cm status --pretty

Check how it looks like now:

And compare with how it looked like before:

Now also check how it looks like in Windows Terminal:

And the good old cmd.exe:

Enjoy!

New

Command-line client: Apply only the desired changes from a shelve

From now on, the cm allows you to choose which changes do you want to apply from a shelve. You no longer need to apply all the changes done on the shelve.

You can see which changes are going to apply by the shelve without applying them using:

$cm shelveset apply sh:2 --preview
The file /q3radiant/Z.CPP#sh:2 was modified on source and will replace the destination version
The file /ui/hud2.txt#sh:2 was modified on source and will replace the destination version

You can apply only the desired changes indicating the changes paths to apply:

$cm shelveset apply sh:2 /ui/hud2.txt
The file /ui/hud2.txt#sh:2 was modified on source and will replace the destination version
Merging c:\tmp\quake\ui\hud2.txt
The revision c:\tmp\quake\ui\hud2.txt@sh:2 has been loaded
Bug

All platforms - PlasticX: Fixed issue obtaining changesets from old server

Some time ago we modified a method in the Plastic server that was called from the client. This change made the client throw an exception when trying to execute the method on an old server:

"The method GetChangesetsInfoByNumber is not supported"

We fixed this issue, and now the client will work with modern and old versions of the server.

Bug

All platforms - PlasticX: Fixed issue with code review comment selection

Opening a code review comment for a file which had additional changes made to it after the code review comment was created was not working correctly. We fixed this.

We also corrected an issue where items in the file list were not being marked as viewed when they should have been.

Bug

All platforms - PlasticX: Non-editable username when authenticating in Name working mode

When signing in to a server using the Name working mode, you were able to modify the username used to authenticate. This was wrong - on Name working mode the username must always be taken from the system

Bug

All platforms - PlasticX: Diffs multiple selection issue

When an item is marked as viewed it changes the text style from bold to normal. The diffs list must mark items as viewed just when a single selection is done, items won't be marked as viewed on a multiselection.

Bug

All platforms - PlasticX: Annotate View splitter

We fixed the splitter in the Annotate View: the metadata column will expand correctly and won't show blank space. We also set minimum and maximum width properties to the metadata column.

Public

11.0.16.7468: Oct 06 2022

Bug

All platforms - PlasticX: Disable context menu items for empty lines in the "Annotate" view.

Trying to execute some menu context menu actions for empty lines In the Annotate view, caused the UI to show an error, but now it's fixed. When a menu item cannot be executed, it's just disabled.

The affected menu items are:

* Diff branch

* Diff changeset

* Annotate before these changes

* Show semantic history

* Add diff selection,

* Diff with previous selection

Bug

Windows - PlasticX: Exception when diffing symlinks

An exception that occurs when trying to diff a symlink file on windows has been fixed, along with a bunch of minor visualization bugs.

Bug

macOS - PlasticX: fixed assembly load error when configuring issue trackers

PlasticX was looking in the wrong place for issue tracking extensions, resulting in an error when opening the Issue trackers pane of Preferences. We fixed it to check the correct path.

Public

11.0.16.7460: Sep 29 2022

New

Linux, macOS - PlasticX, GluonX: removed "Switch to Legacy GUI" option for Linux and macOS users

This release marks the end of support for the legacy (pre-avalonia framework) Linux and macOS GUIs for all users.

We have removed the "Switch to Legacy GUI" option for Linux and macOS users, and soon their executables won't be included in the package

New

All platforms - PlasticX, GluonX: Added merge tracking colors to diff view

When you are seeing the differences of a branch with merges, sometimes is difficult to know where each change came from. To make this easier, we added colors to the diff view to differentiate between source, destination, and conflict changes. You can modify these colors and even show/hide them depending on what you want to see.

This feature was already available for Windows users in the legacy GUI. Now it's available in all platforms in the new Plastic GUI.

New

All platforms - PlasticX: Added ESC key close shortcuts in overlapped Browse Repository and Changesets Views

We've added new ESC key close shortcuts in the following overlapped views in PlasticX

*Browse Repository

*Changesets (only when Changesets View is called as a overlapped View)

New

All platforms - Command line client: 'cm rm controlled' now removes items in block.

Removing a controlled item involves a few operations: locking the workspace, starting a new workspace transaction, look for the item in the tree metadata, removing said node, checking out the parent (if necessary), removing the content from disk (if necessary), and finally commiting the transaction and unlocking the workspace.

Before, the command cm rm controlled would do all of these steps for each item, regardless of them belonging to the same workspace. This would incur on a big overhead when trying to delete many items in a row.

Now the command deletes all items belonging to the same workspace in block.

However, this forced some changes in how cm rm controlled reports removed items through standard output. If you use this command in an automation script or plugin, and you don't use the --format or --errorformat flags, you might need to consider these changes.

Consider the following scenario: we are going to delete a controlled directory (src), a private file (ignore.conf), and a file that is outside of the workspace (README.txt). This would be the output in previous Plastic SCM versions:

sergio:/wkspaces/Project$ cm rm ignore.conf src ../README.txt

/wkspaces/Project/ignore.conf is not in a workspace.

Item ./src/ has been removed

/wkspaces/README.txt is not in a workspace

Now paths are reported in the following order: first, all the paths that were correctly removed. Then, all the paths that were skipped because of an error (for example, the item not being in a workspace). Finally, all the paths that were skipped because they are not in a workspace. Now we also always use the item's full path:

sergio:/wkspaces/Project$ cm rm ignore.conf src ../README.txt

Item /wkspaces/Project/src/ has been removed.

/wkspaces/Project/ignore.conf is not in a workspace.

/wkspaces/README.txt is not in a workspace.

We honor the behavior of the --format and --errorformat flags.

sergio:/wkspaces/Project$ cm rm ignore.conf src ../README.txt --format="{0} - DELETED" --errorformat="{0} - NOT DELETED"

/wkspaces/Project/src/ - DELETED

/wkspaces/Project/ignore.conf - NOT DELETED

/wkspaces/README.txt - NOT DELETED

We also honor the command's exit code. Before, if an item could not be removed for whatever reason, command's exit code was 1. The same behavior applies here.

New

All Platforms - PlasticX: Merge files from command line with XMerge

You can now use PlasticX for merging and diffing any files using XMerge!

A quick way to get started is to run PlasticX with a single argument, xmerge. As shown below:

* For Windows:

[plastic|winplasticx] xmerge

* For MacOS:

plasticgui xmerge

* For Linux:

plasticgui xmerge

Now, some quick examples

* To diff two files:

[plasticgui|winplasticx|plastic] xmerge -s=fileA.txt -d=fileB.txt

* To merge two files a common base file is also required:

[plasticgui|winplasticx|plastic] xmerge -s=fileA.txt -d=fileB.txt -b=base.txt

In order to determine if a merge was successful, PlasticX will return 0 or 1 as the application exit code. 0 means a merge was successfully performed and the result file has been save, 1 means that a merge has been aborted or not saved.

New

All platforms - PlasticX: Open Merge view from command line

The merge-to view could be open from command line to solve the branches merge conflicts, it can be invoked like this: plasticx --merge=/main/task001@myrep@myserver:8084 --to=/main@myrep@myserver:8084

This command has 2 arguments, "–-merge" for indicate the source branch and "–to" for indicate the destiny branch in merge.

When this command is executed from command line a new plastic window will be displayed with the merge view opened, and the merge conflicts will be shown in this view.

New

All platforms - PlasticX, GluonX: Proxy configuration

When connecting to an on-premises server for the first time, we added an option to use a proxy. This option was already available on Windows, and now you can use it on the three platforms from the new GUI:

Learn more about proxy servers here: https://www.plasticscm.com/documentation/administration/plastic-scm-version-control-administrator-guide#Chapter4:Usingaproxyserver

New

All platforms - PlasticX: show code moves between files in diff window

Plastic can detect code refactors where code blocks have been moved from one file to another.

When you diff a branch or changeset a notification will be shown in the Diff window if such a refactor is detected.

Clicking the Show button will group the changes related to the refactor in the diff window file list.

If the diff contains a large number of items, rather than run a potentially long calculation, we show a notification with the option to run the refactor analysis.

Bug

Server: The REST API to download revisions could fail for encrypted data

Version 2 of the endpoint to download a file revision content (api/v1/repos/repName/revisions/revId/raw?version=2) fail to download an encrypted big file content (over 4MB) when the file content cannot be compressed.

Bug

All platforms - PlasticX: Allow annotate on a not checked-in file

An exception was thrown when trying to annotate a not checked-in file, now an empty annotate view will be displayed.

Bug

Server: Avoid reloading users & groups multiple times

The users and groups are reloaded periodically from the authentication provider. But due to an error, on each periodic reload, the reload was done multiple times. Now it's fixed

Bug

All platforms - PlasticX: Mark viewed files on Comments selection

Some files from diff items panel were not marked as viewed in code review window when a comment was selected from comments list, this files came from the diffs for a previous revision. It has been fixed and now all the files will be marked as viewed when any new comment selection were done.

Bug

All platforms - GluonX: fixed Gluon plastic links to a file not opening

In some cases, when trying to open Gluon plastic link to a file, Gluon tried to open that file in a new workspace and failed, we fixed this issue

Also, we improved the design of "Get Plastic link" button in Gluon Workspace Explorer Details

Bug

All platforms - PlasticX, GluonX: Cannot configure a custom diff tool

The file type extension data (FileType) has been removed from configuration (client.conf) for diff tools with custom extension.

Bug

All platforms - PlasticX: Fixed layout when searching in Browse Repository

Search panel in Browse Repository expanded when searching, we fixed the layout

Bug

All platforms - PlasticX: Fixed duplicated control is Issue trackers preferences

In Preferences -> Issue trackers, if the user clicked twice "Bind to this issue tracking system", the controls duplicated in the dialog, we fixed this issue

Public

11.0.16.7419: Sep 22 2022

New

All platforms - DevOps: TrunkBot learnt to pass user defined branch attributes to the CI plan.

Now it is possible to configure the TrunkBot mergebot with a list of user-defined branch attribute names. When TrunkBot processes a branch, it will calculate the branch attribute values and it will forward them to the underlying Continuous Integration plan, triggered to build & test the branch being processed, as key-value parameters (attribute name-attribute value).

See how this feature looks like:

1- First of all, let's open the configuration of an instance of a TrunkBot mergebot, "CI Integration" section.

Here you can see new text fields where you're able to specify a comma-separated list of branch attribute names to forward to both the build & test plan and, if defined, to the "after-checkin" plan if the branch is successfully merged.

In the example above, 'product-type' and 'arch' attributes will be considered for the build & test plan, whereas the after-checkin plan will consider the 'deploy-type' attribute.

REMARK: The TrunkBot won't create any of these attribute names in the repository automatically. This has to be done by the user or the repository administrator.

These attributes can be easily created throught the attributes view of the Plastic SCM GUI:

2- Now let's create some changes in the repo monitored by the TrunkBot instance. Let's create branch 'main/scm003', submit a new changeset, set some values for the user-defined branch attributes we're using in this example, and finally mark the branch status as 'resolved', enabling the TrunkBot instance to process it and try to merge it to the specified 'trunk' branch: the 'main' branch:

3- We're using Jenkins in this example as the CI system. When the TrunkBot processed branch 'main/scm003', it forwarded the 'product-type-to-build' and 'arch' attributes and their values on 'main/scm003' to the execution of the 'build-tools-plan' we have defined in Jenkins (see step #1):

This way, the 'build-tools-plan' is able to read these properties and customize its steps depending on these values, if required.

4- Let's suppose the 'build-tools-plan' ran successfully for 'main/scm003' and the branch got merged into the defined 'trunk' branch: the 'main' branch:

We also defined a plan to run after a successful merge of a branch in the "CI Integration" section of the TrunkBot instance (see step #1).

In this example, it will pick the 'deploy-type' attribute value of branch 'main/scm003' just merged, and will forward it to the plan to run after checking a branch in, named 'deploy-tools-plan':

Remarks:

* In case the attribute does not exist, or a branch does not have such attribute set, the trunkbot will create and sent the property with empty value to the CI plan anyway. Each CI system may behave differently when a plan is triggered and a property is set to an empty value.

* Also notice that Jenkins will add the 'PLASTICSCM_MERGEBOT_' prefix to the property name (the name of the attribute).

New

Windows - PlasticFS: New WinFSP version improves Python support

Some Python scripts failed when trying to solve virtual paths with Pathlib.

> solvemypath.py
[WinError 1005] The volume does not contain a recognized file system.

This happened as the implementation relies on the Windows Mount Point Manager to solve the path, but WinFSP didn't support registering virtual file systems in that facility... until now!

> solvemypath.py
Full path: C:\Workspaces\DynamicWk

To use this feature, you will need to uninstall WinFSP, reboot your computer and start PlasticFS as usual. The new version of the WinFSP driver will be automatically installed.

Bug

Windows - PlasticFS: New WinFSP version fixes Visual Studio "Go to file"

Using "Go to file" (Ctrl+T) in Visual Studio didn't work reliably inside dynamic workspaces, not returning results or even freezing the IDE from time to time. Now it works consistently.

To use this feature, you will need to uninstall WinFSP, reboot your computer and start PlasticFS as usual. The new version of the WinFSP driver will be automatically installed.

Public

11.0.16.7411: Sep 19 2022

New

All platforms - PlasticX: Filter code reviews

A new combobox has been added to Code reviews view in order to apply filters to the displayed items list.

New

All platforms - PlasticX: Added "Close merge view and open pending changes view" preferences option

We have added a new option in Diff and Merge Preferences: "close merge view and open pending changes view when a merge is completed"

If this option is checked, when a merge is completed, the Merge View will be

automatically closed and Pending Changes View will be shown, improving the user workflow.

Also, when a merge is completed and this new option is not checked, we modified the "merge finished" message adding two links in order to open Pending Changes View or open Preferences Window.

New

Command-line client: Creating workspaces is simpler than ever

Until now, to create a workspace using cm you had to give it a name and indicate the path and the repository:

$ cm wk mk project ./project rep:project@mydefaultserver

Often, the three are named the same. For that reason, now it is possible to use a shortened syntax:

$ cm wk mk project

This command will create a workspace infering the name and path from the repository spec you pass as argument!

And advanced use of the command also allows you to specify a different server:

$ cm wk mk project@myorg@cloud
Bug

All platforms - PlasticX: Fixed exception when showing semantic history for item checked out

Showing the semantic history (available from the Annotate view) for an item checked out no longer causes an error.

Bug

Server: Fixed access violation exception

The server could crash due to an access violation exception sending the response to the client on a corner case of concurrent usage of the client's connection.

Bug

All platforms - PlasticX: Disable History menu option for added files

We disabled the History menu option in the Workspace Explorer for added files because added files have no history.

Public

11.0.16.7388: Sep 07 2022

New

All platforms - PlasticX, GluonX: Mark unviewed diffs in bold

The list of differences in Diff window will display viewed items in normal text style and non viewed in bold text style. It'll apply just to the path column for each difference from the list.

New

All platforms - PlasticX: Added new semantic history view

We added a new view to PlasticX: the semantic history. From this view you can see the history of individual methods or classes inside each file. This view was available on the Windows legacy GUI, and now you can use it from every platform in PlasticX. Check it out:

New

All clients: GitSync doesn't fail anymore if it cannot access to a revision data.

GitSync won't fail anymore if for whatever reason it can't access the contents of a given revision. It will add an empty revision in the Git package instead.

This way we allow syncing with Git even if an old revision is not present due to any old or weird issue.

New

All platforms - PlasticX: Code review skip merge tracking

A new button to group the diffs by merge has been added to Code review window. This button will be available only when the selected branch/changeset has merges in the differences list.

New

All platforms - PlasticX, GluonX: Added "Scan network" button

Added a new "Scan network..." button below the server entry, when connecting to an on-premises server. This button will show a dialog that allows you to easily find Plastic servers in your local network

Bug

All platforms - PlasticX: Issue trackers not configurable without workspace

A created workspace is required to configure any issue tracker from the Preferences window. For this reason the view controls will be hidden and a message will be displayed when no workspace is loaded.

Bug

All platforms - PlasticX: Linked tasks browse broken

Browse button from Linked tasks panel in Pending changes view didn't open the correct task URL in the web browser. The task Id format has been fixed in order to open the URL properly.

Bug

Server: The REST API to download revisions had a memory leak.

The endpoint to download a file revision content (api/v1/repos/repName/revisions/revId/raw) had a memory leak when the '?version=2' query parameter was specified. Fixed.

Bug

All platforms - PlasticX, GluonX: only show empty comment warning if user wants it

We were failing to save your preference for not re-showing the empty comment warning if you cancelled the warning dialog.

Bug

PlasticX: Unexpected directory conflicts after solving selected file conflicts

Unexpected new directory conflicts appear after merging the selected file conflicts. Now, after merging the selected files only the pending file conflicts remains.

Also, the check-in of the previous merge result, with the reappearing directory conflicts, could fail with an item loaded twice error. Now that the merge is working properly the result can be checked in properly.

Bug

All platforms - PlasticX: fixed exception scrolling diffs in diff window

We have fixed an unexpected exception that appeared when scrolling Xlinks diffs in diff window

Also, we will always show in normal font style the merge and changes categories

Bug

All platforms - PlasticX: Restore a in-progress merge on restart

Now when Plastic is restarted, if there are pending links, the in progress merge is restored. In this case, the Merge tab will be available from the startup and the loaded merge will be the last in-progress merge before the app is closed.

Bug

All platforms - PlasticX, GluonX: Fixed authentication issue when changing the server working mode

If you had a stored profile for a server, and the server changed its working mode, you were not able to update the the existing profile to authenticate to the server.

We fixed this issue - now when the server changes the working mode, the old profile is removed, and we ask for new credentials to save a new profile

Bug

All platforms - PlasticX: Fix code review comment navigation.

When double-clicking a code review comment in the Code Review Window, the left textbox didn't navigate to the proper line, so the DiffViewer scroll got de-synchronized. Now it's fixed.

Bug

All platforms - PlasticX: Linked tasks panel layout improvements

Some layout adjustments has been included to improve Linked Tasks panel.

A new button has been also added to Pending changes view at the top header area. This button "Show Tasks" will allow to show/hide the Linked Tasks panel when it'll be available.

Linked tasks are available when an issue tracker was previously configured with bind by changeset option selected.

Bug

All platforms - PlasticX, GluonX: Made dialog button order consistent

Some 3 button dialogs had the Cancel button in the wrong position. We reviewed all dialogs and made the button order consistent with platform guidelines in each case.

Bug

All platforms - PlasticX: fix exception when subtractive merge returned no results

We have fixed a exception when you tried a subtractive merge that returned no results (for example, a subtractive from a not connected branch)

Bug

All platforms - PlasticX: Fixed dynamic view location issues

There were some issues with the location of the dynamic views, such as the annotate, history or semantic history, where they appeared in the wrong place of the screen, or partially cut.

We fixed this issue, and now all these views are shown filling all the available space, no matter where they where opened from

Public

11.0.16.7359: Sep 01 2022

New

All platforms: Moves with changes are now reflected by after-checkin and after-clientcheckin triggers

When you modify a file on the top of moving it, both changes are reflected in the workspace status and in the Pending Changes view. However, the checkout was not notified to triggers:

# E.g.: after-checkin (server-side) trigger
MV "/ALICE.TXT" FILE#br:/main;changeset:16@rep:Project@repserver:Organization@cloud ->"/BOB.TXT" FILE#br:/main;changeset:15@rep:Project@repserver:Organization@cloud

We added that information to the input data:

# E.g.: after-checkin (server-side) trigger
MV "/ALICE.TXT" FILE#br:/main;changeset:16@rep:Project@repserver:Organization@cloud ->"/BOB.TXT" FILE#br:/main;changeset:15@rep:Project@repserver:Organization@cloud
MV "/BOB.TXT" FILE#br:/main;changeset:16@rep:Project@repserver:Organization@cloud ->"/BOB.TXT" FILE#br:/main;changeset:15@rep:Project@repserver:Organization@cloud
Bug

Linux - PlasticX: Open with dialog was not displayed.

The native file dialogs (Open with, Save the file, etc ...) were not correctly displayed on Linux boxes. Now it's fixed.

Public

11.0.16.7348: Aug 25 2022

New

All platforms - PlasticX, GluonX: Delete current workspace could throw non-controlled exceptions

If the user deleted the current workspace in use in the GUI (using the GUI or delete workspace command), further operations with that deleted workspace would throw non-controlled exceptions that could close the program; we fixed this issue.

New

All platforms - PlasticX: Show warning when the user tries to delete changeset involved in a pending merge

We now show a warning message and stop the delete changeset operation if you try to delete a changeset that is the source of a pending merge link. We do it because deleting the merge source puts you in an invalid state where you cannot later check in the merge.

New

All platforms - All client applications: Upgraded interface assembly consumed by issue tracker extensions

We support connecting any client application to an issue tracker to retrieve a user's list of assigned tasks, create a proper branch, or open a task in the issue tracker.

We provide built-in connectors for many issue trackers, such as Jira, Bugzilla, etc.

And we also published an interface so you can write your own connector for a custom issue tracker. This interface is located at issuetrackerinterface.dll file, in the client binaries folder of a Plastic SCM installation.

We've upgraded the issuetrackerinterface.dll and now is compiled in netstandard2.0 (instead of net framework 2.0 ). This will enable further improvements in the issue tracker subsystem of plastic.

Just in case you have a custom extension compiled in net framework 2.0, you will have two options:

* Upgrade your custom extension and compile it in net framework 4.0 or above

* Use the legacy issuetrackerinterface.dll compiled in net framework 2.0, located at client/extensions directory of a windows installation of Plastic SCM

New

All platforms - PlasticX, GluonX: added warning for an empty check-in comment

We have added an optional warning if you accidentally try to check in with no check-in comment. It looks like this.

You can activate it in Preferences -> Comments:

New

Command-line client: 'cm history' shows if the revision was archived.

The 'cm history' command shows whether the revision's data was archived. It adds a new entry for each history entry specifying the data status. The possible values are 'Available' or 'Archived'. The value is empty for the moved/removed history entries.

Default output:

D:08/09/2022 10:26 CS:1   B:/main
DATA:Archived
C: my comment

Long output (--long):

...
Repository spec: repo@server:8087
Data status: Available

Xml output (--xml):

...
<RepositorySpec>repo@server:8087</RepositorySpec>
<DataStatus>Archived</DataStatus>
New

All platforms - PlasticX: Branch filtering on new history view

Further improving the new history view, a dedicated branch filtering popup has been added!

Filtering by one or as many branches as needed is now possible. You can try it out by viewing the history of any file or directory and clicking the 'branch' button near the search bar.

Bug

All platforms - Plastic, PlasticX, Gluon, GluonX: pending changes check status preserved when Incoming changes applied

Previously, pending changes you had unchecked in the Pending Changes view (or Check-in view in Gluon) were being checked when Incoming Changes were viewed or applied. We now preserve your chosen checked state.

Note, that merging can still check previously unchecked items. This is because all items involved in a merge must be checked in together. To help you avoid issues trying to check in a subset of a merge we automatically check all the items involved in the merge.

Bug

All platforms - PlasticX: Create button not refreshed in create branch dialog

The Create button status needs to be refreshed depending on the content of the text fields of the current displayed tab in "Create branch dialog". When an issue tracker was previously configured, two ways of creating a new branch will be available, Manual and From task. The branch name will be mandatory to create a new branch.

Bug

Command-line client: A workspace created with 'cm wk mk' unexpectedly points to the default repository

When creating a workspace there is no need to specify a repository. A default one will be selected instead.

If a non-existent repository is specified when creating a workspace, the command was silently falling back to picking a default repository. This behavior was misleading.

Now, the command just fails and shows an error:

> cm wk mk Project ./Project ProjectTYPO@thecompany@cloud
The specified repository couldn't be found: ProjectTYPO@thecompany@cloud.

> cm wk mk Project ./Project Project@thecompany@cloud
Workspace Project has been correctly created
Bug

Command-line client: The 'cm wk mk' subcommand does not always accept the 'rep:' prefix

Creating a workspace pointing to a repository specified with the 'rep:' prefix failed silently if a server address was not specified.

> cm wk mk Project ./Project rep:project@thecompany@cloud # This works.
> cm wk mk Project ./Project rep:project # This fails silently.
> cm wk mk Project ./Project project # This works even so.
[console]

Now the second command works as you would expect.
Bug

All platforms - PlasticX: corrected GUI hang when switching during Undo

Attempting to switch to another workspace while a long Undo operation was in progress would cause the GUI to hang.

Now, if an operation is in progress, we inform the user and don't allow the switch until the operation has been completed.

Bug

All platforms - PlasticX: Fixed changeset -1 exception

There was an exception thrown when selecting the Home changeset in the Branch Explorer when there was a diff view in the background.

We fixed this issue

Bug

All platforms - PlasticX: exception thrown if pending merge source changeset not found

If the source changeset of a pending merge link could not be found (probably because it was deleted), an exception was thrown in the Pending changes view. Now, in this case, we display some helpful text in the merge link description, letting you know you will not be able to check in the merge (because the source changeset is missing).

Bug

All platforms - PlasticX: Hide the "add" repository button before org is created

Fixed issue that allowed the user to click 'add' repository button. The 'add' repository button has been hidden when a user is not part of an organization yet.

Bug

Windows - PlasticX, GluonX: allow file rename changing case only

We fixed the validation in the Rename dialog of the Items view to allow renames that only change the case of the name.

Public

11.0.16.7303: Aug 11 2022

New

All platforms - GluonX: Remark current loaded revision

The current loaded history revision will be remarked in bold style in the History Panel.

New

All platforms - PlasticX, GluonX: Issue tracker configuration

A new preference option has been added to the Preferences window for the issue tracker configuration.

Some features will be available if this preference is enabled:

* Create new branch from a existing task.

* Checkin operations record attached to tasks.

* Automatic status transitions.

* Display linked tasks in pending changes view.

New

All platforms - Server: GUIDs storage is 5 times faster

We improved the performance of reading GUIDs in our Jet backend. Now reading a GUID is 5 times faster than before!

Taking into account that many objects in the Plastic SCM data model contain a GUID, almost all read operations (and especially those in bulk) will take advantage of this improvement. But not only that, the new method of reading GUIDs does not allocate any memory at all - so we also (slightly) reduced the memory footprint of the Plastic SCM Server. Good news overall!

New

Command-line client: GetWorkspaceFromPath command now displays workspace type

Workspaces can be of two different types: regular or partial (Gluon). In addition to that, Windows users can choose between static or dynamic workspaces (virtualized with PlasticFS).

Now, the GetWorkspaceFromPath command can display this extended information if the option --extended is provided to the command:

cm gwp C:\mygluonwk\ --extended
mywk C:\mygluonwk mymachine dca2b0fc-07ce-434f-949a-009d8c62034d partial dynamic

It is also possible to get this information through the --format option by using the 'type' and 'dynamic' keywords:

cm gwp C:\mysourcewk\ --format="Name: {wkname} | Type: {type} | Is: {dynamic}"
Name: mysourcewk | Type: regular | Is: static

More information in the help (cm [gwp | getworkspacefrompath] --help)

New

Server - DevOps: Code Review gating for Multiliner mergebot

The built-in multiliner-bot is now able to use embedded Plastic code reviews to drive the CI/CD lifecycle.

Enable the following "Process reviewed branches only" toggle button in multiliner-bot configuration to activate this feature:

The feature works as follows:

* When a code review of a tracked branch(*) is created, or its status changes, the task branch is queued in multiliner-bot.

* Then, multiliner-bot will eventually dequeue this task branch. But before continue its processing in the CI cycle, multiliner-bot will check whether there is at least a "Reviewed" code review for this branch. Otherwise, the branch processing is skipped, and the branch is queued again at the end of the queue.

* If there are more than a code review linked to this task branch, all of them need to be approved before processing the task branch.

* If all the code reviews are approved, the task branch continues its processing by the multiliner-bot:

* a)If the merge fails (manual conflicts detected), or the branch build in the configured CI system fails, the status of the linked code reviews of the branch will be set to "Under review".

* b)If the merge succeeds and the branch build succeeds too, the task branch is merged, and the "status" attribute of the branch is set to "merged" (these fields must be filled in the multiliner-bot configuration).

((*) tracked branch: those that starts with the configured branch prefix in multiliner-bot config)

New

All platforms - PlasticX: Checkin & Undo shortcuts

Checkin and Undo operations from pending changes view will be now available using key gestures, Alt+I for Checkin button and Alt+U for Undo button.

New

All platforms - PlasticX, GluonX: Fix date formatting for languages different than English

When the system language was not set to English, we were forcing some date and number fields to the English formatting. We did this to fix some issues with Turkish characters.

We addressed each issue individually, so now we can take the system language for date fields again, instead of forcing it to English.

New

All platforms, PlasticX, GluonX: Various diff improvements

* Updated the syntax highlight grammars to the latest version, which brings the latest language features for major languages like C#, Python, Java, etc...

* fixed some syntax highlight exceptions registered in the log coloring some documents.

* Improve the behavior when changing a file in the pending changes view or the diff view. Previously, when selecting another file, the diff viewer scrolled to the first line, and then it went to the first diff. Now the first line is not scrolled. See before and after:

Before:

After:

New

All platforms - PlasticX: Create top-level branch

A new menu item has been added to branches context menu in Branches view and Branch explorer. This new option will allow to create new branch in level 0, a top-level branch.

New

All platforms - PlasticX: Color changesets by server in the Branch Explorer.

We ported the "Color changesets - replication source" functionality, already existing in the Legacy GUI, to the new GUI. It allows to set up custom colors for all the changesets belonging to a certain server.

This is how it works:

New

All platforms - PlasticX: Color changesets by user in the Branch Explorer

We ported the "Color changesets - users" functionality, already existing in the Legacy GUI, to the new GUI. It allows to set up custom colors for all the changesets created by a certain user.

This is how it works:

New

All platforms - PlasticX, GluonX: Automatically detect local server

When configuring Plastic for the first time, if you select the on-premises mode, you will see an empty server field that you must fill with the server you want to connect to.

Now, if there is a local server running on a well-known port, this field automatically filled:

New

All platforms - PlastiX, GluonX: Object GUID in Diff window

The object GUID has been included in diff window as diff metadata.

Bug

All platforms - PlasticX: Branch name shown incorrectly when branch explorer filtered

We fixed an issue where the branch name was being displayed incorrectly in the Branch Explorer when you filtered the view to show just the current and related branches. (You can do this from the context menu on a branch, from the "Branch Explorer" submenu).

Bug

macOS - PlasticX: Show History shortcut hides app

Cmd+H shortcut is currently used by the system to hide apps, so it can't be used in PlasticX to show the history view.

For this reason, the "Show history" shortcut has been changed to Cmd+Y and the Redo shortcut has been also changed from Cmd+Y to Shift+Cmd+Z.

Bug

Command-line client: PlasticLink arguments wrongly processed as option arguments

If you use a PlasticLink as argument for the command line, the command failed with a cryptic error message:

> cm attribute set att:CodeReviewLink@MyGame@MyServer:8087 br:/main/CoolFeature plastic://MyServer:8087/repos/MyGame/code-reviews/9999

attribute: Unexpected option --MyServer:8087/repos/MyGame/code-reviews/9999

Now the command does not fail.

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

Public

11.0.16.7248: Jul 28 2022

New

All platforms - PlasticX: New Details panel in Workspace Explorer

The Details panel has been added to the right side of the Workspace Explorer in PlasticX. This panel contains the image preview and properties of the selected item in the workspace tree, so it will be refreshed on every new selection. It is a collapsible panel, by default it's collapsed and can be expanded by using the new button "Show details" at the top right.

New

All platforms - PlasticX: Added comments auto-text feature

We added comments auto-text feature to Plastic. This allows the user to use predefined variables (Date, UserName, Branch Name) or a custom string in the comments textbox in Pending Changes view:

Also, the icons in Preferences Window were updated.

New

Command-line client: Upgraded changelist command now allows specifying files for the name and the description.

Changelist command has been upgraded with new verbs for management ("create" and "delete" substituting "add" and "rm"). Now it is possible to use new options in changelist commands: --namefile, --descriptionfile, --newnamefile. These options allow to replace the literals used to specify the name of the changelist or its description and to use a path to a file containing the changelist name or description instead.

For instance

cm changelist add "Physics-related changes" "Changes related to the game world environment and the implemented physics"

Could be updated to

cm changelist create "Physics-related changes" --descriptionfile="desc.txt"

Or also could be updated to

cm changelist create --filename="name.txt" --descriptionfile="desc.txt"

Or you could also rename a pre-existing changelist with something like the following:

cm changelist edit --filename="name.txt" rename --newnamefile="newname.txt"

Bear in mind:

- Old command syntax is still working but tagged as deprecated and the help has been updated. If you have automated scripts using this command, they will work, but we encourage you to update those and test the new amazing functionalities

- You can still use the same literals or use the options, whatever the combination that best suits your needs (options + literals, literals + options, all options, all literals).

- The --namefile and --newnamefile options do not allow invalid files or content (non-existing file, empty or multilined texts); in addition, if an non-existing file is supplied to --descriptionfile, it will also fail, but no content validity will be done.

New

DevOps: Remove branches from Trunkbot processing queue

If you accidentally set the status attribute to a branch, your Trunkbot might enqueue it and eventually merge it.

Before, you could remove it from the processing queue by changing the value of the attribute to something else. Now, removing the attribute from the branch will have the same effect.

New

Server: Edit cset comment now checks branch perm

When you edit the comment of a changeset, the “change comment” permission needs to be set in the branch that contains the changeset.Before this change, the repo permission was checked, which wasn’t as good solution as checking the permission in the branch.

New

All platforms - PlasticX: Remark current working item

The bold text style has been applied to the current working item, for the "Name" column of the Changesets and Branches views tables, in order to indicate which item on the list is currently loaded.

New

Command-line client: Configure data encryption for remote servers

As the owner of a Plastic server, you can configure encryption when trying to pull data from repository inside a remote encrypted server for the first time.

This was true for the Plastic GUIs, but now it is also possible within the command line:

> cm pull br:/main@donuts@homer@cloud dotnuts@marge:8084
...
The 'homer@cloud' source server requires data encryption.
Your server (aka 'marge:8084') is not yet configured to handle encrypted data from it.

Remarks:
* Be very careful with the encryption password; it's the only way to decrypt your data on 'homer@cloud'.
* If you're decrypting data and you enter a wrong password, the data will fail to decrypt and you will have to edit cryptedservers.conf on your server to fix it.
* Be careful to use the same password (encryption key) company-wide to work with 'homer@cloud'. Otherwise, data will be encrypted differently in each server.

Enter a password to generate the encryption key (leave empty to cancel):
***********

Encryption configuration added for server 'homer@cloud'.
...
Bug

All platforms - PlasticX, GluonX: GUI asked for credentials unnecessarily

When adding a new account belonging to several organizations, the UI unnecessarily asked for credentials for every organization belonging to that account. Now it's fixed.

Bug

All platforms - PlasticX: CPU remains active after a replication operation

When finishing a replication operation, the progress panel caused the UI to consume CPU even though the panel was not displaying any animation. Now it's fixed.

Bug

Windows - Client zip bundle: The command-line bundle some plugins such as Jenkins used lacked the zlib64.dll library. It is now fixed.

This affected only machines without a full Plastic SCM set up on them. Machines that had at least a setup with the complete Plastic SCM client or server did not encounter this issue, as at least one copy of zlib64.dll was in the DLL search path.

Bug

WebAdmin: Fix mergebots daily report

Opening the daily report of a mergebot throws a "something went wrong error". This happened since 11.0.16.7118. Now it's fixed.

Bug

All clients: Private files should not be cloaked

Before, private items could be matched by the cloaked filters set up in the 'cloaked.conf' file, so they didn't appear as simple private changes. From now on, only controlled items can be regarded as cloaked.

To keep the old behavior, you can also add the filters to your 'ignore.conf'.

Bug

Command-line client: Ls --tree for a file was not returning its path

When running the 'cm ls' command to get the content from a repository tree ('--tree option') and using a file as an argument, the {path} format field was empty:

How it was before:

cm ls /api.cs /bar.txt --tree=10@adventure@LOST:8087 --format="{path}|||{owner}"
|||james
|||james

Now it is evaluated to the file path, as expected:

cm ls /api.cs /bar.txt --tree=10@adventure@LOST:8087 --format="{path}|||{owner}"
/api.cs|||james
/bar.txt|||james
Bug

Windows - PlasticFS: Workspace directory already exists

Before, opening a dynamic workspace when PlasticFS is not running could create an spurious workspace directory. When restarting, PlasticFS was forced to set it aside in order to mount the workspace:

Directory moved from mount path

Tried to mount at path 'C:\workspace', but it was not empty. Existing directory renamed as 'C:\workspace~moved0'.

Now Plastic behaves more kindly when the workspace is still not mounted on its path.

Bug

All platforms - PlasticX: Null exception closing differences view

In PlasticX, when opening more than one Differences View in Pending Changes View, closing a second or latter Differences View threw "a unexpected error has occurred" message

We fixed this issue

Bug

All platforms - GluonX: Fix in History Panel

If you selected a directory item or a item with no history (for example, a recently created file), and you tried to right-clicked in the history Panel, a exception appears. This issue is fixed.

Public

11.0.16.7211: Jul 21 2022

New

All platforms - PlasticX: Added search textbox in MergeView

We added a new search textbox in MergeView, now it is possible to filter results

Bug

All platforms - PlasticX, GluonX: Fixed issues with Turkish language

When the system language was set to Turkish, there was some issues like unhandled exceptions and bad arrangement of controls in the GUI.

We fixed this issue, and now everything works in the same way, regardless of the system language.

Bug

All platforms - PlasticX: Fix subviews close button not visible

In PlasticX, when shrinking a subview (for example, annotate view), text header would eventually hide the close button

We fixed this issue in all subviews, close button won't disappear anymore. Also, text trimming was added to the header text.

Bug

Cloud Server: Backups could block access to a repository indefinitely.

When the Plastic SCM server puts a repository in read-only mode before backing it up, it first stalls new write operations and then waits for already running write operations to finish. There is a long-running read operation that was wrongly identified as a write operation. Because that long-running operation could be active for days, the server was unable to finish the repository backup, while still rejecting new write operations.

This is now fixed. First of all, this long-running operation is now correctly identified as a read operation, so it doesn't prevent the backup of the repository. And to prevent something like this from happening in the future, the server now has timeouts when waiting for write operations to end.

Bug

Plastic, PlasticX: Fixed users & group resolution on permissions working with multiple servers

The permissions dialog resolved the users and groups on the default server (the one used to configure the server). When the permissions dialog was shown from a different server and that server used an Active Directory authentication, the user and groups were not properly resolved. The SID was shown instead. Now, the users and group names are correctly shown.

Bug

All clients: find owner='me' condition works fine with multiple servers.

The shelve view didn't show your shelves in the workspaces that pointed to a different server than the default one (the default server is the one set in the client configuration). It happened only when the servers have different authentications.

The problem was that owner='me' condition was wrongly resolved against the default server. Now, it's properly resolved on the query target server.

Public

11.0.16.7195: Jul 13 2022

New

All platforms - PlasticX: Expandable symlinks directories

Symlinks that points to a directory are now expandable from plastic itself!

This feature allows for easier navigation when the workspace contains symlinks. If a symlink points to a directory that is inside the workspace, it behaves like any other directory in the workspace, however if a symlink points to a directory that is outside the workspace, actions like "add to source control" are disabled for these files.

New

All platforms - Plastic, Gluon: Better error handling for plastic links

When opening a plastic link, if there are any issues while processing it (because it's in the wrong format, or the server specified can't be accessed) we were just exiting the application without showing any error report.

We improved this behavior, and now we show a message with the reason why the plastic link could not be opened.

New

All platforms: Added "Plastic SCM" prefix to assembly product name metadata

Before we were just setting the Release song name as "Product name" field in the assembly info of all the applications. Now we add the "Plastic SCM" prefix so some antivirus security reports using this "Product name" field can identify in a snap they belong to Plastic SCM.

Bug

All platforms - PlasticX, GluonX: Fixed selection in home view

There was an issue with the selection in the home view: when exploring the contents of a repository, if you selected a file or directory in the tree, and then clicked on a different repository, we were selecting a random item in the new tree.

We fixed this issue, and now when changing the repository, the tree selection is cleared

Bug

Cloud: Fix the permissions issue with the case of the letters on the email

The permissions set for a single user were only working when the user logged in using the same case of the letters on the emails. For example, you allow jame.webb@telescope.com to see a repository, but when James logs in using James.Web@telescope.com cannot see the repository. Now it's fixed.

Bug

All platforms - DevOps: Mergebots and plugs not running due to missing log4net dll

Recently we updated the log4net version to a more secure one. There were some related projects (mergebots) lacking that update which were failing. Now they are working as expected.

Public

11.0.16.7176: Jul 07 2022

New

All Platforms - PlasticX: Added context menu actions to Code Editor.

The Code Editors displayed in the DiffViewer, the File Content Viewer, Annotate view and the Merge view, now have available the following extra context menu actions:

* Undo

* Redo

* Copy

* Cut

* Paste

* Delete

* Go to line

* Select all

* Find

Note that all the actions can be executed using the shortcuts.

Note that Undo/Redo/Cut/Paste/Delete actions are not available in the AnnotateView since it's always a read-only editor.

New

All clients: Only the *.xxx rules are considered as extension rules.

Before, we considered the .xxx as an extension rule. This could lead to weird behaviors when trying to ignore a folder that started with . such as .vs .

Now, the .vs rule only matches files / directories with that exact name. It doesn't match paths with the .vs extension like project.vs

This applies to all files that use path rules (ignored.conf, cloaked.conf, etc.)

New

All platforms - GluonX: Added shelves view

Now you can create and view shelves from the Gluon GUI.

There is a new "Shelve" button in the "Checkin changes" view that lets you create a shelveset with your pending changes in the same way as you do in Plastic.

There's also a "Show shelves" button that opens a side view with the list of shelves, from where you can diff, remove or apply them to your current workspace.

New

Windows - Plastic, PlasticX: auto-upgrade enabled for DVCS Edition

Auto-upgrade was previously only available for Enterprise and Cloud Edition. Now it is also available for Dvcs Edition. When a new version of the client is available, you will receive a notification in the help panel, with a link to initiate the upgrade.

New

All platforms - PlasticX, GluonX: Improve readability of disabled text boxes.

The contrast between the background and the foreground colors was not good enough for disabled textboxes. Now it's better:

New

All platforms - GluonX: Improve UI for recent check-in comments.

We moved the "check-in recent comments" button inside the textbox. This way we clear a bit the pending changes toolbar.

This is how it looks now:

New

Windows - PlasticX: Added diff arguments

In the legacy GUI you could open Plastic specifying arguments like the following:

plastic --diffchangesetsrc=cs:437@validations@alvaro_test@cloud --diffchangesetdst=cs:436@validations@alvaro_test@cloud

When switching to the new GUI this feature was lost. We fixed this issue and now you can specify the arguments in both GUIs

New

All platforms - Server: Add extra protection to the server's Accept Loop.

The Accept Loop is the entry point of every single connection to the Plastic SCM Server. It is at the very heart of our custom network protocol (plasticpipe), and it can handle thousands of new connections per minute. But if the Accept Loop exits for whatever reason, the server is unable of accepting new requests. And a server unable of attending to new requests is useless.

Now the accept errors are handled and the loop is restarted if needed. If the accept loop cannot be started on 3 tries the server will exist in a safe way.

This is beneficial not only to your local and Enterprise Plastic SCM setups but also to the Plastic SCM Cloud Regional Servers.

Bug

All platforms - PlasticX: Query field not behaving properly

An issue was fixed that prevented correctly typing a new query into any query filter field after deleting all its content.

Bug

All platforms - PlasticX: Annotate before these changes reported wrong revision.

Some customers reported that found a bug with "Annotate before these changes" button on PlasticX. Annotate before a given changeset, ended up annotating a wrong changeset. Now it's fixed.

Bug

macOS - PlasticX: Strikethrough lines were not visible.

The Mergetool displays some lines as strikethrough in the result text editor. A bug prevented those lines to be displayed as strikethrough in macOS. Now it's fixed.

Bug

All clients: Partial shelveset could fail to be applied when involving fs protection changes.

The 'partial shelveset apply' operation failed with an "Object reference not set to an instance of an object." error when these two conditions happened together:

1) The shelveset to apply contained fs protection changes for a directory.

2) This same directory contained controlled changes in the workspace before applying the shelveset.

Fixed.

Bug

All platforms - PlasticX, GluonX: Preferences couldn't be opened

Allow to open the Preferences window when the client.conf file has missing the Diff or Merge tools.

Public

11.0.16.7134: Jun 30 2022

New

Command-line client: Shelvesets can be applied to partial workspaces.

Previously, it was not possible to apply a shelveset in partial workspaces (such as Gluon workspaces). Now we fully allow them (from the creation to the application).

c:\wkspaces\partialwk> cm partial shelveset apply sh:2

The apply operation tries to apply all the shelveset changes in the workspace if possible. However, changes can be skipped if they are related to items that are not configured in the workspace (they are silently ignored) or if they collide with local workspace changes (they are properly reported)

c:\wkspaces\partialwk> cm partial shelveset apply sh:2
The item won't be downloaded/moved because there is another item loaded in the same path: 'asset/texture/forest'. Please unload the item and retry the operation.

For more examples, you can check the help:

cm partial shelveset apply --help

New

Server: Log the web call in the ChannelCall

Now the Server monitors and log all the web calls too, so you can see those call with their stats on the ChannelCall log as you see for any other Plastic call. See a new log sample:

2022-06-03 10:27:23,722 INFO  ChannelCall - conn:     0 protocol:web          sec:none recb:       0|rect:   0|sentb:     309|sendt:   0|queuedt:       0|prt:       8|rq:  122|dest:   0|mt:       4|sert:   0|zip:   0|       127.0.0.1|user:tester|GET-/api/v1/repos/quake3/branches
2022-06-03 10:27:25,571 INFO  ChannelCall - conn:     0 protocol:web          sec:none recb:       0|rect:   0|sentb:     307|sendt:   0|queuedt:       0|prt:       3|rq:  123|dest:   0|mt:       1|sert:   0|zip:   0|       127.0.0.1|user:tester|GET-/api/v1/repos/quake3/main-branch
2022-06-03 10:27:27,287 INFO  ChannelCall - conn:     0 protocol:web          sec:none recb:       0|rect:   0|sentb:    6590|sendt:   0|queuedt:       0|prt:       3|rq:  126|dest:   0|mt:       1|sert:   0|zip:   0|       127.0.0.1|user:tester|GET-/api/v1/repos/quake3/branch/main/items/q3map
2022-06-03 10:35:29,707 INFO  ChannelCall - conn:     0 protocol:web          sec:none recb:       0|rect:   0|sentb:     729|sendt:   0|queuedt:       0|prt:    1532|rq:  210|dest:   0|mt:       2|sert:   0|zip:   0|       127.0.0.1|user:tester|GET-/api/v1/repos/quake3/changesets
2022-06-03 10:36:40,516 INFO  ChannelCall - conn:     1 protocol:plastic      sec:none recb:     111|rect:   0|sentb:       3|sendt:   0|queuedt:      16|prt:      11|rq:  216|dest:   0|mt:       2|sert:   0|zip:   0|       127.0.0.1|user:tester|CheckRepositoryExists
2022-06-03 10:38:11,002 INFO  ChannelCall - conn:     2 protocol:plastic      sec:none recb:     103|rect:   0|sentb:      85|sendt:   0|queuedt:       0|prt:       6|rq:  217|dest:   1|mt:       1|sert:   1|zip:   0|       127.0.0.1|user:tester|GetBranchInfoByName
2022-06-03 10:38:11,005 INFO  ChannelCall - conn:     2 protocol:plastic      sec:none recb:      18|rect:   0|sentb:      84|sendt:   0|queuedt:       0|prt:       2|rq:  218|dest:   1|mt:       0|sert:   0|zip:   0|       127.0.0.1|user:tester|GetChangesetInfoByNumber

See an example of how it was before:

2022-06-02 09:14:33,868 INFO ChannelCall - conn: 9 protocol:plasticproto sec:none recb: 912|rect: 134|sentb: 3645|sendt: 0|queuedt: 0|prt: 361|th: 65|dest: 0|mt: 158|sert: 0|zip: 0|cpu: 0| 127.0.0.1|user:tester|GetLockRule

2022-06-02 09:14:33,869 INFO ChannelCall - conn: 11 protocol:plasticproto sec:none recb: 809|rect: 162|sentb: 3612|sendt: 0|queuedt: 0|prt: 317|th: 67|dest: 0|mt: 2|sert: 0|zip: 0|cpu: 0| 127.0.0.1|user:tester|CheckRepositoryExists

2022-06-02 09:14:34,197 INFO ChannelCall - conn: 7 protocol:plasticproto sec:none recb: 913|rect: 126|sentb: 3742|sendt: 0|queuedt: 0|prt: 719|th: 63|dest: 0|mt: 489|sert: 0|zip: 0|cpu: 0| 127.0.0.1|user:tester|GetBranchInfoByName

2022-06-02 09:14:34,198 INFO ChannelCall - conn: 5 protocol:plasticproto sec:none recb: 793|rect: 447|sentb: 3680|sendt: 0|queuedt: 0|prt: 1269|th: 61|dest: 0|mt: 792|sert: 0|zip: 0|cpu: 0| 127.0.0.1|user:tester|GetRepositoryInfoByName

New

All Platforms: Command-line client

To list with the "--tree" option now displays the result regardless of some selector cannot be resolved

Previously, if several arguments were fed to the ls command in order to display their related trees, if one of them was not able to resolve the selector (i.e., there was a typo), the other trees were not displayed either. Now it is fixed and, regardless of the validity of each selector, it will display the results.

For example:

cm ls -r /existingDir /unexistingDir --tree=br:/main@myrepo@localhost:8084
NOT_DEFINED cS63/xl4G39inoaBFDLNzQ==           0 13/06/2022 12:20 dir           2 /main                      20       19 /existingDir
NOT_DEFINED T/zbMvjqdPBx+XMMAbnrZA==         9 13/06/2022 12:20 txt           2 /main                      17       23 /existingDir/foo.txt
Can't resolve the selector for the item /unexistingDir
CommandResult 1

As you can see, the CommandResult will remain 1 (error), but the output will be dumped accordingly.

New

All platforms - all clients: display language no longer overriden on APAC systems

Previously, when the configured language was English "en" but the system language was Chinese, Japanese or Korean, we would force the client to use the system language.

We no longer do this, and the configured language is always used.

New

Windows - Plastic, PlasticX: Auto-upgrade enabled in Enterprise Edition for non-admin users

For a while the auto-upgrade feature has been available for all Cloud Edition users, but administrators in Enterprise Edition. We have now made auto-upgrade available for all users in all editions.

You will be notified of available version upgrades in the help panel:

If you click on the Download link, the installer will download:

Simply click 'Restart and Upgrade' to install the latest version:

New

Command-line client: Shelvesets can be deleted from partial workspaces.

Previously, it was not possible to perform a shelve operation in partial workspaces (such as Gluon workspaces). Now we fully allow every operation (create/apply/delete).

It is possible to delete an existing partial shelveset with shelveset id 3 doing the following

c:\wkspaces\partialwk> cm partial shelveset delete sh:3

Mind there is no confirmation message. In case you would like to see it was deleted you can execute the following command to list every existing shelve created in the repository:

c:\wkspaces\partialwk> cm find shelve

The creation subcommand (create | mk) is the default operation, so bear in mind that, if no subcommand is specified, it will try to perform the creation of a new shelveset.

For more examples, you can check the help:

cm partial shelveset --help

cm partial shelveset delete --help

New

All platforms - PlasticX, GluonX: Added select all shortcut

Added a new shortcut to select all rows in the tables and trees where the multiple selection is allowed:

- Ctrl + A (Windows and Linux)

- Cmd + A (MacOS)

Due to conflicts with existing keyboard shortcuts, the following shortcuts have been modified:

* "Annotate" shortcut, replaced with Ctrl + T (Windows/Linux), Cmd + T in MacOs

* "Apply label to workspace content" shortcut, replaced with Ctrl + L (Windows/Linux), Cmd + L in MacOs

Bug

All platforms - PlasticX: Restored status bar position in switcher window

We restored the correct status bar position in switcher window, now it will appear at the bottom again

Public

11.0.16.7110: Jun 23 2022

New

Command-line client: Partial checkin allows --private option

Previously, it was not possible to use --private option in a partial checkin command. Now it is available and ready to use.

For instance:

c:\wkspaces\partialwk> echo "return 1;" > foo.c
c:\wkspaces\partialwk> cm partial ci --private
The selected items are about to be checked in. Please wait ...
| Confirming checkin operation 11 bytes/11 bytes [################################] 100 %Modified c:\wkspaces\partialwk
Added c:\wkspaces\partialwk\foo.c
Created changeset cs:1@br:/main@repo1@localhost:8084 (mount:'/')

For more examples, you can check the help:

cm partial checkin --help

New

Command-line client: Shelvesets can be applied to partial workspaces

Previously, it was not possible to apply a shelveset in partial workspaces (such as Gluon workspaces). Now we fully allow them (from the creation to the application).

c:\wkspaces\partialwk> cm partial shelveset apply sh:2

The apply operation tries to apply all the shelveset changes in the workspace if possible. However, changes can be skipped if they are related to items that are not configured in the workspace (they are silently ignored) or if they collide with local workspace changes (they are properly reported)

c:\wkspaces\partialwk> cm partial shelveset apply sh:2
The item won't be downloaded/moved because there is another item loaded in the same path: 'asset/texture/forest'. Please unload the item and retry the operation.

For more examples, you can check the help:

cm partial shelveset apply --help

New

Windows - Plastic: Enable changelists for locally modified files

You can now move locally modified (changed, moved, deleted) files into user-defined changelists.

New

All platforms - PlasticX, GluonX: Enable changelists for locally modified files

You can now move locally modified (changed, moved, deleted) files into user-defined changelists.

New

All platforms - Command line client: Server connection profiles management reaches the command line!

We added the new cm profile command. It has three subcommands that allow you to manage your server connection profiles from the command line client.

The command 'profile list' lists the connection profiles you have configured:

$ cm profile list
1  bananapi.codicefactory.com:8087       sergio  UPWorkingMode
2  udt://development_org@localhost:8089  sergio  UPWorkingMode
3  skullcito.codicefactory.com:9095      sluisp  LDAPWorkingMode

The 'profile list' command has several formatting options. Check cm profile list --help for further information.

The command 'profile remove' helps you to remove a configured connection profile. It works by specifying the profile index provided by cm profile list :

$ cm profile remove 2

And 'profile create' helps you to create a new connection profile, either interactively or specifying all the necessary information through options:

$ cm profile create
Enter server address: skullcito.codicefactory.com:9095
Enter credentials to connect to server [skullcito.codicefactory.com:9095]
User: sluisp
Password: *****************
Profile 'skullcito.codicefactory.com:9095_LDAPWorkingMode' correctly created

Check cm profile create --help for further information about the options you can use to create profiles.

New

Windows - PlasticX: PlasticX is now the official GUI on Windows

When you perform a clean installation of Plastic on a Windows machine, PlasticX will be the default GUI to open after the installation. Also, plastic links will be handled with this GUI.

When upgrading from a previous version, the last used GUI will still be the one that opens when running the Plastic executable

New

All platforms - PlasticX: Case insensitive filter on home view

On the home view, the repository and workspaces filter are now case insensitive

New

All platforms - PlasticX, GluonX: Unified Open Menu options in applications

We unified Open Menu right click context menu behavior across all views in PlasticX and GluonX

New

All platforms - PlasticX: Changes in changeset comments

In the "changeset by changeset" mode for the diff and the code review windows, if a changeset comment started with an empty line you couldn't see it in the changeset list. We fixed it.

Before

After

Also, we improved this panel, now more text will be shown in the changeset names Panel

New

All platforms - GluonX: Save details panel user preferences

GluonX will remember the following settings about the details panel for the Workspace Explorer view and the Checkin view, giving the user more personalization

*Details Panel visibility

*Details Panel width

*Preview Image height

*Properties Height

*History Height

*Comments height

Also, if no user preference is found, this panel will be visible by default.

Bug

All platforms - Web UI: Fix issue with directories with hashes in them

You are now able to navigate into and view files inside directories that contain hashes in their name.

Bug

All platforms - Plastic, PlasticX, Gluon: No profiles led to workspace metadata corrupted when co private files

If no profiles were set up, when doing a checkout operation on a private item (add the item) from the Pending Changes view, there was no "owner" of the revision. That caused metadata to become corrupted and, after restarting the GUI, made everything in the workspace appear as private. Now it is fixed.

Bug

All platforms - GluonX: Search files dialog unexpected error message

In GluonX, when pressing spacebar key in the search files dialog not in configuration mode, a "unexpected error has occurred" message appeared, we fixed this issue

Bug

macOS - PlasticX: Fixed library not found issue when loading extensions

There were some issue tracker extensions that could not be loaded on PlasticX because of an issue with dynamic libraries. The affected extensions were jira, codebeamer and ontime

We fixed this issue and now you can load the extensions in the same way as in the legacy GUI

Bug

All platforms - PlasticX, GluonX: Corrected display of recent comments containing underscores

We fixed an issue where comments containing underscore characters were not displayed correctly in the list of recent comments in the Pending Changes and Check-in views of PlasticX and GluonX respectively.

Bug

All platforms - PlasticX: Fixed repeated display of permissions warning in Branch Explorer

Users without the "applyattr" permission would get an error dialog informing them to the fact every time they clicked on any object in the branch explorer.

We moved this intrusive error message to the Attributes panel in the Branch Explorer options side panel.

Here is the text in a dialog:

And here is the text in the Attributes panel:

Bug

All platforms - PlasticX: Fixed code review plastic links

There was an issue when trying to open code review plastic links with PlasticX, where the GUI just didn't show the code review. This bug was introduced in the last release due to a conflict with another task. The issue is now fixed, and now you can open code review plastic links as before

Public

11.0.16.7080: Jun 15 2022

New

Command-line client: Shelvesets can be created from partial workspaces

Previously, it was not possible to perform a shelve operation in partial workspaces (such as Gluon workspaces). Now we are about to fully support shelves in partial workspaces, and we started with the creation of shelves.

Note that cm partial shelveset apply and cm partial shelveset delete subcommands are coming up.

Now it is possible to create a partial shelveset of foo.c

c:\wkspaces\partialwk> cm partial shelveset create foo.c

The selected items are about to be shelved. Please wait ...
| Confirming checkin operation 11 bytes/11 bytes [################################] 100 %
Modified c:\wkspaces\partialwk
Added c:\wkspaces\partialwk\foo.c
Created shelve sh:2@wk@localhost:8084 (mount:'/')

With the shelveset created, now we could apply it seamlessly to a regular workspace targeting the same repo:

c:\wkspaces\regularwk> cm shelveset apply sh:2

The item /foo.c#sh:2 has been added on source and will be added as result of the merge
Merging c:\wkspaces\regularwk\foo.c
The revision c:\wkspaces\regularwk\foo.c@sh:2 has been loaded

The creation subcommand (create | mk) is the default operation, so bear in mind that, if no subcommand is specified, it will try to perform the creation of a new shelveset.

For more examples, you can check the help:

cm partial shelveset --help

cm partial shelveset create --help

New

All platforms - Plastic: Added support for legacy plastic links

Some time ago we introduced the plastic links feature, which lets you click on links to directly open diffs or code reviews. A plastic link looks like the following:

plastic://codice@cloud/repos/codice/branches/main/scm24652/diff

Before this new feature, we already had another, more limited implementation of plastic links, that looked like the following:

plastic://showbranch=br:/main/scm24652@codice@codice@cloud

The latter was deprecated, and new versions of Plastic could not handle the old format.

We fixed this issue, and now you can open both legacy and new plastic links seamlessly

New

All platforms - Bamboo plugin: New plugin for Bamboo 8 is available!

We released a new plugin for Bamboo 8 that enables you to use Plastic SCM as source control for your build processes. You'll find it in the client installation dir, under plugins/bamboo81plugin.

The former plugin (under plugins/bambooplugin) only supports Bamboo 7.x or older.

New

Windows - Plastic: Open plastic links with last used GUI

When clicking on a plastic link, we were showing a dialog to ask the user whether to use the Legacy Plastic or the new PlasticX GUI to open it. We removed this dialog, and we will automatically open it with the last used GUI.

On macOS and Linux PlasticX is the official version, so plastic links are always opened with PlasticX

Bug

Command-line client: Undo command skips deleted or moved files

Using cm undo over a directory didn't restore files that were not actually there. Now it works as expected.

C:\wk\dir> del file.txt 
C:\wk\dir> cm undo .
c:\wk\dir\file.txt unchecked out correctly
Bug

All platforms - Server: Fix the update operation with a controlled cloaked.conf file

Working with a controlled cloaked.conf (a cloaked.conf that was checked-in), the update could be wrongly downloading some cloaked content. Usually, it could be downloading the cloaked items affected by the last cloaked rule in the file. Now it's fixed.

Alpha new

macOS, Linux - PlasticX, GluonX: New Merge tool for binary files

The new cross-platform Binary Merge Tool that we recently added to PlasticX and GluonX on Windows is now available on macOS and Linux.

The Binary Merge Tool allows the user to choose which version of a binary file to keep when there are conflicts during a merge.

Alpha new

All platforms - PlasticX: Use expanders for the Branch Explorer options

Previously, the branch explorer options used splitters to display the configuration. This caused two major usability issues:

* Too much information visible at once.

* Little space to interact with some views.

Now those panels are collapsible, so users can interact better with panels that need more vertical space.

Alpha new

All platforms - PlasticX, GluonX: ImageDiff now launched from Diff Window and Merge View

Diffing image files from the Diff Window and the Merge View will now launch the ImageDiff tool.

For example, you can launch the diff from the merge using these menu options:

Here is the Image Diff Tool:

Alpha new

All platforms - PlasticX: Enable/disable rules in Branch Explorer

Now the UI allows to enable or disable Filter and Conditional format rules in the Branch Explorer:

Alpha bug

All platforms - PlasticX: Restored right-click menu options for labels in Branch Explorer

In Branch Explorer, after we recently added the 2 label diff feature, single label right click options stopped working. We fixed this issue, sorry about that!

Alpha bug

All platforms - PlasticX: Error closing Create Account Dialog in the new Home Menu

In Plastic X, when creating an account from the new Home Menu, closing the dialog threw an error, we fixed this issue

Alpha bug

All platforms - PlasticX: Fixed diff scroll "jumps"

Every time the right file in the diff viewer was edited, caused the scroll to jump 1 line up. Now it's fixed.

Alpha bug

All platforms - PlasticX: Fixed diff summary after editing diffs.

After editing diffs, the diff summary (the label that indicates which is the current difference and how many differences there are), was not updated properly. Now it's fixed.

Alpha bug

All platforms - PlasticX: Code Reviews changeset column should grow

In Plastic X, when reviewing a code review changeset by changeset, in some cases after resizing the panel the column text didn't grow when expanding

We permanently fixed this issue:

Before:

After:

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:

Public

11.0.16.7026: Jun 02 2022

Bug

All platforms - Eclipse: Could not merge with writable xlinks

Eclipse plugin (and other Plastic SCM java plugins with merge capability) were unable to perform a merge from a branch when writable xlinks are involved in the merge operation. A Unable to cast object of type ... error was thrown instead. Now it is fixed.

Bug

Command-line client: Cannot check out through symlinks

When symlinks contain '.' and '..' elements in their target paths, some commands failed to walk through them:

$ cm co links/linkedfile.txt

# Note the path wrongly contains a '..' element.

The element /wk/links/../content/file.txt is either a private file or it is already checked out in the current workspace.

Now they work as expected.

Bug

Windows - Plastic/Gluon: Fixed slow open files from dynamic workspaces.

Some applications (like notepad) start much slower when they are started specifying a working directory that is a network path (UNC path). To work around this, Plastic & Gluon now use the local path (instead of the network path) before opening a file.

This problem was only reproduced when the dynamic workspace was mounted using a network path.

Bug

Windows - Plastic/Gluon: Fixed "Open in Explorer" menu option for dynamic workspaces.

This "Open in Explorer" menu option didn't work for dynamic workspace mounted with a network path. Now, it works as expected opening the right directory in a new Explorer window.

Alpha new

All platforms - PlasticX, GluonX: Display cache status for Dynamic Workspaces.

We continue with improvements to better support Dynamic Workspaces in the GUI. This time we display the cache status of each file in the Status column.

* The "cloud" icon means the file content never was downloaded to the disk, helping to save disk space.

* The "tick" icon means the file was opened or accessed at least once, so it was already downloaded to the shared cache. This also helps to save disk space since the revision contents are shared across the different workspaces. So if have more than one Dynamic Workspace, the revision contents are re-used across them.

Some demo:

Alpha new

All platforms - PlasticX: Remove user profile

A new option has been included into the home view accounts combo box. It allows for removing the selected user profile from the list.

Alpha new

All platforms - PlasticX: Better trackpad support in the differences viewer.

Now, when using the laptop trackpad to scroll the differences view, the movement is smoother. Check this demo:

Alpha new

All platforms - PlasticX: Added directory conflict overlay icon

Added two new directory conflict overlay icons when a directory conflict is detected in PlasticX

*When a directory conflict is unsolved

*When a directory conflict is solved

Alpha new

All platforms - PlasticX, GluonX: Unified credentials dialog

When trying to perform an operation on a server without being authenticated, we were asking the user for credentials by using a custom dialog, which was different depending on the authentication method.

We modified this behavior, and now you will see the same dialog that is shown when creating a new account:

Alpha new

All platforms - Plastic, Gluon: New browse repository dialog

When adding a new path permission on PlasticX, you had to manually type the path of the object you wanted to apply the permissions on. Now, we added a new dialog that shows you the repository tree on the main branch, so you can just select the item on the tree without having to type the full path:

Alpha new

All platforms - PlasticX, GluonX: Spacebar to check/uncheck items in Update Reports

Now is possible to use spacebar key to check/uncheck items in Update Reports dialogs in PlasticX and GluonX.

This feature will also now affect .meta files, selecting the associated .meta file too.

Public

11.0.16.6994: May 26 2022

New

Linux - Server: Enable setting WebAdmin port under 1024

The server can now be configured to start the WebAdmin in ports below 1024.

To do that, edit the /opt/plasticscm5/server/server.conf and change the default values (ports 7178 and 7179) for the new ones at your convenience on the following configuration keys:

WebAdminToolPort
WebAdminToolSslPort
Alpha new

All platforms - PlasticX: Add diff selection to text editor

New option to check differences from selected lines in text editor has been added:

Alpha new

All platforms - PlasticX, GluonX: Open files on Enter key pressed

The Enter key pressed will open the selected files from Workspace explorer tree.

Alpha new

All platforms - PlasticX: New icon for dynamic workspaces.

We designed a new icon for Dynamic Workspaces . So now, those workspaces that are dynamic use a new icon so the user can be differentiated from the standard workspaces.

NOTE: Dynamic Workspaces are available only on Windows platforms for now.

Alpha new

All platforms - PlasticX: Add help link for dynamic workspaces.

When creating a workspace, we added a link label to our blog explaining what Dynamic Workspaces are, and what are they for.

Alpha new

All platforms - Plastic, Gluon: Improved sign in to cloud server on on-premises mode

When you selected the on-premises mode for the sign in, and entered a cloud server, we were showing a dialog with the sign-in options available for that server.

We integrated this view inside the same dialog that is used to create the account, so the process is cleaner.

Alpha bug

All platforms - PlasticX: Workspace explorer symlinks

A few issues have been fixes related to symlinks on the workspace explorer:

- Checkout, undo checkout, lock and checkout now support symlinks

- Symlinks are now represented by the correct native icon

Alpha bug

All platforms - PlasticX: Code review didn't navigate to the comment correctly

Under some circumstances, the code review didn't navigate to the correct file and line when you double-click a comment. In addition, sometimes, a wrong message appeared to notify you about the file was deleted when it was not the case. Now both bugs are fixed.

Public

11.0.16.6979: May 19 2022

New

Windows - Plastic: file plastic links now open in GluonX

Opening a file plastic link will now launch GluonX rather than Gluon.

New

All platforms - Cloud server: Now the Plastic SCM Cloud Server won't abort write operations if there is a backup in progress.

There is a small chance that the Cloud server can start backing up one of your repositories while you are working on it. This chance is small because the Cloud server analyzes repository usage tendencies to predict the best time to backup data without interrupting your work. However, no prediction is perfect. If you encountered that unfortunate scenario you are familiar with this error message:

The backup of the "repository@organization" database is in progress. Only read operations are allowed on it.

This is now fixed. If you try to perform a write operation on a repository that is undergoing a backup, your operation will wait a grace period for the backup to finish before throwing an error back to you.

New

All platforms - GluonX: New GUI announcement

We are happy to announce that our new, cross-platform, GUI for artists, "GluonX", is now the default on all platforms.

GluonX has all the functionality of the legacy Gluon applications across all platforms wrapped in a modern new interface. It also includes support for changelists in the Check-in view, and easy switching between light and dark modes.

Here's how it looks in dark mode:

Note, you can switch back to the legacy GUI at any time by selecting the option from the menu:

New

IDEA Plugin: IntelliJ IDEA 2022 support

We've updated our plugin and it supports IntelliJ IDEA 2022.x now!

Bug

All platforms - Partial update fails when a file was replaced

If a file was moved somewhere else and a second file with the same path was then added, going back and trying to do a partial update over a third file would fail to apply all changes and an error message was shown.

cm partial update file.txt
Calculating...
The new item cannot be loaded in the workspace. Probably, the path is already used. Please unload the item (from the configuration view) and retry the operation.

Now it is fixed.

Bug

Windows - Jenkins: The command line client used by the plugin couldn't run.

The Jenkins plugin automatically downloads a Plastic SCM command line client bundle to perform VCS operations. But the application ("cm.exe") didn't start properly due to a missing .dll file. Fixed.

Alpha new

All platforms - PlasticX, GluonX: fixes and added new keyboard shortcuts

PlasticX:

*Pending Changes View: added missing keyboard shortcut for "Checkout"

*History Panel: Added new keyboard shortcuts in HistoryPanel, for Open and Diff with previous revision

*Browse Repository: Added new keyboard shortcuts in "Browse repository in this label" and "Browse repository in this changeset", for "Open", "Diff with previous revision" and "View History"

GluonX:

*Workspace Explorer View: fixed existing keyboard shortcuts not working, added events

*Workspace Explorer View: added missing keyboard shortcut for "Add to source control"

*Workspace Explorer View: added missing keyboard shortcut for "Add directory tree to source control"

*Workspace Explorer View: added missing keyboard shortcut for "Undo checkout"

* Workspace Explorer View: fixed open in explorer name ("Open in explorer" in Windows/Linux,"Reveal in Finder" in Mac)

* Workspace Explorer View: added missing keyboard shortcut for "Open in explorer"

*Checkin View: fixed open in explorer name ("Open in explorer" in Windows/Linux, "Reveal in Finder" in Mac)

*Checkin View: added missing keyboard shortcut for "Open in explorer"

*Checkin View: added missing keyboard shortcut for "Checkout"

*History Panel: Added new keyboard shortcuts in HistoryPanel, for Open and Diff with previous revision

Alpha new

All platforms - PlasticX, GluonX: Spacebar to check/uncheck items

Check/Uncheck all selected nodes from tree views with checkable items on spacebar key down.

Alpha new

Windows - PlasticX: Dynamic Workspaces configuration

A new tab option has been added for "Dynamic workspaces" in the Preferences window. This new view contains the status of the plasticfs process (running/not running) and allows user to install this feature if it's not running. Turning on the plasticfs, the dynamic workspaces functionality is automatically enabled and ready to be used.

Link to the video: https://imgur.com/cnSpjPl

Alpha new

All platforms - PlasticX: file plastic links now open in GluonX

Opening a file plastic link will now launch GluonX rather than Gluon.

Alpha new

All platforms - Plastic, Gluon: Improved enterprise edition onboarding

We unified the onboardings in the cloud and enterprise edition. Now both use the same view, and you can connect to an on-premises server or to a cloud server from both editions. This is how it looks:

Alpha new

All platforms - PlasticX: Compact the UI.

Reduce the overall margins/paddings to make the UI a little bit more compact, so more content is visible in the display. We compacted the following UI elements.

* PlasticX/GluonX: Compact the TreeDataGrid node height.

* PlasticX/GluonX: Compact the Switch Workspace button paddings.

* PlasticX/GluonX: Compact the PlasticX Topbar height.

* PlasticX/GluonX: Compact the Home view toolbar panels.

* PlasticX: Compact the left SideBar item height.

* GluonX: Compact the Tab bar.

Alpha new

All platforms - PlasticX, GluonX: handle .meta files

Selecting an asset for check-in in the Pending Changes view in PlasticX and the Check-in view in GluonX will now automatically selected the associated .meta file too. This also applies to the Incoming changes view and the Workspace Configuration view of GluonX.

Alpha new

Windows - Command-line client: Symlinks are now supported

We added support for symlinks on Windows! The long awaited feature is now here for command line only (GUI fixes coming soon).

== WHAT IS NEW ==

Symlinks created previously on Linux and macOS were replaced on Windows by placeholder text files containing the linked path.

Now, the Plastic command line supports Windows symlinks as well.

== REQUIREMENTS ==

To create symlinks, Windows 10 build 14972 or newer is required. You also need to enable Developer Mode (https://docs.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development).

== HOW TO ENABLE THE FEATURE ==

Symlink support will be enabled by default in forthcoming versions. For now, you can add the following key to your client.conf:

<EnableSymlinkSupportOnWindows>yes</EnableSymlinkSupportOnWindows>

Note 1: GUI support is still in progress. By enabling the feature and using symlinks you might experience glitches in the GUI.

Note 2: PlasticFS still does not support symlinks and this feature might interfere with its proper behavior. You might need to mount your workspace right under a volume specifier. For instance:

cm wk MY_WORKSPACE D:

Note 3: If you enable this feature, symlinks placeholders will eventually be promoted as private files. If you still have any in your workspace, you can remove them and let Plastic to recreate them as actual symlinks.

Note 4: If you disable this feature, dangling symlinks in your workspace might deceive the Plastic client. Remember to erase them immediately after.

== HOW TO CREATE SYMLINKS ON WINDOWS ==

You can use the same Plastic commands and options you would use on Linux or macOS:

C:\wkspaces\sokoban> mklink /D Scripts Assets\Scripts
C:\wkspaces\sokoban> cm add Scripts
The selected items are about to be added. Please wait ...
Item c:\wkspaces\sokoban\Scripts was correctly added
C:\wkspaces\sokoban> cm ci --symlink Scripts
The selected items are about to be checked in. Please wait ...
- Checkin finished 26 bytes/26 bytes [################################] 100 %
C:\wkspaces\sokoban> cm co --symlink Scripts
The selected items are about to be checked out. Please wait ...
Item c:\wkspaces\sokoban\Scripts was correctly checked out
C:\wkspaces\sokoban> cm undo --symlink Scripts
c:\wkspaces\sokoban\Scripts unchecked out correctly
Alpha bug

All platforms - PlasticX: fixes in GUI help

Fixed broken links in GUI help

*Link:https://plasticscm.com/download/help/ignored-hidden-etc.html broken, replaced with: link:https://plasticscm.com/download/help/ignored-hidden-etc

*Link:https://plasticscm.com/help/recursivemerge broken, replaced with:link:https://plasticscm.com/download/help/recursivemerge

Fixed "You can also customize the query by clicking Advanced" links in Changesets View and Labels View help, the links now works correctly

Alpha bug

All platforms - PlasticX: Fixed an "unexpected error" in the diff view.

During the view initialization, sometimes clicking the diff view raised an "An unexpected error has occurred". Now it's fixed.

Alpha bug

All platforms - Gluon: Corrected text to switch to Plastic

In the top right menu of Gluon there's an option to switch to the Plastic SCM GUI. When opening the menu from the home view, the text of this option said "Switch to Gluon", which was incorrect. We fixed this issue:

Public

11.0.16.6949: May 12 2022

New

Windows - Visual Studio 2022 plugin: Performance improvements!

Improves startup by asynchronously performing the initialization process.

New

All platforms

Command-line client outputs its version as log's first line

Now the cm will store the cm version at the top of the log

2022-04-29 16:26:57,891 1 (null) (null) (null)  INFO  cm - cm version: 11.0.16.6891
2022-04-29 16:26:57,919 1 (null) (null) (null)  INFO  cm - STARTING CLIENT
...
New

Server - Merge and Incoming Changes are much faster with pending added

The calculation of the merge or the incoming changes was slow when the workspace had several pending added items in the same directory.

In the reported case, a workspace with 384000 added files in the same directory took over 3 hours to calculate the incoming changes. Now, the same scenario takes less than 2 seconds to complete it. Now, it's 5000 times faster.

New

Linux - Installers: Updated GPG keys to install plasticscm packages

We updated the GPG keys of plasticscm.com for Linux packages downloading, so you can safely install Plastic SCM in your Linux distro.

Depending on the distro you are using, a reminder of new GPG key found may appear.

Bug

All clients: Global config not working with cloaked rules.

The global configuration was not properly read/updated if there was a cloaked.conf file in the users configuration folder. This file is automatically created from the GUIs when adding a file/folder to the cloaked list with the "Apply rules to all my workspaces" option checked.

The global configuration repository is internally downloaded by using the fast-update operation which doesn't work if there are cloaked rules defined. However, it doesn't make sense to take into account the cloaked rules for global configuration workspaces, so they are just ignored.

Bug

Windows - Visual Studio 2022 plugin: Multiple bugs fixed

Fixes toolbar and menu controls that now are enabled/disabled correctly depending on version control found or not.

Fixes workspace not being initialized in some cases by detecting if the solution was already opened before the plugin is initialized and acting accordingly

Fixes Visual Studio getting frozen by removing views restoration in the situation where the solution is already opened (e.g. double-clicking on the .sln file to open a solution)

Bug

Wildcard expansion not working for paths with white spaces

Some commands failed when using wildcards involving paths with white spaces:

cm add -r *
cm ci "A set\*" --all
The selected items are about to be checked in. Please wait ...
Error: The item /A set/* is not changed in current workspace

Now these commands work as expected.

Alpha new

All platforms - PlasticX: New onboarding experience!

Link to the video: https://i.imgur.com/mcVJvWk.mp4

This is what comes with the new "home" section:

* Now it's much easier to join to an existing organization or create a new one.

* A single place to manage all the accounts, cloud organizations, repositories and workspaces.

* One single way to do the entire onboarding.

* Always available to return to it, not just like the old onboarding that was only present at the beginning and hard to find after that.

We encourage you to try the new "home" view, and send us your feedback (via https://forum.plasticscm.com/). Remember that if you want to try it the Windows Platform, you need to use the new Plastic X GUI.

Alpha new

All platforms - Plastic, PlasticX, Gluon, GluonX: Handle recent comments per workspace

The applications now save and display the recent comments per workspace.

Alpha new

All platforms - PlasticX, GluonX: ComboBox on focus border color

The comboboxes border color will change when get the focus.

Alpha new

All platforms - PlasticX: Diff between labels

It has been added 2 new diff options to labels context menus, "Diff selected labels" and "Diff with another label", these options can be found in context menus of Labels view and Branch explorer.

* "Diff selected labels" will open the diff window with the diff data between labels

* "Diff with another label" will open a new explorer dialog with the list of the existing labels. Once one label is selected in this dialog the diff between the selected labels could be requested.

It has been also added the color effect on labels multiselection in Branch explorer.

Alpha new

All platforms - PlasticX, GluonX: improved scroll when deleting an added item

We improved scroll when deleting an added item or a changelist item in pending changes view/ checkin view, now the program should scroll and focus better the nearest item

Alpha new

All platforms - GluonX: implemented native menu on Mac

We implemented the macOS native menu for GluonX.

Alpha new

All platforms - PlasticX, GluonX: enabled menu on Switcher window on Mac

We enabled the macOS native menu on the Switcher window.

Alpha bug

All platforms - GluonX: Fix null exception

If you tried to create a file or a directory in a private directory, a null exception appears

We fixed this issue.

Alpha bug

All platforms - PlasticX, GluonX: Fix small bug in changelists

If you tried to move a changelist to another changelist with similar name, the changelist name didn't appear, we fixed this issue.

*Before:

*After:

Alpha bug

All platforms - GluonX: Fix convert to partial workspace

Sometimes, if you tried to convert a Plastic workspace to a Gluon workspace, the update button didn't work.

We fixed this issue.

Alpha bug

All platforms - PlasticX: fixed issue where branch not shown for xlinks

The branch name was not being displayed in the Workspace Explorer for xlinks in the root of workspace. We corrected the issue.

Alpha bug

All platforms - PlasticX: Code Reviews changeset column should grow

In Plastic X, when reviewing a code review changeset by changeset, the column text didn't grow when expanding.

We fixed this issue:

Before:

After:

Alpha bug

macOS - GluonX: "Try new GUI" failed in Cloud Edition

When clicking the "Try new GUI" button on Gluon, and opening the new GluonX, we were asking the user for credentials again. This only happened in cloud edition.

Now this issue is fixed. Switching to the new GUI will open the workspace that was previously open on Gluon without any intermediate steps.

Public

11.0.16.6907: May 05 2022

Bug

All platforms - Plastic: Fix error when running git sync with UTF-32 files

When performing a git sync with UTF-32 files, sometimes the error "Encoding error Unicode (UTF-32)" was encountered. The git sync should now be able to complete without issue.

Alpha new

All platforms - PlasticX,GluonX: Save expanded and selected items

The application will now remember the following workspace configurations

PlasticX Items View:

*Expanded items

*Selected items

*Horizontal and Vertical scroll position

GluonX Workspace Explorer:

*Expanded items

*Selected items

*Horizontal and Vertical scroll position

*Hide private items

*Exclude privates from directory size

Public

11.0.16.6898: Apr 28 2022

New

Command-line client: New environment variable to track the merge info during an 'after-clientcheckin' trigger

The after-clientcheckin trigger will now fill a new environment variable named PLASTIC_MERGE_LINKS with info about the merge links (if any) introduced in the checkin operation (i.e. checking in a merge from another branch).

The value of the PLASTIC_MERGE_LINKS environment variable would be like this format (just one merge link):

mergetype:<TYPE_OF_MERGE_LINK>,source:<CHANGESET_NUMBER>@rep:<REP_NAME>@repserver:<REP_SERVER>

And if there are several merge links in the checkin operation, they will be separated by semicolon ';' char:

mergetype:<TYPE_LINK#1>,source:<CHANGESET_NUMBER#1>@rep:<REP_NAME#1>@repserver:<REP_SERVER#1>;mergetype:<TYPE_LINK#2>,source:<CHANGESET_NUMBER#2>@rep:<REP_NAME#2>@repserver:<REP_SERVER#2>

Example:

PLASTIC_MERGE_LINKS=mergetype:merge,source:264@rep:tools_repo@repserver:rainbow:8087

Please refer-to the client checkin triggers documentation site for further info.

New

Server: New environment variable to track the merge info during an 'after-checkin' trigger

The after-checkin trigger will now fill a new environment variable named PLASTIC_MERGE_LINKS with info about the merge links (if any) introduced in the checkin operation (i.e. checking in a merge from another branch).

The value of the PLASTIC_MERGE_LINKS environment variable would be like this format (just one merge link):

mergetype:<TYPE_OF_MERGE_LINK>,source:<CHANGESET_NUMBER>@rep:<REP_NAME>@repserver:<REP_SERVER>

And if there are several merge links in the checkin operation, they will be separated by semicolon ';' char:

mergetype:<TYPE_LINK#1>,source:<CHANGESET_NUMBER#1>@rep:<REP_NAME#1>@repserver:<REP_SERVER#1>;mergetype:<TYPE_LINK#2>,source:<CHANGESET_NUMBER#2>@rep:<REP_NAME#2>@repserver:<REP_SERVER#2>

Example:

PLASTIC_MERGE_LINKS=mergetype:merge,source:3534@rep:assets_repo@repserver:rainbow:8087

Please refer-to the server checkin triggers documentation site for further info.

New

All platforms - Command-line client: New 'cm configure' command replaces 'clconfigureclient' tool.

The clconfigureclient tool was a mono/netframework application, and it had troubles configuring a client with a server using ssl on linux and macOS. This was caused due to unmatched security protocol for the ssl connection between the clconfigureclient process and the plastic server.

To fix this, we have removed the clconfigureclient application, and created a subcommand for the regular command-line-client of Plastic SCM (that runs on netcore, and thus accepts enhanced security protocol, enabling a correct ssl handshake with the plastic server).

The new command is cm configure command, and does the same as clconfigureclient application.

Issue cm help configure to show the command help for further info.

New

All platforms - Gluon: Try the new Gluon GUI!

You are cordially invited to try out the new Gluon GUI, codenamed GluonX. GluonX has all the functionality of Gluon across all platforms, and additionally includes support for changelists in the Checkin view.

To make it as easy as possible, we have added a button to the existing Gluon GUIs which will launch the new GUI. Note, you can switch back at any time using the "Switch to legacy GUI" option in the menu at the top right of the new GUI.

Switch to new GUI on Windows:

Switch to new GUI on Mac:

Switch to new GUI on Linux:

When GluonX is launched you will be presented with this welcome screen:

Switch back to original GUI:

Please give the new Gluon GUI a try and share your thoughts with us.

Bug

Command-line client: Creating a branch no longer allows empty branch names

Previously when creating a child branch it was possible to create one with an empty name. It now will return an error message instead.

Bug

All clients: The fast-update operation failed with after-update triggers.

The fast-update operation failed with an "Object reference not set" exception when running the after-update trigger if the workspace was already up-to-date (it means, if it already pointed to the branch head).

This operation is internally used to update changes from the global configuration repository (plastic-global-config), so it also made the application of the global configuration in the workspace fail.

Bug

All clients: Some trigger environment variables were not properly set for fast-update.

The PLASTIC_INITIAL_CHANGESET and PLASTIC_FINAL_CHANGESET environment variables were not set for the fast-update operation when running before/after-update triggers. Now it is fixed.

Alpha new

All platforms - PlasticX, GluonX: Loading spinner in Diff window

When the diff window is opened a progress spinner will be displayed while the diff data is loading.

Alpha new

All platforms - PlasticX, GluonX: Save user columns preferences

PlasticX will remember user columns width, sort column, and sort column order preferences every time we open the program, giving the user more personalization options

Also, we decreased default column size in columns "status", "created by" and "repository" in Items View

Alpha new

All platforms - PlasticX: Permission dialog is now resizable

We added the option to resize all permissions dialogs in PlasticX

Alpha new

All platforms - PlasticX, GluonX: version in client logs.

"plasticx.relevant.log.txt" and "plasticx.debug.log.txt" log files will include program version as the first log trace (INFO).

Alpha new

Windows - PlasticX: Added SemanticMerge to solve conflicts for supported languages

We added SemanticMerge tool to be launched automatically to solve conflicts during the merge operation for csharp, vb.net, and java languages.

Now you have the semantic power by default in the merge without having to configure it.

Alpha new

All platforms - GluonX: added Plastic Link button!

You can now copy Plastic Links into the clipboard and share file links with your colleagues.

A Plastic Link is like a URL that points to a file in a Plastic repository. You can send links to controlled documents to other people, and when they click on the link, the document will be downloaded into their workspace.

Click the Copy button in the Details panel to copy a file link into your clipboard:

Alpha new

All platforms - PlasticX: Diff changeset by changeset

Added a new mode for diff branches, the diff changeset by changeset mode which allows to get differences for every changeset from a branch.

Both diff modes "Diff entire branch" and "Diff changeset by changeset" will be available in the Diff window and could be switched between each other, the "Diff entire branch" mode will be displayed by default.

The "Diff entire branch" mode will display:

* The branch diff changed files.

* The selected file diff panel.

The "Diff changeset by changeset" mode will display:

* The list of changesets panel for this branch.

* The selected changeset comments panel.

* The diff changed files for the selected changeset.

* The selected file diff panel.

Alpha bug

All platforms - PlasticX: fixed Japanese text truncation on Sync view buttons

The fixed an issue where the text of the buttons on the Sync view was being truncated in Japanese.

Alpha bug

All platforms - PlasticX: Error 'CloudLocalAccount' was not found

The key for text CloudLocalAccount has been removed from plastic-gui.en.txt.

Public

11.0.16.6860: Apr 21 2022

New

Command-line client: New variable to track the branch name during an 'update' trigger

When creating an update trigger, the environment variable PLASTIC_FINAL_BRANCH is now available to track the branch of the final changeset.

For further info about 'update' triggers click here

REMARK: The PLASTIC_FINAL_BRANCH value when switching to an empty child branch will be the parent branch, since the loaded changeset when switching to this empty branch is located at the parent branch.

New

Cloud Server: Improved x1000 the time cleaning the Jet caches.

The time cleaning the Jet caches could take around 40-50s. This created a lock contention that caused most requests got stuck until the process finished. After this, the server continued working normally.

This code has been improved and it now takes around 50 ms instead 30-50 s (it's 1000 times faster).

Bug

IntelliJ: VCS controls were not available if the repo contained multiple subprojects.

Now VCS controls are available when a subproject is opened in the IntelliJ IDE (IDEA, Rider and so on) as it now tracks the path upwards until it finds repo info within .plastic directory.

Bug

Server: Fixed attribute values not updating in the audit log

Previously when attribute values were changed, the previous version would be written to the audit log. Now the current value of the attribute will be written out.

Alpha new

All platforms - PlasticX: Custom context menus for Directory conflicts

New context menus will be available in Merge view for each type of directory conflict detected during the merge process.

Alpha new

All platforms - PlasticX: Unify configuration data

Configuration data has been moved from guiclient.conf to plasticgui.conf in order to unify configuration in just one file. The moved config parameters are: ComparisonMethod, ResultEncoding, Encoding, MergeResolutionType, EnableCreateDynamicWorkspace, ErrorPendingChangesOnSwitch, WarnMergeWithChangedItems.

Alpha new

All platforms - PlasticX, GluonX: Changed column order in History Panel

We changed the column order of History panel in this release, the new column order will be:

-Changeset

-Creation date

-Created by

-Size (PlasticX only)

-Comment

-Branch

Alpha new

All platforms - PlasticX, GluonX: Typing alphanumeric keys will focus selection

We improved keyboard usability, now, when typing alphanumeric keys (a-z, A-Z, 0-9) in any list, selection will focus to the typed item

Alpha new

All platforms - PlasticX: added support for changelists

Alpha new

We have added changelists to PlasticX.

What are changelists?

Changelists are logical groupings of files in the Pending Changes view. They allow you to group your pending changes as you wish, and perform actions only on the files within a group.

For example, you might group changes into a "Core" changelist and a "Tests" changelist. You can then check in or undo the changes in "Core" or "Tests" independently.

You can enable Changelists using the following setting, accessed by clicking Options in the Pending Changes view:

When first enabled, all changes will appear in a "Default" changelist. You can add new changelists from the context menu accessed by right clicking on a changelist name in the pending changes list.

Creating a changelist:

A changelist can be persistent or transient. A persistent changelist will remain in the pending changes list even if it contains no changes. Otherwise, the changelist is automatically removed when all it's changes have been checked in or undone.

You can move checked-out files into a changelist by selecting "Move to changelist" from the context menu for that item.

Moving an item to a changelist:

Here is an example with multiple changelists configured:

Alpha new

All platforms - PlasticX: Added open menu options in Diff window

We added Open and OpenWith right click context menu options in Diff Window and Code Review Windows

Alpha bug

All platforms - Branch Explorer search navigation

The search results navigation order was not properly followed in branch explorer, it should be:

1. The parent branches

2. The child branches

3. The changesets

Alpha bug

All platforms - GluonX: Solved Enter shortcut in Search files dialog

When Enter key is pressed the selected file in the results table has to be selected and focused in the explorer workspace view from the workspace window.

Alpha bug

All platforms - PlasticX: Diff window opens minimized

Sometimes, if you wanted to diff a branch or a changeset, the diff window hid itself to the background

We have mitigated the issue in this release

Alpha bug

All platforms - PlasticX: Move changesets path TextBox was disabled

Move changesets to a different branch dialog: "Selected branch" TextBox was disabled when the "Selected an existing branch ..." checkbox is checked.

Alpha bug

Windows - PlasticFS: Don't ask to remove Windows Defender rules

PlasticFS was prompting the user to remove a Windows Defender path rule when a dynamic workspace is deleted or moved, even if Windows Defender is not enabled as the default antivirus. Fixed.

Public

11.0.16.6825: Apr 07 2022

New

All platforms - PlasticX: Help panel for code reviews

Added Help button and panel to:

* Main window Code Reviews view

* Code Review Window

New

Watchdog: Added monitoring for the Plastic Server tcp ports.

The watchdog opens periodically connections against the tcp ports of the Plastic Server instances it started (unsecured tcp & ssl if configured). If the connections cannot be opened by any reason, it will recycle the instance.

New

Watchdog: Added monitoring for the Plastic Server https endpoint.

The watchdog runs periodically requests against the https endpoint of the Plastic Server instances it started (if configured). If the request cannot be completed by any reason, it will recycle the instance.

Bug

Cloud: Fixed a concurrency issue with the storage version when creating organizations.

Each time a new organization was created in the Cloud server, it tried to write the storage version file. This could lead to a file access exceptions if two calls tried to write to the file at the very same time.

Now, the storage version is only written once, and the access is protected.

Alpha new

All platforms - PlasticX: Added “Browse repository in this label” action

We added a new right click context menu action in Branch Explorer View (when selecting a label) and Labels View

When you click in “Browse repository in this label”, a new Split View will appear where you will be able to browse the repository from the selected label’s changeset

Alpha new

All platforms - PlasticX: Fix filter in Code Reviews

We fixed an issue where executing a filter in Code Review, now you can filter using the field "Reviewer"

Alpha new

All platforms - PlasticX: New keyboard shortcuts

We added more keyboard shortcuts in PlasticX

Now you can use Ctrl + F (Windows/Linux) or Cmd + F in macOS, to move focus to search filter in all dialogs

Alpha new

All platforms - PlasticX: Fix scroll issue in pending changes

In PlasticX, when you had a large number of elements to be added in Pending changes, if you deleted a item the scroll always focused the first element.

Now this behaviour is fixed, the scroll will remain after a delete operation

Alpha new

All platforms - PlasticX: Added 'Comment' column in the Merge/Incoming Changes views

We completed those views by adding the 'Comment' column in order to show the changeset comment where the revision of each merge/incoming change was created.

For Merge view:

For Incoming Changes view:

Alpha new

All platforms - GluonX: Added 'Comment' column in the Incoming Changes view

We completed this view by adding the 'Comment' column in order to show the changeset comment where the revision of each incoming change was created.

[Alpha New]

All platforms - PlasticX: Added recent comments dropdown to Comments dialog

New dropdown button has been added to Comments dialog in order to allow the selection of any comment used previously.

Alpha bug

All platforms - PlasticX: Error displayed creating a new Workspace

In Create Workspace dialog, when trying to choose a repository and the repositories combobox was empty, the app displayed an error message. This error occurs when the repository list wasn't completely loaded.

Alpha bug

All platforms - GluonX: fixed directory expansion issue in workspace explorer

We fixed an issue where subdirectories would sometimes become un-expandable after refreshing the view.

Alpha bug

All platforms - GluonX: selected search results now highlighted in explorer and configuration view

When you double click on a search result, that item should be navigated to and selected in the item view. This was only happening if the item was already visible. Now, we expand the parent directories of the selected item so it can be shown and selected.

Alpha bug

All platforms - PlasticX: Fix text in Merge View

Merge result text overlapped the panel in Merge diagram, now this issue fixed.

Alpha bug

Windows - PlasticFS: Support Defender exclusions on Windows 11

Starting PlasticFS for the first time on Windows 11 with Windows Defender enabled could show the following error:

This happens if the user accepts to add initial exclusion rules to Windows Defender required by PlasticFS to improve its performance.

Now it is fixed, and the error message is gone:

Alpha bug

All platforms - PlasticX: fixed GUI hang during long branch diff calculation

We now offload the diff processing onto a separate thread so that the GUI remains responsive during the branch diff operation.

Public

11.0.16.6787: Mar 31 2022

New

All platforms - DevOps: Email plug html body messages

Before this version, emails were sent as plain-text. From now on, the email plug can send messages with html content and render them properly.

To do that, just enable the following switch in your email plug configuration (Server's web admin > DevOps > Configure button of your email plug):

New

All platforms - Plastic, PlasticX: Improvements to Workspace Explorer search

Ctrl+F (Command+F on Mac) to focus on the search field now selects existing text in the field. Also, toggling the "Include private items" checkbox now updates the search results panel if it is open. You can also close the results table by pressing Enter.

Bug

All platforms - Server: The plugs and mergebots processes could exit immediately on server startup. Although this issue was easier to reproduce in Linux, it affected all platforms.

An easy way to reproduce this is by restarting the plasticscm-server service on Linux. Once the server is up and running again, you can see that your plugs and mergebots are still offline.

This was because of a race condition when initializing the server. The Plastic SCM server first starts REST APIs, DevOps WebSocket for events… and then it starts the plugs and mergebots.

But the server was still initializing Web services by the time the plugs and mergebots tried to connect to them. This would cause the plug or mergebot to think that the server is offline, forcing them to exit.

The server now checks that these processes are still alive after a grace period. The server will also restart the processes if they exit within this grace period.

Bug

Windows - Visual Studio Extension: Fixed issues with views not being displayed correctly

Now menu buttons in views are displayed correctly at scales greater than 100%.

Alpha new

All platforms - GluonX: New cross-platform GUI available!

We are pleased to announce the availability of a new cross-platform version of Gluon, code-named GluonX!

We would love for you to try out the new GUI and give us some feedback. GluonX will eventually replace the existing Gluon GUI on all platforms, so this is a great opportunity for you to help shape the future of the application.

This release of GluonX is fully functional, and has great, modern look and feel. It also comes with light and dark theme on all platforms.

Here is how you can launch GluonX:

Windows:

On Windows, run the following in a command window:

C:/Program Files/PlasticSCM5/client/wingluonx.exe

MacOS:

On macOS, run the following a terminal window:

open /Applications/PlasticSCM.app/Contents/Applications/GluonX.app

Linux:

On Linux, run the following:

/opt/plasticscm5/client/lingluonx

Here are a few screenshots to whet your appetite.

Workspace explorer view (dark theme):

Checkin view (dark theme):

File search (light theme):

Please try it out and let us know what you think!

Alpha new

All platforms - GluonX: Added support for Changelists

We have added changelists to GluonX.

What are changelists?

Changelists are logical groupings of files in the Checkin view. They allow you to group your pending changes as you wish and perform actions only on the files within a group.

For example, you might group changes into a "Core" changelist and a "Tests" changelist. You can then check in or undo the changes in "Core" or "Tests" independently.

You can enable Changelists using the following setting, accessed by clicking Options in the Checkin view:

When first enabled, all changes will appear in a "Default" changelist. You can add new changelists from the context menu accessed by right clicking on a changelist name in the pending changes list.

Creating a changelist:

A changelist can be persistent or transient. A persistent changelist will remain in the pending changes list even if it contains no changes. Otherwise, the changelist is automatically removed when all its changes have been checked in or undone.

You can move checked-out files into a changelist by selecting "Move to changelist" from the context menu for that item.

Moving an item to a changelist:

Here is an example with multiple changelists configured:

Alpha new

All platforms, macOS - PlasticX: Improved keyboard shortcuts

We made several improvements, fixes and changes in PlasticX keyboard shortcuts

* Added new delete shortcut in shelves view

* Added new shortcut in Branch Explorer > Switch workspace to this branch

* Added new shortcut Ctrl + F, move focus to filter in views

* Fix an issue in pending changes where some shortcuts weren't working properly

For example, DELETE shortcut was not working if previously a item that couldn't be deleted was selected. Now this issue is fixed

* macOS: Fixed an issue where delete keyboard shortcuts weren't working properly

Alpha new

All platforms - PlasticX: Fixed the focus for workspace window

Now, we set the focus on the workspace explorer view when the workspace window is opened. So, you can use directly the keyboard to navigate or execute a shortcut (e.g Ctrl+F / Cmd+F to search).

Alpha new

All platforms - PlasticX: Add support for portable versions

The theme folder can be located in execution root or parent paths. It will be needed in portable versions where all the assemblies and resources are packaged in the same location.

Alpha new

Windows - PlasticFS: Enable start on user's logon

Now it is possible to start PlasticFS automatically on user's logon by issuing a plasticfs.exe --install .

The plasticfs.exe --install creates a shortcut (a link file) on user's startup program group.

plasticfs.exe

It is located by default at the following directory:

c:\Program Files\PlasticSCM5\client
Alpha bug

All platforms - PlasticX: Text fields overexpanding when pasting text

When pasting a text that contains end of line character into a single line text field it behaves like a multiline text field instead.

This issue is now fixed, all end of line characters are now replaced with a space character.

Alpha bug

All platforms - PlasticX: Improved clarity of link icon

Link icon present on code review, and diff window now uses the theme colors for dark and light themes, this change improves clarity of this icon on dark theme.

Alpha bug

All platforms - PlasticX: Drawing improvements in the Branch Explorer.

The parent link arrows were drawn over the branch captions. Now they are drawn behind.

Alpha bug

All platforms - PlasticX: Error loading invalid formats in image preview

An error was displayed when the image preview was requested for files with PDB and mat formats. This error has been fixed by removing both formats from the supported files formats.

Public

11.0.16.6757: Mar 23 2022

New

Command-line client: Updated the help of the PLASTICEDITOR environment variable available for some commands.

We updated the description about using the PLASTICEDITOR environment variable. You can use this option with the following commands: branch create , label create , partial checkin , shelveset create , archive and checkin .

New

Windows - Visual Studio 2022 plugin: We've made some visual improvements

* Plastic CodeLens now shows real icons instead of ASCII or emoji.

* Changesets marked as "Merged and Changed" are now hidden from the history list avoiding duplicate records.

* Changesets are now ordered by date (and not by the object id).

New

All platforms - PlasticX: Added reveal password button

User will be able to display entered passwords for password text boxes.

New

Visual Studio 2022: CodeLens shows renames greatly!

CodeLens now uses short names rather than fully qualified names for renamed actions to improve legibility.

New

Server: Improve server stats log

Now the server stats included the queued work and the thread count for the thread pool. See example about what they look like:

2022-03-17 11:07:46,300 ActivityScheduler-59   (null)   INFO  ServerStats - PROCESS INFO
2022-03-17 11:07:46,300 ActivityScheduler-59   (null)   INFO  ServerStats - Entry                                      Value
2022-03-17 11:07:46,300 ActivityScheduler-59   (null)   INFO  ServerStats - ========================    =======================
2022-03-17 11:07:46,300 ActivityScheduler-59   (null)   INFO  ServerStats - Proc Id                                     9015
2022-03-17 11:07:46,304 ActivityScheduler-59   (null)   INFO  ServerStats - Handle count                                 715
2022-03-17 11:07:46,304 ActivityScheduler-59   (null)   INFO  ServerStats - Thread count                                 213
2022-03-17 11:07:46,304 ActivityScheduler-59   (null)   INFO  ServerStats - ThreadPool - Queue length                      0
2022-03-17 11:07:46,304 ActivityScheduler-59   (null)   INFO  ServerStats - ThreadPool - Thread count                     47
New

All platforms - PlasticX: Support navigating trees with left/right arrow keys.

All the tree views in PlasticX/GluonX now support navigation using left/right arrow keys:

* Right arrow key: If a node is not expanded, it expands it. If it's already expanded, it navigates to the first child.

* Left arrow key: If a node is expanded, collapses it. If it's not expanded, it navigates to the parent node.

New

All platforms - PlasticX: Checkboxes inside tables/trees not visible enough.

Increased the contrast colors to make them more noticeable, especially when the checkboxes were unchecked:

New

Command-line client: Add option to include delete & move operations in command line history

Using the flag --moveddeleted will now show delete & move operations when running cm history

For example:

> cm history rev:file2.txt#cs:2 --moveddeleted
D:2/22/2022 02:54 CS:1   B:/main
C: Created a new file
D:2/22/2022 02:54 CS:2   B:Moved from /file1.txt to /file2.txt
C: Renamed the file
D:2/22/2022 02:54 CS:3   B:Removed /file.txt
C: Deleted the file
Bug

Command-line client: cm finds nothing when involving unsolvable objects

Before, a query involving inexistent find objects gave zero results and didn't report any error.

# NOTE: The second path is a typo and has no revisions.
cm find revisions where (item='main.c' or item='naim.c')

Total: 0

Now queries run as expected:

cm find revisions where (item='main.c' or item='naim.c')

13 14-Mar-22 11:13:00 AM txt owner c:wkmain.c#br:/main/task01#1
23 15-Mar-22 3:29:05 PM txt owner c:wkmain.c#br:/main/task01#2
29 15-Mar-22 4:22:47 PM txt owner c:wkmain.c#br:/main/task02#3

Total: 3
Bug

All Platforms - PlasticX: Fixed error adding a new Code Review comment.

When opening a Code Review from a PlasticLink, and then trying to add a new comment, the UI displayed an "An unexpected error has occurred" error message. Now it's fixed.

Bug

All platforms - PlasticX: Fixed text editor's search box visibility.

When you change a file in the diff viewer (both pending changes view and diff window), and the text editor's search box was visible, the search box was wrongly hidden, and it couldn't be displayed again. Now it's fixed.

Bug

Command-line client: Archive can use an external text editor for comments.

Some commands use the PLASTICEDITOR environment variable to specify an editor for entering comments. If the PLASTICEDITOR environment variable is set, and the comment is empty, the editor will be automatically launched to allow you to specify the comment.

The 'cm archive' command disclaimed this was possible, but it didn't work. Now it is fixed.

We also fixed the help of other 2 commands (merge and create attribute), which also allowed this functionality, but it was not documented.

Alpha new

All platforms - PlasticX: Added diff selection differences

We added "diff selection" and "diff with previous selection" right-click context menu events in all Diff windows.

Now you can easily compare your custom selected code lines differences in a separate window

Alpha bug

All platforms - PlasticX: Flat button background

Background for flat buttons have been removed

Public

11.0.16.6718: Mar 17 2022

New

All platforms - Server: Migrate database from SQLServer/MySQL to Jet

We enabled the database migration from supported SQL backends (MySQL and SQLServer) to Jet using the server's WebAdmin utility.

We plan to deprecate the SQL backends soon. So, if you're still running your on-prem Plastic Server with MySQL or SQLServer as database backend, we strongly recommend to migrate to Jet backend soon (our own embedded, super-fast repo storage).

To access to the migration tool, just open the Plastic Server's WebAdmin (Usually on http://localhost:7178 ) >> Configuration >> Repository Storage Screenshot

And then, click on Change storage

(You will only see this option if your server is using MySQL or SQLServer as database backend)

And finally, while migrating, you should see a screen like this:

New

Command-line client: Edited the help of the transformed formatting option of the ls command.

The transformed formatting option now includes a note about reading the Administrator guide to learn more about Transformable workspaces.

New

Windows - Proxy: Service management using plasticd proxy subcommands.

Now it is possible to install, uninstall, start & stop Plastic Proxy service by using plasticd proxy subcommands:

* plasticd proxy --installservice -> installs the "Plastic Proxy" service (it does not start it up)

* plasticd proxy --start -> starts the "Plastic Proxy" service

* plasticd proxy --stop -> stops the "Plastic Proxy" service

* plasticd proxy --restart -> restarts the "Plastic Proxy" service

* plasticd proxy --status -> prints the status of the "Plastic Proxy" service

* plasticd proxy --uninstallservice -> stops and uninstalls the "Plastic Proxy" service

For further info about the Plastic Proxy see this link

For the proper way of working of the proxy server, remember creating a plasticcached.network.conf config file in the Plastic SCM server installation directory.

Example of C:\Program Files\PlasticSCM5\server\plasticcached.network.conf :

[
  {
    "port": 8085,
    "type": "tcp",
    "security": "none"
  }
]

(You can find a copy of this example config file in C:\Program Files\PlasticSCM5\server\config_samples directory).

New

macOS - PlasticX: Plastic links are handled by PlasticX

Now, when clicking on a plastic link, it will be directly opened in PlasticX, without asking you with which version of Plastic you want to open it.

New

Command-line client: Updated the help by removing the {type} format option of the gettaskbranches command.

Because all Plastic SCM branches are of type "smart" since a long time ago, we removed the {type} format option of the gettaskbranches command. This type displayed if a branch was "smart" or not.

New

Command-line client: Edited the help of the log , ls , and history commands.

We added a note in the help of the log , ls , and history commands to let you know that the options --xml and --format cannot be combined. These commands will ignore the --format option if you run them using both options.

Bug

All platforms - Command-line client: The 'cm changelist' command could not add removed items to a changelist. That now works OK.

Say for example you have a changelist named "TODO", and a removed item named "license.txt". The command below did not work:

cm changelist TODO add license.txt
[code]

This was because of the way the changelist command was calculating the workspace status to identify the change you wanted to add to the changelist. This is now fixed.
Bug

All platforms - Plastic, PlasticX: corrected handling of multiple arguments in custom tools

External tools configured with multiple arguments were incorrectly having their arguments grouped into a single argument. We fixed that and now the arguments are correctly sent to the target executable.

Bug

All platforms - Web UI: Fixed issues with repo names with forward slashes

Fixed an issue where WebUI would hang when it encountered repo names that include forward slashes

Bug

Cloud Server: Fixed finding archived revisions.

The cm find revs where archived='T' command didn't return anything if executed against a Cloud repo. It didn't matter if achived='T' or ='F' was specified, it returned zero results in both cases.

Now, it behaves like on-premise servers and it returns the right results according to the specified find conditions.

cm find revs where size > 0 AND archived='T' on repository 'repo@org@cloud'
227      03/04/2022 12:07:08 bin ruben    /wk/help/light/unitysignupbuhoshechristmas.png#br:/main#1
246      03/04/2022 12:07:08 bin ruben    /wk/help/light/unitysignupbuhochristmas.png#br:/main#1

Total: 2

Bear in mind that these changes will affect only those files archived from this version. Old archived ones won't be affected and therefore not displayed as results.

Bug

All platforms - PlasticX: Preserve Properties and Attributes when refreshing the Branch Explorer.

When refreshing the Branch Explorer, PlasticX lost the properties and attributes for the selected branch/changeset/label. Now it's fixed.

Alpha new

All platforms - PlasticX: Implemented Branch Explorer display options.

Included the following options in the Branch Explorer:

* Display branches: Allows to enable/disable the visualization of branches.

* Display full branch names: Display the full-path/name-only for child branches (/main/new-feature/task5531 vs task5531).

* Display merge links: Allows to enable/disable the visualization of merge links.

* Display cross-branch changeset links: Allows to enable/disable the visualization changeset parent links that start in a branch and end in a different branch.

* Display labels: Allows to enable/disable the visualization of labels.

* Display branch task info: If enabled, Plastic SCM the task info from the issue tracker next to the branch name. If Plastic SCM is not connected to an issue tracker, the branch description is displayed.

We also improved the text layout when the option "Display branch task info" is enabled. The branch name is displayed in bold text and the task info is displayed on grayed smaller text, to improve readability.

See it in action:

Alpha new

All platforms - PlasticX: Visual feedback when cutting items

When cutting items from the workspace explorer view, now there is a transparency effect in the icon of the elements that have been cut:

Also, now you can clear the cut elements by pressing the Escape key.

Alpha new

PlasticX: Support over 100 image formats for Image Differences.

We added ImageMagick support for our "preview generators". That means that now we can display differences for over 100 major image file formats .

Alpha new

All platforms - PlasticX: Updated behavior of show shelves view button

We updated the behavior of the "Show shelves" button in the pending changes view. Now, when the view is visible, the button is activated, and clicking on it again will close the view.

Alpha new

All platforms - PlasticX: Improved keyboard shortcuts

We added a new shortcut in Workspace Explorer: now you can use Shift+Ctrl+S in Windows/Linux, or Shift+Cmd+S in Mac, if you want to quick access Open In Explorer

We also exchanged shortcuts for Open and Checkout operations:

Open: Shift+Ctrl+O in Windows/Linux, Shift+Cmd+O in Mac

Checkout: Ctrl+O in Windows/Linux, Cmd+O in Mac

Alpha new

All platforms - PlasticX: Tabs styling

Tab styling has been modified to improve visibility of selected item and have a better look and feel on high resolution screens

Alpha bug

All platforms - PlasticX: Cannot close preferences without signing in

An issue that affected enterprise users that uses SSO Authentication could not close the preferences window unless the user is re-authenticated.

Alpha bug

All platforms - PlasticX: Fixed context menu display on empty tables

The context menu is needed to be displayed in empty tables to allow create new items. This functionality has been provided using the right click over the table body region and it's disabled from the table header region.

Public

11.0.16.6683: Mar 10 2022

New

All platforms: Plastic 11 is out!

Plastic SCM reaches major version 11. It's been almost 16 years since Plastic initial release and here we go for another big milestone.

== What was released during the last year ==

* Plastic Server and Command Line fully ported to the newest .net framework. Good bye to Mono and .Net framework, hello to .net 6! :)

* Added plastic links support for Code Reviews. 10.0.16.5338

* Added plastic links support for Gluon in macOS. 10.0.16.5432

* New Code Review experience in WebUI. 10.0.16.5338

* Huge merge calculation performance improvements in the server. 10.0.16.5362

* Greatly improved workspace metadata format for great performance. 10.0.16.5574

* TeamCity plugin: Versioned settings. 10.0.16.5574

* Wildcard support in repo trigger filters. 10.0.16.5615

* Improvements in visual studio plugin. Sln and csprojs not modified anymore. 10.0.16.5664

* Version auto-upgrade for the client. 10.0.16.5668

* Checkin performance greatly improved by setting multi-thread defaults. 10.0.16.5710

* Improved Active Directory security and performance. 10.0.16.5816

* Wake On Lan support added to clients. 10.0.16.5859

* Gluon: custom actions for changesets. 10.0.16.5859

* Dynamic workspaces released in alpha. Dynamic workspaces for windows

* GitSync now supports LFS when syncing from Github Enterprise servers, GitLab and Bitbucket! 10.0.16.5975

* Added support to install Plastic SCM in Debian 11. 10.0.16.6112

* Triggers can now run from Global Config. 10.0.16.6141

* Single Sign On support in Plastic Cloud.

* Added parallel download for big files. Much faster workspace updates. 10.0.16.6241

* Greatly reduced memory footprint during workspace update. 10.0.16.6241

* Plastic Cloud can now archive revisions. 10.0.16.6241

* New cross-platform desktop GUIs released in alpha. 10.0.16.6363

* Support for Visual Studio 2022. 10.0.16.6419

* New "cm api" client-side REST API replaces the old plasticapi and introduces tons of improvements, including support for partial workspaces.

* Added --machinereadable flag to many commands to ease automation. 10.0.16.6443

* And the new cross-platform GUI made official for macOS and Linux. 10.0.16.6621

* Greatly improved "pending changes" performace. 10.0.16.6621

* Visual Studio 2022 plugin gains CodeLens support. 10.0.16.6656

Besides hundreds of bugfixes, usability improvements, better localization in asian languages, and many more.

New

Windows - Visual Studio 2022 plugin: VS CodeLens improvements

This new release improves the relevant information shown in CodeLens for an annotated element.

Fixes the management of local changes, showing them as the most relevant ones if exist.

Shows incoming changesets available in the codelens message

Improves the history list ordering it by date and tagging current changeset and incoming changes with representative icons.

Take a look to it!

Note: This feature is installed as part of the Visual Studio 2022 Plastic SCM extension if you select the option during the Plastic SCM installation process. Once installed, the Plastic SCM CodeLens provider can be enable/disable from Tools > Options > Text Editor - All Languages - CodeLens > Show Plastic SCM

New

All platforms - Server: Migrate database from SQLServer/MySQL to Jet

We enabled the database migration from supported SQL backends (MySQL and SQLServer) to Jet using the server's WebAdmin utility.

We plan to deprecate the SQL backends soon. So, if you're still running your on-prem Plastic Server with MySQL or SQLServer as database backend, we strongly recommend to migrate to Jet backend soon (our own embedded, super-fast repo storage).

To access to the migration tool, just open the Plastic Server's WebAdmin (Usually on http://localhost:7178 ) >> Configuration >> Repository Storage ). Screenshot

And then, click on Change storage

(You will only see this option if your server is using MySQL or SQLServer as database backend)

And finally, while migrating, you should see a screen like this:

New

All platforms - Plastic, Gluon: Modified message when adding ignored rules

We updated the text in the check box inside the ignored rules panel.

Now it's clearer that the rules will be applied only to the user's local workspaces, and not to everyone's.

Bug

All platforms - Web UI: Fixed issues with repo names with parenthesis

Fixed an issue where WebUI would hang when it encountered repo names that include parenthesis.

Bug

All platforms - DevOps: Trunkbot auto enqueue branches when new changes in dst branch.

Back in release 10.0.16.6621 , we published this new feature: If new changesets reach your trunk branch (i.e., '/main' branch) while a merge changeset -changes of your own branch and the trunk branch- is being built & tested, trunkbot would queue again the branch, repeating all the branch processing, including the last changes from trunk branch in a new merge changeset.

But we missed to queue the branch again in the scenario where the trunkbot activates the "Process reviewed branches only" setting. Now it is fixed and affected branch will be queued again also with this configuration.

Remember enabling the auto-queue branches that failed due to changes detected in the trunk branch in the trunkbot configuration:

Bug

Server: Do not stop accepting client connections if something fails.

The connections accept loop was protected in the server so if there is something wrong handling a client connection, the whole accept thread doesn't stop working.

Alpha bug

All platforms - PlasticX: The syntax highlight was lost switching the diff mode.

When switching from "Text differences" to "Semantic differences" and vice versa, the syntax highlight colors were lost for text editors. Now it's fixed.

Alpha bug

All platforms - PlasticX: The GUI was stuck when pasting text in the right diff editor.

In this scenario, the GUI got stuck sometimes:

* Copy text to the clipboard from another text source.

* Go back to Plastic SCM.

* Select Ctrl + A to select all text in the diff's right editor.

* Hit Ctrl + V to paste that text.

Now that scenario works fine.

Public

10.0.16.6656: Mar 03 2022

New

Windows - Visual Studio 2022 plugin: Show semantic information in CodeLens

This new release enhances the plugin for Visual Studio 2022 showing semantic information above every class, method or property in your Plastic SCM projects!

The CodeLens annotations above every class, method or property in files controlled by Plastic SCM will show semantic information about its last change. This includes the change type, user who modified it, and change date.

Keep in mind that this feature will only show up in semantic-available files (C#, C, C++) that are in a Plastic SCM Workspace.

See it for yourself!

This new feature will be installed as part of the Visual Studio 2022 Plastic SCM extension if you select the option during the Plastic SCM installation process. Once installed, the Plastic SCM CodeLens provider can be enable/disable from Tools > Options > Text Editor - All Languages - CodeLens > Show Plastic SCM

New

Windows - Visual Studio 2022 plugin: Show semantic history in CodeLens

This new release takes the CodeLens information in the plugin for Visual Studio 2022 a step further. When you create the Plastic SCM data point above a method, property or type, it will display a list of up to 10 of the last changes in that element. This leverages the semantic technologies in Plastic SCM, showing only changes in the file that affect the annotated element.

Keep in mind that this feature will only show up in semantic-available files (C#, C, C++) that are in a Plastic SCM Workspace.

Take a look here!

This new feature will be installed as part of the Visual Studio 2022 Plastic SCM extension if you select the option during the Plastic SCM installation process. Once installed, the Plastic SCM CodeLens provider can be enable/disable from Tools > Options > Text Editor - All Languages - CodeLens > Show Plastic SCM

New

Command-line client: Pagination/sorting added to 'cm find' command.

Every find object now complies with pagination, defining a 'limit' and an 'offset' to manage the result size and starting point. In addition, some objects (branch, changeset, label, review) will comply with 'order by' clause. Please, kindly refer to the 'cm find --help' and 'cm help showfindobjects' for further details.

For instance, the following command:

cm find label "where owner='me' limit 10 offset 20" 

Displays the 10 labels starting from the 21st where I am the owner.

Another example could be:

cm find branches "where owner='me' order by branchname desc limit 10"

Displays the first 10 branches I created, sorted by name in descendant order.

New

GitSync: Added '--gitpushchunk' parameter to export Plastic repositories to Git in smaller chunks.

This parameter allows to process the push operation (exporting changes from Plastic to Git) in chunks of a certain number of changesets instead of sending all the changes in one single package.

This is only useful for huge repos to avoid network or package size related issues or just for debugging purposes. It uses chunks of 1000 changesets if no value is specified.

cm sync myrepo@server:8087 git https://github.com/rubarax/repo.git --gitpushchunk
cm sync myrepo@server:8087 git https://github.com/rubarax/repo.git --gitpushchunk=100
Bug

Windows - Plastic: fixed Browse Repository view on case insensitive filesystems

Browsing the repository was not working correctly because we were failing to distinguish items where the name differed only in case. E.g., "FILE" and "file". This is because we were using the local filesystem path comparison rules, which on Windows meant we were doing a case insensitive comparison.

We fixed it to do a case sensitive comparison.

Bug

All clients: trigger environment variables are now properly set.

For before/after update triggers, PLASTIC_INITIAL_CHANGESET and PLASTIC_FINAL_CHANGESET environment variables were swapped, considering the final changeset as the origin and vice versa when using cm ci --update command. It was also noticeable when clicking the "Update workspace" button on the Incoming Changes view.

Now it is fixed.

Bug

All platforms - Plastic, PlasticX, Gluon: fixed exception thrown when parsing help panel markup

Malformed release note markup was causing the GUI to throw an exception when showing the help panel. We protected against that.

Bug

All platforms - Plastic: Changed Plastic alpha version notification text

The notification text to try the new GUI has been improved.

Bug

Windows - PlasticFS: Fix 'The file is being used by another process' error.

We improved the ability of PlasticFS to work with antimalware software. Before, PlasticFS were unable to access some files from time to time, showing an error message like the following one:

Can't open locally stored file
There was an error opening file 'library.dll' from the local cache: The process cannot access the file 'C:\Users\john\AppData\Local\plastic4\plasticfs-storage\plasticfs-workspace-storage\plasticfs-wk-xxx\xxx\xxx' because it is being used by another process.
Bug

Cloud Server: Fixed deadlock requesting branches of a deleted repo.

The cloud server uses file & memory locks to handle concurrent access to the Jet files. If the file lock failed because the repository was deleted from disk, then the memory lock was acquired forever a no other thread could acquire it.

This was a corner scenario since it's very uncommon to run calls against a repo that was deleted from disk.

Alpha bug

All platforms - PlasticX: fixed the recycling in the pending changes tree

We fixed the recycling in the tree for the pending changes view. Now, each time you refresh the view, the cell controls for the expander column in the tree are recycled instead of creating them again.

Alpha bug

All platforms - PlasticX: Home icon now drawn on switch to branch with new changesets

We fixed the switch to branch functionality on the Branch Explorer view so that it correctly updates the Home icon in the case where changes were made on the target branch since the last time the view was refreshed.

Alpha bug

All platforms - PlasticX: Branch explorer search didn't focus branches properly.

There was an issue in the way branches rectangles were calculated, so when you search for a branch in the Branch Explorer, and the zoom level was big, the branch was not focused properly. Now it's fixed and the search was as expected.

Alpha bug

All platforms - PlasticX: Changed Switch workspace shortcut

The Switch workspace context menu shortcut has been changed from:

* Windows & Linux: Ctrl+W to Shift+Ctrl+W

* Mac: Cmd+W to Shift+Cmd+W

Alpha bug

Windows - PlasticX: Don't clear query history when using old GUI

We had a compatibility issue between the classic Plastic GUI and the new PlasticX GUI (alpha): when running a query from one of the GUIs, all the query history from the other GUI was removed. Now both applications are compatible, and the query history is kept when changing between them.

Alpha bug

All platforms - PlasticX: Fixed a memory leak in pending changes view.

Fixed a bug that caused the memory to grow every time the Pending Changes view was refreshed.

Alpha bug

macOS - PlasticX: Fix missing keyboard shortcut in the main menu

Actions -> "Switch To" keyboard shortcut was missing, this is now fixed

Alpha bug

All platforms - PlasticX: Fix keyboard shortcut not working in changesets view

We fixed a keyboard shortcut in changesets view: when trying to diff several changesets, keyboard shortcut was not working

Public

10.0.16.6621: Feb 24 2022

New

All platforms - PlasticX: New GUI Announcement

You're invited to check out the new Plastic GUI - a sneak peek at the work we've been doing to continuously improve the Plastic experience for all users, regardless of experience level. The new Plastic GUI is now the default GUI for MacOS and Linux. It is also discoverable in the bottom left corner of the Windows GUI.

This new GUI is cross-platform, includes a dark theme and provides better syntax highlighting. Many more improvements are coming soon, including Gluon support! Try out the new experience and switch back to the Legacy GUI at any time.

To try out the new GUI simply click on the "Switch to new GUI" text near the bottom of the side panel, as shown in these screenshots:

Switch to new GUI button Linux:

Switch to new GUI button macOS:

Switch to new GUI button Windows:

Welcome to new GUI:

You can switch back to the legacy GUI at any time by selecting the option shown here:

Switch to legacy GUI:

New

Command-line client: Updated the Spanish command-line help for several commands.

We keep on updating the Spanish documentation of the command-line help. These are the commands whose Spanish documentation has been completely updated on this round:

* log

* ls

* manipulateselector

* merge

* attribute create

* attribute delete

* attribute edit

* attribute rename

* attribute set

* attribute unset

* branch create

* branch delete

* branch history

* branch rename

* branch showmain

* branch showmerges

* repository

* repository add

* repository create

* repository delete

* repository list

* repository rename

* trigger

* trigger create

* trigger delete

* trigger list

New

All clients: The performance of the status operation was improved again!

The overall time of the status operation is a 60% faster. This is only super-noticeable with huge workspaces (>4M of files), when the watcher is enabled and after the first status runs. Otherwise, the time spent in disk operations makes the improvement less noticeable.

After all the improvements done, the status time goes from 7.1s to 2.7s!

The tests were done:

* using a workspace of 4011530 files, 264143 directories and 264 GB.

* in an e2-standard-8 (Google Cloud) instance with a debian-10 image and a SSD persistent disk.

New

Command-line client: Changelist info is displayed along with the controlled changes in status command

When using --changelist options in status command, now it shows at the top of every grouped section of changes the information regarding the changelist owning these changes. The "--machinereadable status" option now works along with --changelist.

For instance: considering a workspace with two files (BoxCollider.cpp, and StartGameBtn.cpp), each one added to its corresponding changelist (Physics, GUI), the following command:

cm status --changelist=Physics

Will display something similar to this as far as there is a controlled change in BoxCollider.cpp file:

/main@VideogameEngine@localhost:8084 (cs:1 - head)

Changelist: Physics:Every change related to physic calculations in the engine
Changed
Status         Size       Last Modified    Path
Checked-out    7 bytes    4 minutes ago    BoxCollider.cpp

And the following command...

cm status --changelist=Physics --machinereadable --fieldseparator=_ --startlineseparator=. --endlineseparator=,

.. will display something similar to this as far as there is a controlled change in BoxCollider.cpp file:

.STATUS_1_VideogameEngine_localhost:8084,
.CHLIST_Physics_Every change related to physic calculations in the engine,
.CO_C:wkspacesVideogameEngineWKBoxCollider.cpp,
New

Command-line client: Allow creating multi-line comments

Allows the use of the escape sequences 'n' and 'rn' to be used in checkin comments to generate line returns. Previously these would not be interpreted as escape sequences and would be included literally in the comment.

New

Command-line client: Allow the '--xml=output_file' parameter in the 'cm find' command.

Before, you needed to specify '--xml --file=output_file' to print the find result to a file. Now, you can just use '--xml=output_file' like other commands do.

New

All platforms - DevOps: Trunkbot auto enqueue branches when new changes in dst branch.

Before this version, if new changesets reach your trunk branch (i.e., '/main' branch) while a merge changeset -changes of your own branch and the trunk branch- is being built & tested, it won't be possible to merge the branch.

Now you can set up your Trunkbot configuration to queue the affected branch again automatically, and hence repeating all the branch processing, including the last changes from trunk branch in the merge changeset.

You can enable this feature in the mergebot configuration:

Bug

Windows - Plastic: Improved usage with external data (archived revisions).

Before, the first update run with archived revisions asked for the storage location with multiple GUI dialog windows at the same time. Moreover, this dialog was shown once per file which was annoying when you just wanted to skip downloading those files.

Now, it only shows one dialog window at a time. If you enter the right storage location in the first dialog, you are not bothered with more dialogs, and everything is downloaded as expected. On the contrary, if you cancel it, you are not asked again for other revisions archived during the same operation.

Bug

Plastic Drive - Error mounting this changeset

Before, the 'Mount this changeset in Plastic Drive' option failed showing the following error message: Unable to load DLL 'dokan1.dll'.

Now, Plastic Drive has been upgraded to use a newer version of Dokan, fixing the issue. You can download it from here:

https://github.com/dokan-dev/dokany/releases/download/v1.4.1.1000/DokanSetup.exe

Alpha new

All platforms - PlasticX: Enterprise configuration dialog has no margins

Margins added to enterprise configuration dialog.

Alpha new

All platforms - PlasticX: Launch Gluon enabled in onboarding

We have enabled the Launch Gluon button in the onboarding dialogs for PlasticX. Currently it launches the official Gluon release. In the future it will launch GluonX of course!

Alpha new

Al platforms - PlasticX: save revision enabled for History and Browse Repository views

You can now save a revision to disk from the History and Browse Repository views by selecting the context menu item.

Alpha bug

All platforms, PlasticX: Fixed miscellaneous issues in Branch Explorer view.

* When searching, with the "Only relevant" option enabled, the highlighted branch lost the changeset parent link draws. Now it's fixed.

* Clicking on the changeset parent link draws fired an unwanted "changeset selected" event. Now it's fixed.

* A user reported in the forum that using the "Only relevant" button moved the branch explorer away from the selection. Now it's fixed. The following rules are used to determine how to maintain the relative position:

** If the "home" changeset is visible on the screen it maintains its relative position.

** If there is a selected changeset, it maintains its relative position. If the selected changeset is not relevant, its relevant parent is used.

** Otherwise, the most right visible changeset is used to maintain the relative position.

* When navigating changesets with keys in the branch explorer, sometimes a changeset that is not visible (but it's near the clip edges) is not made visible. Now it's fixed.

* The attributes view was recalculated when clicking an object, even if it was already the selected object. Now it's fixed.

Alpha bug

All platforms - PlasticX: fixed diff window files panel

Diff window panel files panel was not filling the available space, this is now fixed.

Alpha bug

All platforms - PlasticX: Fix filter not working properly in Branch Explorer

After filtering a branch in the branch explorer, if you changed to another workplace the previous filter remained in the next workplace

We fixed this issue, and now the branch explorer filter works properly

Alpha bug

All platforms - PlasticX: Fixed default focus selection in some dialogs

When a dialog is displayed the first TextBox must be selected with proper focus.

Alpha bug

All platforms - PlasticX: Other Options in preferences give an index out of range error

Fixed issue caused by missing tag on client.conf.

Reported on Other Options in preferences give an index out of range error

Alpha bug

All platforms - PlasticX: Transparent buttons issue

Fixed issue in which buttons from incoming changes notification appears transparent when hovering or clicking it.

Alpha bug

All platforms - PlasticX: fixed exception when selecting empty search result

We fixed an exception that was thrown if you clicked on an empty search result on the Workspace Explorer view.

Alpha bug

All platforms - PlasticX: Files overlay misaligned on 4k displays

Fixed an issue that causes the files overlay on workspace explorer to be misaligned when the display has a to be scaled, a common case for 4k displays.

Public

10.0.16.6573: Feb 17 2022

New

Server: Added a new before-merge variable for the destination branch

The environment variable PLASTIC_MERGE_DESTINATION_BRANCH has been added to the "before-merge" trigger. It contains the name of the destination branch for the merge.

Bug

Server: Support Okta LDAP server for authentication.

The Plastic server didn't support an Okta LDAP server. All the user credentials (email + password) were rejected when you configure the server to use an Okta LDAP server. Now it works.

Bug

All Platforms - Server: Socket error code platform-independent

There were some logs writing different socket error codes depending on the platform. Now they will display the same code regardless of the platform where they were triggered from.

Bug

Server: Fixed branch creation from a deleted parent branch.

The server could create branches using a parent branch that was previously deleted. This led to "The specified branch xxx can't be found." errors when listing the repository branches of showing the branch explorer.

This code is properly protected now, and it will fail when trying to create a new branch using a parent branch that doesn't exist anymore.

Alpha new

All platforms - PlasticX: upgraded to .NET 6.0

We now build PlasticX on .NET 6.0. Previously it was built on .NET 5.0.

In addition to general improvements to stability and performance, this upgrade improves a specific stability issue when applying syntax highlighting in the text editor.

Public

10.0.16.6559: Feb 15 2022

Alpha new

All platforms - PlasticX: Icons upgraded for 4k screens

Icons have been updated to better support 4k or higher resolution screens

Alpha new

All platforms - PlasticX: Improved the status bar UI

* Changed the status bar background color.

* Now the status bar is able to notify, info, success, warning, error, and progress messages.

* The main operations (check-in, undo, update workspace ... ) now notify an ephemeral (4 seconds) success message in the status bar when they finish successfully:

Alpha new

All platforms - PlasticX: made version number selectable in About window

You can now select and copy the version number in the PlasticX About window.

Alpha new

All platforms - PlasticX: Preferences dialog redesign

The preferences dialog has been redesigned to a vertical layout as it provides a cleaner look.

Alpha bug

All platforms - PlasticX: Tab navigation fixed for all app views

All app views and windows were reviewed to follow the proper order of the elements tab navigation, from top to bottom and left to right.

Alpha bug

macOS - PlasticX: Fixed an issue when diffing C files

There was an issue that caused a 'libclang can't be loaded' error when launching a semantic diff for C language. We fixed this issue, and now the semantic diff is available for C files on macOS.

Public

10.0.16.6538: Feb 10 2022

New

All platforms - Plastic, PlasticX: support environment variables in custom tool configuration

You can now include environment variables when defining custom actions that can be launched from the context menu.

See the documentation about configuring external tools .

* Example:

In the configuration file 'externaltools.conf':

item | My custom tool | %PATH_TO_TOOL_EXE% | @object

This will create a menu item "My custom tool" under the "Open" menu of the Workspace Explorer which will open the selected path using the executable pointed to by the environment variable "PATH_TO_TOOL_EXE".

You can add multiple external tools - just add a line to the config file for each one.

New

All platforms - Plastic, Gluon: Unity files considered as text by default

We added the following extensions to our list of known text extensions, and now they will be considered as text files by default:

.anim
.asmdef
.asset
.controller
.giparams
.mat
.meta
.mixer
.overrideController
.physicMaterial
.playable
.prefab
.scenetemplate
.shadergraph
.shadervariants
.signal
.spriteatlas
.unity
.uss
.uxml

Also, the following file will be considered as a binary file by default:

LightingData.asset

Remember that you can override this behavior, adding your custom extensions, by modifying your filetypes.conf file. Learn more about it here: Custom file types

New

All platforms - All clients: The status operation performance has been improved by changing how the stats times are tracked (again :).

This is only noticeable in super-huge workspaces (> 4M of files).

The overall time of the status operation is a 10% faster, but this is only noticeable when the watcher is enabled and after the first status run.

In this particular case the 'cm status' went from 6s to 5.4s.

New

Command-line client: Updated the Spanish command-line help for several commands.

We keep on updating the Spanish documentation of the command-line help. These are the commands whose Spanish documentation has been completely updated on this round:

* api

* findchanged

* findcheckouts

* findprivate

* getconfig

* getfile

* getrevision

* getstatus

* gettaskbranches

* getworkspacefrompath

* help

* history

* iostats

* issuetracker

* licenseinfo

* linktask

* listusers

* location

* lock

* lock list

* lock unlock

* wi

New

All Platforms - Server: Improved the plasticd shell start up time

plasticd shell uses communication files to interact with the server. The problem came when these files became too big (> 1GB). It could take more than 10 min to connect with the server.

Now, it does a smart reading starting from the end of the communication file, so it doesn't depend on the size of the file. It always takes around 1-2 seconds to connect.

Bug

macOS - Server: the server in macos was not gracefully shutting down when pressing the intro key.

In other OS it was allowed to stop the server in console mode (plasticd --console) when inputing an empty command (by pressing intro with no text input) but in macos it was displaying an error detailing "Socket is not connected". Now it is fixed and working the same as in Windows and Ubuntu platforms.

Bug

Visual Studio plugin: Ignored files are no longer processed when adding to source control

We detected the "Add to source control" operation wasn't respecting ignored files. In addition, this operation will now perform an auto-checkin depending on the below user preference.

Tools -> Options... -> Source Control -> Plastic SCM settings -> Preferences -> Other options

"Checkin files and directories when adding to source control"

Bug

Windows - Wwise plugin: Improved performance for status

We noticed an issue in the Wwise plugin that caused 'cm shell' commands to perform poorly when their output was long (>8 KB).

It's fixed now, so these long commands -particularly the 'status' command- will run as fast as if you'd run them in a terminal.

Bug

All Platforms - GitSync: Fixed localization errors during GitSync operation.

The operation could show messages that didn't make sense because it used the wrong localization keys.

Bug

Windows - VSPlugin: Removed deprecated option 'Change Source Control...' from File menu.

Bug

Windows - Plasticfs: Fixed the ISPC compilation in dynamic workspaces.

It seems the ISCP compiler uses the FileInfo.IndexNumber field but plasticfs didn't fill this field when returning the file FileInfo fields.

Now, this field is properly assigned (it's just a reference number for the file) and ISCP can complete the build without issues.

$ ispc simple.ispc -o simple.obj
Warning: No --target specified on command-line. Using default system target "avx2-i32x8".
Alpha new

All platforms, PlasticX: Improve the button look and feel.

We improved the button style across the application. Now the buttons always have a border and they are lighter in the light theme. This is how they looks now:

We additionally made the Checkin Button more noticeable (using primary blue color) in the pending changes view, to remark that it's the main action.

Alpha new

All platforms, PlasticX: UI boosts.

* Reduced the width of the pipe in the sidebar.

* Choose a better icon for sorting in the trees/lists.

* Improve scrollbar style.

* Redesign the incoming-changes notification.

The following screenshot shows most of the changes.

Other UI changes:

* Improved the tooltip style reducing padding.

* Unify all dropdown controls to have the same margins.

* Convert text-based "Close" buttons to icon-based buttons in side-views.

Alpha bug

All platforms - PlasticX: Tab navigation has been fixed for some dialogs

Tab navigation were not following the custom UI elements order in some dialogs. The custom navigation order is defined as from left to right and from top to bottom, so when users use tab key to navigate in any app dialog this order has to be followed.

Alpha bug

All platforms - PlasticX: Fixed application of branch attributes

When a branch attribute was selected from the Name combobox the first default value was not loaded in Values combobox:

This fix updates the Values combobox selection with the first element found in the list.

Public

10.0.16.6505: Feb 03 2022

New

Command-line client: Updated the help for the cm archive command.

We removed the --comment option from the help of the cm archive command because it's not available.

If you want to assign a comment to the 'archive' operation, please use the -c option.

For example:

 cm archive bigfile.zip#br:/main -c="volume00"
Bug

All Platforms - GitSync: Protected some null errors when synchronizing with git repositories.

Bug

All Platforms - Client: Fixed a "repository mounted twice" error during checkin.

This error was only reproduced if there were multiple Xlinks pointing to the same repository in the workspace.

It also only happened if before-clientcheckin triggers existed for that repo. Otherwise, it was not reproduced at all.

Bug

All Platforms - CLI: status was not filtering properly by changelist

The option to group and filter controlled changes by changelists was not displaying only those changes under the changelist. Now it is fixed.

Having two controlled files in your workspace (file1.txt and file2.txt), each one under a different changelist (chlist1 and chlist2).

"cm status --changelists" will show something similar to the following:

Changed
    Status         Size       Last Modified    Path
    Checked-out    5 bytes    1 hour ago       file1.txt

Changed
    Status         Size       Last Modified    Path
    Checked-out    7 bytes    1 hour ago       file2.txt

while "cm status --changelist=chlist1" will display something like

Changed
    Status         Size       Last Modified    Path
    Checked-out    5 bytes    1 hour ago       file1.txt
Alpha bug

All platforms - PlasticX: Improved exception handling

We detected some situations in which an exception could cause the application to crash. We fixed these scenarios to catch the errors and show them in a message box, and then continue with the application, instead of unexpectedly closing it

Alpha bug

All platforms - PlasticX: Fixed 10% CPU usage in the Attributes panel

Displaying the Branch Explorer view caused Plastic X to report a constant 10% CPU usage in the Task Manager. This CPU consumption was caused by an animated progress bar placed in the Attributes panel. Although that progress bar was hidden, it continued invalidating the panel, causing that CPU consumption. Now it's fixed.

Alpha bug

All platforms - PlasticX: Fixed an issue when creating dynamic workspaces

When creating a workspace, if the user selected the "Create workspace from this repository..." option from the repositories view, the dynamic workspace checkbox was being ignored, and we were always creating normal workspaces. We fixed this issue, and now the checkbox works as expected

Alpha bug

All platforms - PlasticX: draw Home icon after switch to branch

Fixed an issue where the Home icon wasn't being drawn after switching to a branch or label.

Public

10.0.16.6479: Jan 27 2022

New

Windows - Command line client: netcore-compiled command line client for Windows!

From now on, the command line client ( cm ) will be a netcore-based application, replacing the netframework-based command line client.

This also unlocks new cm subcommands that were just available for netcore flavor, like cm api subcommand (see release note below).

Enjoy!

New

Windows - Plastic SCM API: The Plastic SCM API is now embedded in the CLI!

We created a new cm api command that starts the Plastic SCM API. It allows the same arguments as the old plasticapi.exe application (we removed this deprecated executable from the installer).

The previous versions (10.0.16.6419, 10.0.16.6443) already had this cm api command, but just for Linux and macOS. From now on, Windows will have also this command available.

Find more info about it via the command help:

cm api --help

And see more usage details at: https://www.plasticscm.com/documentation/restapi/plastic-scm-version-control-rest-api-guide

New

All platforms - Plastic SCM API: The Checkin endpoint now supports partial workspaces

We extended the Checkin endpoint in the Plastic SCM API to support partial workspaces. You will now be able to perform checkin operations in a partial workspace using this client-side REST API.

Just launch the cm api command and perform a POST request to endpoint /api/v1/wkspaces/{wkName}/checkin with a JSON body like this:

{
    "paths": ["path-to-my-file", "path-to-another-file"],
    "comment": "my current changes for my task"
}
New

All platforms - Plastic SCM API: New endpoint to retrieve file info is now available

We created a new endpoint in the Plastic SCM REST API to retrieve information from a file. You will now be able to perform fileinfo operations in your workspace, using this client-side REST API.

Just launch the cm api command and perform a GET request to endpoint /api/v1/wkspaces/{wkName}/fileinfo/path-to-the-file-to-get-info .

New

All platforms - Plastic SCM API: The Update endpoint now supports partial workspaces

We extended the Update endpoint in the Plastic SCM API to support partial workspaces. You will now be able to perform update operations in a partial workspace using this client-side REST API.

Just launch the cm api command and perform a POST request to endpoint /api/v1/wkspaces/{wkName}/update .

New

All platforms - Plastic SCM API: The Switch endpoint now supports partial workspaces

We extended the Switch endpoint in the Plastic SCM API to support partial workspaces. You will now be able to perform switch operations to branch or changeset in a partial workspace using this client-side REST API.

Just launch the cm api command and perform a POST request to endpoint /api/v1/wkspaces/{wkName}/switch with a JSON body like this:

{
    "objectType": "branch",
    "object": "main"
}
New

All platforms - Plastic SCM API: New revert endpoint for regular and partial workspaces

We created a new Revert endpoint in the Plastic SCM API. You will now be able to perform revert operations in your workspace, partial or otherwise, using this client-side REST API.

Just launch the cm api command and perform a POST request to endpoint /api/v1/wkspaces/{wkName}/revert/{my_item_to_revert} with a JSON body like this:

{
    "changeset": 28
}
New

All platforms - Plastic SCM API: New partial configure endpoint for partial workspaces

A new Partial Configure endpoint has been added to the Plastic SCM API. Using this client-side REST API you will now be able to perform partial configure operations in your partial workspace.

Just launch the cm api command and perform a POST request to endpoint /api/v1/wkspaces/{wkName}/partialconfigure with a JSON body like this:

{
    "instructions": [
        {
            "path": "/",
            "action": "unload"
        },
        {
            "path": "/",
            "action": "load"
        }
    ]
}
New

All platforms - Plastic SCM API: New merge endpoint for regular workspaces

We created a new Merge endpoint in the Plastic SCM REST API. You will now be able to perform merge operations in your workspace, using this client-side REST API. This operation doesn't support conflict resolution at the moment.

Just launch the cm api command and perform a POST request to endpoint /api/v1/wkspaces/{wkName}/merge with a JSON body like this:

{
    "sourceSpec": "br:/main/mybranch"
}
New

All platforms - Plastic SCM API: New endpoint to undelete removed elements is now available

We created a new undelete endpoint in the Plastic SCM REST API. You will now be able to perform undelete operations in your workspace, using this client-side REST API.

Just launch the cm api command and perform a POST request to endpoint /api/v1/wkspaces/{wkName}/undelete with a JSON body like this:

{
    "revSpec": "rev:itemid:4689#cs:23",
    "path": "my_file"
}
New

All platforms - Plastic SCM API: New create shelve endpoint for regular workspaces

We created a new Create Shelve endpoint in the Plastic SCM API. You will now be able to create a new shelve from changes in your workspace, using this client-side REST API.

Just launch the cm api command and perform a POST request to endpoint /api/v1/wkspaces/{wkName}/shelvesets with a JSON body like this:

{
    "comment": "my amazing shelve comment",
    "paths": ["path-to-my-file", "path-to-another-file"]
}
New

All platforms - Plastic SCM API: New endpoint to apply shelvesets is now available

We created a new Apply Shelve endpoint in the Plastic SCM API. You will now be able to apply a shelve in your workspace, using this client-side REST API.

Just launch the cm api command and perform a PATCH request to endpoint /api/v1/wkspaces/{wkName}/shelvesets/31 to apply shelve 31.

New

All platforms - GitSync: main branch support improvements

Now cm sync autodetects if your Git repository uses "main" or "master" as the main branch.

You can explicitly tell it to use any branch as main branch with --mainbranch :

cm sync REPO@SERVER git https://github.com/GITREPO.git --mainbranch=trunk
New

All platforms - Client: cm update now supports a machine readable format

To obtain an easily parseable output, just use the --machinereadable option:

$ cm update --machinereadable --verbose

<C:/workspace/CreatedDir>
<U:/workspace/UpdatedDir>
<D:/workspace/ModifiedDir>
<C:/workspace/createdfile.txt>
<U:/workspace/updatedfile.txt>
<M:/workspace/modifiedfile.txt>
<D:/workspace/deletedfile.txt>
<SAME_REV:/workspace/untouchedfile.txt> # Only in verbose mode.

Remember you can override the default separators by using formatting options. You might need to double quote them depending on your shell:

$ cm update "--startlineseparator=<" "--endlineseparator=>" "--fieldseparator=:"
New

All platforms - Client: cm partial update now supports a machine readable format

To obtain an easily parseable output, just use the --machinereadable option:

$ cm partial update --machinereadable

STAGE Plastic is updating your workspace. Wait a moment, please...
STAGE Updated 0 bytes of 41.68 MB (0 of 3 files to download / 0 of 3 operations to apply) /file.txt
...

Remember you can override the default separators by using formatting options. You might need to double quote them depending on your shell:

$ cm partial update "--startlineseparator=[" "--endlineseparator=]" "--fieldseparator=:"

[STAGE:Plastic is updating your workspace. Wait a moment, please...]
[STAGE:Updated 0 bytes of 41.68 MB (0 of 3 files to download / 0 of 3 operations to apply):/file.txt]
...
New

All platforms - All clients: The status operation performance has been improved by changing how the stats times are tracked (again :).

This is only noticeable in super-huge workspaces (> 4M of files).

The overall time of the status operation is a 15% faster, but this is only noticeable when the watcher is enabled and after the first status run.

In this case, the 'cm status' went from 7.1s to 6s.

Bug

All platforms - GitSync: The 'cm sync' command (using ssh protocol) returned a wrong exit code (0) when it couldn't connect to the Git server/provider.

The command should return 1 (failed) as exit code when it failed due to any connection issue. This only affected to the ssh protocol.

This could be dangerous when automating stuff because the caller was not aware that something went wrong.

Now it is fixed!

Bug

macOS - Plastic: Fixed onboarding error in Philippines time zone

Previously on Macs if the time zone was set to either Quezon City or Davao City in the Philippines, an error message "Offset must be within plus or minus 14 hours" was shown when creating a workspace during on-boarding.

Bug

All platforms - Server: Fixed how the server accounts for sent traffic.

If you ever open the ChannelCall server log file, you will see complete stats for the methods the clients execute on the server. In these stats, you can find the method name, how many bytes were sent and received, how much time did the writing and reading operations take…

We were accounting for sent bytes (column 'sentb') wrong when sending chunks over 500KB. This is now fixed.

Bug

All platforms - Cloud Server: Fixed a deadlock condition while querying a branch and renaming another branch in the same repo.

We had a race condition that could lead to a deadlock when the calls 'GetBranchInfoByName' & 'RenameBranch' happened at the same time in the same repo with a very specific race condition. The problem got worse because any requests that needed to access to any branch of that repo got infinitely stuck too.

Bug

Linux - Command line client: update operation failing with very old servers

We fixed an incompatibility when issuing a cm update operation with the current cm command line client with a server older than 6.0.16.1311.

Before this version, the cm update operation coud fail with a "Connection reset by peer" error with such an old server.

Now the issue is fixed.

Alpha new

All platforms - PlasticX: smoother panel closing animation

Improved the close animation for the Branch Explorer Options panel and the query views' Properties panel.

Alpha new

All platforms - PlasticX: Improve diff viewer editing performance.

We heavily improved the diff viewer editing performance. See a demo handling a file of 133.442 lines.

Alpha new

All platforms - PlasticX: Use Cascadia Mono as the default font for the source code viewers in Windows platforms.

If the font Cascadia Mono is installed on the machine, it's used as the default font for the source code viewers (diff, annotate, etc ...). Cascadia is a new, modern, monospaced font family that provides better flexibility for text editor experiences. Cascadia Mono was designed for optimal legibility and accessibility. When the font it's not available, Consolas font is used as a fallback. The following image shows the difference between Consolas and Cascadia fonts.

Alpha bug

All platforms - PlasticX: fixed display of servers with underscores in the name

In the server selector combo box in the Repositories view, underscores in server names were not being displayed. We fixed that.

Alpha bug

All platforms - PlasticX: filter/search views after refresh

Fixed an issue where the filter or search wasn't being taken into account after refreshing the view. Now if you type a filter or search while the view is refreshing, the correct items appear when the refresh finishes.

In addition, we fixed a null reference exception that was thrown when you type a filter in the diff window before it's loaded.

Alpha bug

All platforms - PlasticX: Fixed syntax highlight tokens that were transparent.

Using some syntax highlight languages, such as Razor, Markdown ... displayed transparent tokens, so they were not visible. It only happened in the light theme. Now it's fixed.

Alpha bug

All platforms - PlasticX: Greyed items on pending changes side bar

When adding a file or directory through the context menu 'Add to source control' or 'Add directory tree to source control' it was not possible to edit the selection of files or directories on the 'pending changes' side sheet. A side effect is that if a check-in is performed, then no further changes can be included or excluded from the list of pending changes unless the side sheet is closed and reopened.

This issue is now fixed by allowing files or directories to be included or excluded from the 'pending changes' side sheet.

Alpha bug

All platforms - PlasticX: Fix crash creating directory with same name as existing file

When trying to create a file, if the given name already exists as a directory, plastic closed unexpectedly.

The same happens when trying to create a directory with a name that already exists for a file.

For example, if you have a file named Readme.txt, and you create a directory named Readme.txt, it failed.

We fixed this issue, and now you will see a clear error when trying to perform this operation

Public

10.0.16.6443: Jan 20 2022

New

All platforms - Client: cm partial ci now supports machine readable format

To obtain an easily parseable output, just use the --machinereadable option:

$ cm partial ci --machinereadable file.txt | program

Or alternatively:

$ cm partial ci --machinereadable file.txt > /path/to/output.txt
$ cat /path/to/output.txt

CI_START
STAGE  -
STAGE  -  0.00 of 13.89 MB
STAGE Multi-thread checkin -  0.00 of 13.89 MB
...

Remember you can override the default separators by using formatting options. You might need to double-quote them depending on your shell:

$ cm partial ci --machinereadable "--startlineseparator=[" "--endlineseparator=]" "--fieldseparator=:" file.txt > /path/to/output.txt

[CI_START]
[STAGE: - ]
[STAGE: -  0.00 of 13.89 MB]
[STAGE:Multi-thread checkin -  0.00 of 13.89 MB]
Bug

All platforms - all clients: corrected pluralization of time span strings

We changed "1 days/hours/minutes ago" to "1 day/hour/minute ago" throughout all the clients.

Bug

All Platforms - Server: htop application was crashing when displaying View -> Method Stats.

Now it properly displays and updates each available method call.

Alpha new

Linux - PlasticX: enabled FileSystemWatcher for better performance finding pending changes

We enabled the .NET Core FileSystemWatcher in 'PlasticX' Desktop app and cm command line client on Linux. It was already enabled on Windows and MacOS, but now Linux users will benefit from this improvement too.

You should see a significant speed up in detecting changes in the Pending Changes view or using the cm status command.

The speed up will depend on the particular configuration. As an example, with 2000 items in the pending changes view, we saw the search time shrinks from 650ms to 350ms.

Alpha new

All platforms - PlasticX: Items search result panel is now bigger

We made search results panel of the items view wider, to show more of long paths, and taller, to show more items. In fact, the results panel is over 100% bigger than before!

Alpha new

All platforms - PlasticX: UX improvements to Query views.

We made some improvements to the views that have advanced query functionality: the changesets, branches, attributes, labels, shelvesets and code reviews views.

1. We changed the style of the Execute button to make it clearer.

2. Pressing Enter in the query entry field now executes the query.

3. Refreshing the view uses the currently query (rather than the last executed query).

Alpha new

All platforms - PlasticX: File size column now right-aligned

We right-aligned the text in the file size column throughout the application.

Here's how it looks:

Alpha new

Windows - PlasticX: launch PlasticX after auto-upgrade

When a new version of Plastic is available, a notification panel will appear giving you the option of downloading and installing the new version.

Previously, after installing the new version, the official Plastic release would be launched even if you initiated the upgrade from PlasticX. Now, PlasticX will be launched in this case.

Alpha new

All platforms - PlasticX: Added merge explanation view

When applying a merge, now there is a "Merge diagram" button that shows the merge explanation. Here's how it looks:

Alpha new

All platforms - PlasticX: textmate integration is 450% faster.

We reworked AvaloniaEdit's TextMate integration and now is much faster when handling mid/big files and it reduces CPU by 50% when tokenizing files.

Alpha bug

All platforms - PlasticX: Sometimes the diff viewer didn't display the first difference correctly.

Sometimes, when opening a differences window or a code review, the diff viewer didn't navigate to the first difference correctly. Now it's fixed.

Alpha bug

All platforms - PlasticX: Fixed double click event on tables

When double-clicking on a table, we were executing the double-click event even if the user didn't click on a table row. For example, if the user double-clicked on the header of the table, or in the free space at the bottom of it, the selected row would be expanded (or whatever the double-click behavior is expected on that table). This also happened with the right-click.

Now this issue is fixed and the action will only be performed if the user clicked on a row of the table

Alpha bug

All platforms - PlasticX: Fixed unexpected behavior when selecting items on a table

When selecting an item on a table for the first time, we were not managing the table properties correctly, and this was causing issues, such as the inability to execute a shortcut over the selected item, or open the context menu with a right-click.

We fixed this issue, and now the first selection of the table will work as expected

Alpha bug

All platforms - PlasticX: Disable "Open" button in the switcher window when needed

The "Open" button in the switcher window was always enabled when the workspaces tab was selected, even when the workspaces list was empty. We fixed this issue, and now the button is only enabled when there is a workspace selected.

Alpha bug

All platforms - PlasticX: corrected Date modified for Added items in Workspace Explorer

Added items were appearing in the Workspace Explorer with an invalid Date modified (1/1/1001) when they should have no date displayed.

Alpha bug

All platforms - PlasticX: fixed exception opening context menu in a directory's History

An exception was thrown if you right-clicked in the History view for a directory. We fixed this. There is no context menu to show in this scenario.

Alpha bug

All platforms - PlasticX: fixed text clipping on Code Review window

The text of the code review summary was being clipped by a couple of pixels at the bottom. Fixed.

Public

10.0.16.6419: Jan 13 2022

New

Windows - Visual Studio Plugin: Plastic SCM now supports new Visual Studio 2022!!!

Installer now shows a new plugin for Visual Studio 2022 and above. As the IDE turned 64 bits, it required a new version of our plugin, which by the way can coexist with the old one, just in case you want to keep both Visual Studio 2019 and 2022 installed in your system.

As usual, if Visual Studio 2022 is present in the system, the extension will be suggested to be installed by default.

New

macOS, Linux - Plastic SCM API: The Plastic SCM API is now embedded in the CLI!

We created a new cm api command that starts the Plastic SCM API. It allows the same arguments as the old plasticapi.exe application. See more usage details here

Warning: this command is only available in macOS and Linux, as those platforms run our new .NET Core CLI client. We removed plasticapi.exe from all installers, so the Plastic SCM API is temporarily unsupported in Windows. It will be back as soon as we distribute our .NET Core CLI client in the Windows installers.

New

All platforms - Server: The Jet storage backend is now faster when reading files.

We changed the way we access the Jet backend files for reading. This change decreases the time needed for just reading content, making the overall time of reading calls to the server lower.

New

All platforms - All clients: The status operation performance has been improved by changing how the stats times are tracked.

This is only noticeable in super-huge workspaces.

The overall time of the status operation is a 17% faster in a workspace with 1M of directories and 5M of files.

New

All platforms - server: more detailed information in the relevant log and shell's 'htop' regarding internal and Web UI method calls.

Previously, every internal method call was tagged as "Internal", both for the server stats (relevant log) and shell's htop command. Now these calls are more qualified displaying the name of the method in execution. It has been also fixed on "ChannelCall" log where these calls are no longer tagged as "WebUI" but as "webui-Method'sName"

For example: on shell's htop, after executing a long-enough-lasting task (for instance a huge merge to) it should display "MergeTo" under Active requests or "webui-MergeTo", relying on the source of the method call. Remember that if the call is executed too fast, htop might not be updated in between and therefore not displaying any method at all.

New

All platforms - CLI: Checkout CLI command (co) now supports --machinereadable

We added the possibility of using --machinereadable parameter to the checkout command. Now it will be possible to specify --machinereadable argument to configure special chars which will be inserted where needed:

"--machinereadable" -> Outputs the result in an easy-to-parse format.

"--startlineseparator" -> Used with the '--machinereadable' flag, specifies how the lines should start.

"--endlineseparator" -> Used with the '--machinereadable' flag, specifies how the lines should end.

"--fieldseparator" -> Used with the '--machinereadable' flag, specifies how the fields should be separated.

Execution example:

cm co . --machinereadable --startlineseparator=">"
The selected items are about to be checked out. Please wait ...
>XXXXXXXXXX Item XXXXXXXXXXXX was correctly checked out
CommandResult 0

(Checkouts the current directory, and prints the result in a simplified, easier-to-parse format, starting the lines with the specified strings.)

New

All platforms - Client: cm partial configure now supports a machine readable format

To obtain an easily parseable output, just use the "--machinereadable" option:

$ cm partial configure --machinereadable +/file.txt

STAGE Plastic is updating your workspace. Wait a moment, please...
STAGE Calculating...
STAGE Updated 0 bytes of 13.89 MB (0 of 1 files to download / 0 of 1 operations to apply)
STAGE Updated 13.89 MB of 13.89 MB (0 of 1 files to download / 0 of 1 operations to apply):/file1.txt

Remember you can override the default separators by using formatting options. You might need to double quote them depending on your shell:

$ cm partial configure --machinereadable "--startlineseparator=[" "--endlineseparator=]" "--fieldseparator=:" +/file.txt

[STAGE:Plastic is updating your workspace. Wait a moment, please...]
[STAGE:Calculating...]
[STAGE:Updated 0 bytes of 13.89 MB (0 of 1 files to download / 0 of 1 operations to apply)]
[STAGE:Updated 13.89 MB of 13.89 MB (0 of 1 files to download / 0 of 1 operations to apply):/file1.txt]
New

All platforms - Plastic: Alpha new and Alpha bug release notes in help panels

We added two new categories to the release notes: Alpha new, and Alpha bug. They already appeared in the web ( https://www.plasticscm.com/download/releasenotes ), but now you will also see them in the plastic client, inside the new version notification. Check it out:

Bug

All Platforms - Command line client: PLASTIC_INITIAL_CHANGESET and PLASTIC_FINAL_CHANGESET environment variables are now properly set.

For before/after update triggers, PLASTIC_INITIAL_CHANGESET and PLASTIC_FINAL_CHANGESET environment variables were swapped, considering the final changeset as the origin and vice versa.

Now it is fixed.

Bug

Windows - Plastic, Gluon: Fixed preview of unsupported image formats

There are some image formats that cannot be directly previewed or diffed inside Plastic. To diff two PSD images, for example, you need an external tool like ImageMagick to convert the images, and then perform the diff.

Although you could diff these kinds of images on a separate window by clicking "Diff with previous revision", the preview that appears in the pending changes view was not working:

We fixed this issue, and now you can diff these kinds of images without opening any external programs.

Bug

Windows - SemanticMerge tool: body method call wrongly renamed on edge case.

The problematic scenario is explained better with the following snapshot:

There is a "changed+renamed - changed" conflict on Upload method. And, there is also a method call to DirectoryUploader.Upload in the body (enclosed in a red rectangle), altough it wasn't modified by any contributor.

But the declaration "renamer" mechanism of SemanticMerge is not handling fine this edge case where the method call name in the body matches with the conflicting method ( Upload in this case),

and it's applying the rename of the conflicting method to the method call in the body too (from Upload to UploadForClientTests ) in the resulting file (also enclosed in a red rectangle).

Now it's fixed, and the method call in the body remains untouched, since it wasn't modified by any contributor at all.

Bug

macOS - Gluon: Fixed a performance issue opening a workspace with lots of files

The GUI hanged trying to open a workspace, when the root item has lots of children (>20000 items). Now it's fixed.

Bug

Windows - Installers: removed linux binary from the windows installer

The windows installers erroneously included a 120 MB binary file, "linplasticx", which is only required on linux. We removed it. Enjoy the extra disk space! (Note, you can safely delete this file from your current windows client install directly should you wish to do so).

Alpha new

All platforms - PlasticX: Try our new Plastic SCM cross-platform GUI!

We invite you to try our new Plastic SCM cross-platform GUI, code-named PlasticX (alpha)! This will also give you access to our new dark theme!How to get started with PlasticX (alpha)

PlasticX is packaged silently with every Plastic SCM release moving forward.

Download and install the latest Plastic SCM release .

* Windows: Run this command from the Windows console: C:\Program Files\PlasticSCM5\client\winplasticx.exe

* macOS: Open a terminal and run the following command: /Applications/PlasticSCM.app/Contents/Applications/plasticxscm.app

* Linux: Run this command from the terminal: /opt/plasticscm5/client/linplasticx

How to provide feedback:

* You can join our PlasticX forum here if you have any questions or feedback. Our dev team is actively monitoring this forum.

Alpha new

All platforms - PlasticX: launch internal image diff by default

If you have the default binary diff tool configured (or have no binary diff tool configured), image diffs will launch in a new PlasticX window.

Alpha new

All platforms - PlasticX: Save the last used workspace.

When switching the workspace from the top-left workspace selector, now the last used workspace is remembered when you close and reopen PlasticX.

Alpha new

All platforms - PlasticX: Support lines longer than 10.000 characters in diff and annotate views.

Prior to this fix, AvaloniaEdit (the text editor we use to display differences and annotate), didn't support displaying lines longer than 10.000 characters. We created this PR to fix it https://github.com/AvaloniaUI/AvaloniaEdit/pull/172

Alpha new

All platforms - PlasticX: Added scroll bar to the annotate view

Before this change, the annotate view was scrollable, but the scroll bar was not visible. We changed this and now you can see a vertical scroll bar when the file is long enough

Alpha new

All platforms - PlasticX: Added color picker control

Added the color picker control to be able to set custom colors to branches and changesets in the branch explorer using the rules and filters panel. This is how it looks:

Alpha new

All platforms - PlasticX: Added support for diff and code review Plastic Links

Plastic Links are a great way to share content from your plastic repositories with your colleagues. You can easily share diffs, links to files and links to code reviews using Plastic Links.

* What is a plastic link? A plastic link is a URL that looks something like:

plastic://test.cloud/repos/NikkiTest1/changesets/50/diff

* How do I open it?

Just click on the link in the normal way and Plastic or Gluon will launch (if not already running) automatically and show you the content specified in the link.

Note: On Windows and MacOS, while PlasticX is in alpha, you will be asked whether you want to open links in Plastic (official release) or in PlasticX (alpha). You can change this setting at any time in Preferences -> Other options. On Linux, plastic links will always be opened in PlasticX.

* How do I create a link to share with my colleagues?

From within Plastic, you can share diffs from any diff view by clicking on the Plastic Link icon in the top right corner. This copies the link into your clipboard, ready to paste into a message. You can also share code reviews by clicking the Plastic Link icon in the top right of the code review window.

Plastic link icon:

From within Gluon, you can get links to specific files by clicking the Copy button in the Details panel:

Alpha bug

All platforms - PlasticX: The "home" icon sometimes was not drawn on a newly created branch.

In certain machines under some concurrency scenarios, when creating a new branch and selecting the "Switch workspace to this branch" caused that the new branch is created but the home icon is not in the right place. Now it's fixed.

Alpha bug

All platforms - PlasticX: Removed separator from the notification bar

In the bottom status bar, we sometimes show notification messages. To separate those messages we use a vertical line, which should only be visible when there is more than one message. We were always showing this line, even when there were no notifications to show:

Alpha bug

Linux - PlasticX: Fixed hang when closing application

Sometimes when closing the workspace window in Linux, the application got frozen and it never ended. We fixed this issue

Alpha bug

All platforms - PlasticX: Fixed an error that appeared after opening and closing the preferences window.

When opening and closing the preferences window, PlasticX displayed an exception. Now it's fixed.

Alpha bug

All platforms - PlasticX: Removed latency when toggling "Only relevant" button

When clicking on the "Only relevant" button in the branch explorer, there was a latency that made the GUI freeze for some seconds. This was because of an operation that should be running in the background but instead was blocking the whole application. We fixed this call and now the branch explorer updates immediately

Also, now after refreshing the branch explorer view, if there are new branches or changesets that match the text in the search box, they will be highlighted

Public

10.0.16.6375: Dec 15 2021

New

Command-line client: We keep on updating the Spanish documentation of the command-line help.

Now, it was time for the following commands to be completely updated and match the English version of the command-line help:

* acl

* activateuser

* addignorepattern

* admin

* admin readonly

* applylocal

* archive

* attribute

* changelist

* changepassword

* changerevisiontype

* changeset

* changeset delete

* changeset editcomment

* changeset move

* checkconnection

* checkdatabase

* checkselectorsyntax

* codereview

* crypt

* deactivateuser

* diffmetrics

* fast-export

* fast-import

* fileinfo

* find

* trigger edit

We're still working on the rest of the commands, so stay tuned!

Alpha new

All platforms - PlasticX: New Workspace switcher

We got a lot of user feedback telling us that the "Switch workspace..." button at the bottom of the GUI was a bit confusing.

So, we've replaced it with a more useful and intuitive workspace selector. It allows you to quickly switch between your recent workspaces, open the workspaces view to create new workspaces, or open the repositories view.

We also improved how we display the details of the current branch, changeset or label.

Some demo:

Alpha bug

All platforms - PlasticX: Fixed refreshing issue in the update report dialog

We had an issue in the table of the update report dialog, that prevented it from refreshing after clicking "Update forced" or "Retry".

Now the issue is fixed, and the table gets correctly updated

Public

10.0.16.6363: Dec 13 2021

Bug

macOS - Plastic: Fixed column sorting for query views

Sorting columns on some views on macOS was not working as expected. This was broken in 10.0.16.6223

We fixed the issue and now all tables can be sorted without issues.

These are the affected views:

* Branches view

* Changesets view

* Labels view

* Shelves view

* Attributes view

* Code reviews view

Bug

All platforms - Client: Allow closing additional change requested editing the comment

You can close a change requested in review by editing the comment of the changeset and adding the change to close (e.g. [apply-change:384d716f] ).

But if you tried to edit the comment again to close an additional one ([apply-change:94857d35]), it would fail with the error "The following review change requests (specified in the checkin comment) cannot be found or are already applied in a previous changeset: - 384d716f".

Now it's fixed and you can edit the comment to close as many additional changes as you need.

Alpha new

All platforms - PlasticX: New cross-platform GUI available!

Hi everyone!

We are happy to announce that we are currently working on a new cross-platform GUI for Plastic SCM, code-named PlasticX!

At this stage in development, we are looking for early adopters who would be willing to try the new GUI and give us some feedback. All you need to do is sign up and we will contact you with instructions on how to get started, provide feedback and report issues.

SIGN UP HERE

There is no commitment - you will be able to easily switch back to the GUI you are using today if needed.

PlasticX is available for our developer GUI at this time. It will eventually replace the existing GUI, so this is a wonderful opportunity for you to influence the direction of Plastic SCM!

The latest alpha version also provides significant macOS stability improvements that you can benefit from right away. And we are almost at feature parity! The missing features will be available in the coming weeks.

You will also be able to try out our new dark theme which is now an option in the new GUI!

Find some eye opening screenshots below! :-)

macOS running light theme:

And now the same Branch Explorer in dark theme full glory:

Continuing with macOS, see how great diffs look in both light and dark themes:

And dark:

Now compare to the very same Branch Explorer screenshots in Linux and Windows:

And now Linux dark theme:

And Windows:

Thanks!

The Plastic SCM Team @ Unity!

Alpha new

All platforms - PlasticX: Show progress while saving code review comments

When you create a new code review comment, or modify an existing one, saving the comment may take some time (especially if you have configured a trigger to run after the operation). We weren't showing any feedback during this operation. Now we have added a progress control next to the save button, to let the user know that the comment is being saved.

Alpha new

All platforms - PlasticX: image diff viewer completed

Completed the image diff viewer with the following new modes:

* Onion skin: places one image over the other, with a slider to control transparency.

* Differences: displays the differences between two images, calculated pixel by pixel.

* Swipe: overlays the two images and allows you to transition between them using a slider.

This updated image diff viewer also allows you to:

* View the differences between images of different sizes.

* Zoom with a smooth animation.

* Navigate around an image by clicking and dragging.

Alpha new

All platforms - PlasticX: Improvements in the create workspace dialog

We added a checkbox in the create workspace dialog that lets you create workspaces in dynamic mode. Check it out:

For now this feature is only available on Windows. To see it, you need to enable it manually by adding the following line in your guiclient.conf file:

<EnableCreateDynamicWorkspace>false</EnableCreateDynamicWorkspace>

You can learn more about dynamic workspaces here: [https://blog.plasticscm.com/2021/07/dynamic-workspaces-alpha-for-windows.html Dynamic Workspaces (alpha) for Windows: A new way to interact with version control]

In addition, we added a "New" button, next to the repository label, that lets you create a new repository right from that dialog

Alpha bug

All platforms - PlasticX: Fixed null exception when navigating the items tree

There was an issue when navigating the workspace explorer tree with the arrow keys: up and down keys should change the selection to the node above or below, and right and left keys should expand or collapse directories. When pressing the right key when a file is selected, we were throwing a null exception, because it couldn't be expanded. We fixed this issue

Public

10.0.16.6307: Nov 24 2021

New

Command-line client: We're updating the Spanish version of the command-line help.

The documentation of these commands is now completely updated and match the English version of the command-line help:

* add

* annotate

* branch

* checkin

* checkout

* clone

* diff

* undo

* update

We're still working on the rest of the commands, so stay tuned!

New

All platforms - WebAdmin: On the License configuration area, the button that takes you to sign up in plasticscm.com when you don't have a license in place now takes you to your licenses. Before it just took you to the sign up form.

Public

10.0.16.6280: Nov 18 2021

New

All platforms - Plastic: Triggers no longer wait if parent process has exited and a child process is invoked.

Previously, triggers that launched a child process would wait for it to exit before returning. Now they allow the child process to run in the background while the trigger returns.

New

Command line client: cm archive command help improvements

Added more information and examples about the required use of the externaldata.conf file when unarchiving (restoring) an archived revision.

New samples:

 1) Archive one revision:                                                                          
    cm archive Assets/RoofTextures/Textures/Wooden_Roof_05.png --file=/Users/ruben/archive/battle  
 2) See the archived revision in the specified output path:                                        
    ls -al /Users/ruben/archive/battle*                                                            
    -rw-r--r--  1 ruben  staff  2220039 Nov  9 10:52 /Users/ruben/archive/battle-100280-167        
                                                                                                   
 Unarchive (restore) example:                                                                      
 1) Add the output archive folder to the externaldata.conf file:                                   
    vi /Users/ruben/.plastic4/externaldata.conf                                                    
    /Users/ruben/archive                                                                           
 2) Unarchive the revision:                                                                        
    cm archive Assets/RoofTextures/Textures/Wooden_Roof_05.png --restore                           
New

Command-line client: Updated the cm partial add documentation to include the formatting arguments.

Now, the cm partial add help includes the --format and --errorformat arguments. The help shows you how to use these arguments to retrieve the output in a specific format when adding items to a partial workspace.

For example:

cm partial add -R * --format="ADD {0}" --errorformat="ERR {0}"
New

Command-line client: Updated the cm lock list documentation to include the "machine readable" arguments.

Now, the cm lock list help includes the --machinereadable , --startlineseparator , --endlineseparator , and --fieldseparator arguments. The help shows you how to use these arguments to output the result in an easy-to-parse format.

For example:

cm lock list --machinereadable --startlineseparator=">" --endlineseparator="<" --fieldseparator=","
New

All platforms Server: New ThreadPool boosting system to avoid long waiting requests

The server allows creating new threads to attend to the requests and goes beyond the max thread limit if needed.

Before this task, the boosting mechanism handles the slow requests (calls running for too long) and the too many requests waiting.

Now it also handles when the request is waiting for too long. It's helpful on the following scenario:

The server receives a high number of requests for a while. It's able to attend almost all of them with the current threads but not all, so the request queue starts growing little by little.

The old mechanism detects it when the queue grows too much. But this new mechanism detects it much earlier, improving the server responsiveness.

Bug

All platforms - WebAdmin: Fixed the Lock Rules page

The Lock Rules page in the Plastic server WebAdmin displayed an error. We fixed it, so now you can review/set the lock rules in your on-premises server again.

Bug

All platforms - Cloud: Fixed download data operations (update) waiting for other operations to complete.

In the detected case, the download data calls waited for a delete data operation (like removing a changeset) to finish.

This happened because we had a common throttle to limit the number of concurrent operations against the blob storage. Now, each operation type has its own throttle.

Public

10.0.16.6241: Nov 09 2021

New

All platforms - client: Parallel download for big files now available!

Big files are stored in blocks, and now each block can be downloaded in parallel, achieving an incredible speed up.

We tested downloading a 560 MB file from Plastic Cloud using a 600mbps connection and now the speed is 2.5 times faster.

New

All platforms - Command line client: cm find branch allows formatting using the branch guid.

Previously running "cm find branch --format={guid}" returned an error since the guid was unsupported as a format field, it now prints the branch guid.

New

All platforms: Client: 27% less memory during the update operation

We worked on saving memory allocations on the client core, and finally, we were able to reduce up to 27% of the total allocations during an update operation.

Find some numbers here: We ran a 'cm update' to download 8GB of data and:

* Before: cm allocated 636MB

* After: cm allocated only 460MB (27% less)

New

All platforms - Cloud: Archiving revisions is now available in Cloud!

You can reduce the size (and the costs :)) of your cloud repositories by archiving revisions to an external storage.

Check the whole archive documentation here.

In summary, we can simply archive one revision as follows:

cm archive Assets/RoofTextures/Textures/Wooden_Roof_05.png --file=/Users/ruben/archive/battle
Total 2.131 Mb. Comp. 2.117 Mb
Command finished successfully

After executing the command, we can see the archived revision in the specified output path:

ls -al /Users/ruben/archive/battle*
-rw-r--r--  1 ruben  staff  2220039 Nov  9 10:52 /Users/ruben/archive/battle-100280-167

To unarchive the revision, firstly, we need to add the output archive folder to the externaldata.conf file:

vi /Users/ruben/.plastic4/externaldata.conf
/Users/ruben/archive

and run the command to unarchive the revision:

cm archive Assets/RoofTextures/Textures/Wooden_Roof_05.png --restore
Total 2.131 Mb. Comp. 2.117 Mb
Command finished successfully

And that's all :).

Now, let's answer some questions:

How can I archive all the revisions bigger than 10 MB?

Very easy! Just find for the revisions bigger than 10MB in the repo and pass them to the 'cm archive' command as follows:

cm archive $(cm find "revs where size > 10000000 on repository 'repo@org@cloud'" --format=rev:revid:{id}@repo@org@cloud  --nototal | paste -sd " " -) --file=/external/archive

Remark: the 'cm archive' command also supports pipe to receive arguments from the standard input as follows:

cm find "revs where size > 10000000 on repository 'repo@org@cloud'" --format=rev:revid:{id}@repo@org@cloud  --nototal | cm archive - --file=/external/archive

How can I archive all the revisions of the file '/arch.zip' file? Guess what?

Very easy too! Just find for all the revisions of that item and pass them to the 'cm archive' command as follows:

cm archive $(cm find "revs where itemid=$(cm ls /arch.zip --tree=br:/main@repo@org@cloud --format={itemid}) on repository 'repo@org@cloud'" --format=rev:revid:{id}@repo@org@cloud --nototal | paste -sd " " -) --file=/external/archive

How can I archive all the revisions except the last one loaded in br:/main?

It's exactly like the previous command but adding a condition to the find to skip the revision loaded in br:/main.

cm archive $(cm find "revs where itemid=$(cm ls /arch.zip --tree=br:/main@repo@org@cloud --format={itemid}) and id != $(cm ls /arch.zip --tree=br:/main@repo@org@cloud--format={revid}) on repository 'repo@org@cloud'" --nototal --format=rev:revid:{id}@repo@org@cloud | paste -sd " " -) --file=/external archive

The possibilities are infinite using find conditions with the ls command to resolve revision and item ids. The 'cm archive' command only needs a list of revisions that we can filter as we prefer.

New

All platforms - Web UI: Added alpha version to the logo

We added the "Alpha" label to the logo to show that WebUI is a pre-release early version.

Bug

All platforms - Plastic, Gluon: Fixed displayed user name on Active Directory servers

When working with a repository on a server configured with Active Directory, if the server was not your default one, we were displaying the user ID in the Active Directory instead of the user name. This issue was fixed, and now you will always see the user name

Before:

After:

Bug

All platforms - Plastic, Gluon: Fix help panel in repositories view

We had an issue with the help panel in the repositories view and cloud view: we were always showing it, even when the user checked the "Don't show again" checkbox. Now we only show it when it's needed

Bug

All platforms - Server: Fixed null error from the log

The server was logging a null error when a not-used connection was finished. This error didn't have any impact apart from being logged. Now it's fixed.

Public

10.0.16.6210: Nov 04 2021

New

All platforms - Plastic, Gluon: Added SSO login method names

We are getting ready to support new SSO login methods, in addition to the existing "Unity ID" and "Email". We are adapting the GUIs to render the actual method name in the SSO buttons:

New

All platforms - CLI: Undo operation from outside the workspace.

Added a new example to the cm undo command in the command-line help to let you know that you can specify an absolute path to undo the changes in any workspace:

cm undo c:\otherworkspace\file.txt
New

Server: Added configuration key for the webUI config files.

WebUI configuration files can now be placed on a different location through a setting placed in server.conf config file.

To set this custom path, add an entry to that file like the following below:

<WebUiConfigDir>/opt/plasticscm5/server/webuiconfig</WebUiConfigDir>

And copy there the webUI config files, such as webui.secret.conf, webui.tokens.conf, webui.userid.conf, and webui.users.conf

Bug

All platforms - Client: Fixed the parsing of the cloud tokens when they ended with '='. This could make a replica fail with a "The auth token expired." error.

This only applied to the email/password authentication and usually with short passwords.

A replica operation (pull/push) could work properly for some time until it needed to renew the token because the current one had expired. Since the renew token was not properly parsed in the client side, the renew operation failed and the operation was aborted.

Bug

All platforms - Web UI: Code review switching comments

Fixed an issue while switching comments: if the current file was changing, it was displaying the first diff instead of displaying the selected comment.

Public

10.0.16.6179: Oct 27 2021

New

All platforms - CLI: Now you can specify tokens and cloud region configuration for every command

We added new global parameters to the CLI. They allow you to tune the configuration tokens and cloudregions files to use for command execution. So you don't need to have them configured on the machine. It's useful for integrations where there is no previous configuration.

The new parameters are:

* --tokenconf=[token_conf_path] - allows specifying the token file to use for the command execution.

* --cloudregionsconf=[cloud_region_conf_file] - allows specifying the cloudregion file to use for the command execution

Example execution:

cm repo ls --clientconf="C:\mysharedconf\client.conf" --tokensconf="C:\mysharedconf\tokens.conf" --cloudregionsconf="C:\mysharedconf\cloudregions.conf"
New

All platforms: Change password in User/Pass auth mode is now instant.

Prior to this version, changing user's password in User & Pass authentication mode required up to 5 mins to be updated in the server.

From now on, changing a password is immediate. If the password is changed in the server, just open the "Preferences" > "General" window in your Plastic SCM client and enter the new password.

REMARK: A credentials prompt could be shown in the Plastic SCM client under the following conditions:

* Your client is configured/connected to a server in User/Password mode.

* Your client has also a persistent server profile to connect to the same server.

* Then, your password is changed in the server.

This could happen because credentials of persistent profiles have preference over the client configuration. To avoid this prompt dialog showing up again and again, we encourage to enable the "Remember credentials as a connection profile" checkbox on that dialog, so the credentials of the stored profile are properly updated.

New

All platforms - Server: The warmup of a server under heavy load has been improved by x20 when using the UP authentication mode for groups.

This is valid when using the UP authentication mode or the mixed LDAP + UP groups mode (in both, the groups are read from the groups.conf file).

The bigger is the number of groups and users/groups inside these groups, the more noticeable is the performance improvement. The x20 improvement has been measured using 12000 group entries.

New

Linux - Proxy: the "plasticscm-proxy-server" is now the default proxy package, netcore-based.

We renamed the "plasticscm-proxy-server-netcore" to just "plasticscm-proxy-server", and we removed any plastic proxy compilation based on mono stack.

So, to install the proxy, use this package name from now on: "plasticscm-proxy-server".

REMARK: some distros (centos, opensuse, fedora) could require the removal of legacy "plasticscm-proxy-server-netcore" package before installing the new one. If so, please remove the "plasticscm-proxy-server-netcore" on your package manager before installing the new "plasticscm-proxy-server" (the legacy configuration is kept during the upgrade)

Bug

Windows - plasticfs: Updating a workspace to the head of the branch with changes in the workspace discarded said changes.

This scenario is more likely to happen when you are working on a branch with a colleague. They do a change, check it in, and then you update your workspace to grab the change. In a static workspace, you get to keep your workspace changes (both local and controlled), and even merge your changes with the incoming ones if needed! In a dynamic workspace, we were overriding your workspace changes. Not anymore, now both static and dynamic workspaces behave the same way.

Bug

All platforms - Web UI: Fixed a bug where if you had an assigned review you'd see an empty list when going to the code reviews page.

Bug

Linux - Installers: Aesthetic fix: removed confusing warning message while installing the client

The package installer in the supported Linux distributions printed this message when it processed the dependency package 'plasticscm-certtools-mono4':

Could not resolve host 'cloud.plasticscm.com'

The package post-install script pre-populates the Mono certificate store from Plastic SCM trusted domains. One of those was 'cloud.plasticscm.com', which is now deprecated.

This error didn't prevent the package from completing the installation, but it could alarm users. Now the message won't appear anymore, and the package imports the certificates from the proper domain (plasticscm.com).

Bug

All platforms - Plastic, Gluon: Fixed 'Selector can't locate a revision for the item xxx' error when checking-in local changes (changes done outside Plastic).

The problem was related to moving a controlled file into a private folder. The issue could be reproduced as follows:

1. Create in disk a workspace with the below file structure and check it in.

/Assets/Folder1
/Assets/Folder1/Folder2
/Assets/Folder1/Folder2/Folder3
/Assets/Folder1/Folder2/Folder3/New Material.mat
/Assets/Folder1/Folder2/Folder3/New Material.mat.meta
/Assets/MoveTo

2. In Windows Explorer, move the folder /Assets/Folder1/Folder2/Folder3 to /Assets/MoveTo.

3. Edit the content of the file/Assets/MoveTo/Folder3/New Material.mat.meta.

4. Try to checkin the current pending changes from the Plastic GUI.

Bug

Windows - plasticfs: Updating a workspace to the head of the branch with changes in the workspace discarded said changes.

This scenario is more likely to happen when you are working on a branch with a colleague. They do a change, check it in, and then you update your workspace to grab the change. In a static workspace, you get to keep your workspace changes (both local and controlled), and even merge your changes with the incoming ones if needed! In a dynamic workspace, we were overriding your workspace changes. Not anymore, now both static and dynamic workspaces behave the same way.

Bug

All platforms - Web UI: Fixed the following issues

- Not seeing the repository name in the breadcrumb navigation

- The menu not being selected when clicking on an item in a list e.g., when viewing the code review details.

Bug

macOS - Plastic: Fixed the revisions displayed in the code review

Under some circumstances in the code review, when you switch between the review modes or changesets the revisions displayed for the selected file in the diff viewer were not the correct ones. We fixed it, and now you will see the correct differences.

Bug

All platforms - GitSync: Fixed the parsing of LFS pointers that don't end with '\n'.

If (somehow) you have a LFS pointer in a wrong format (without the ending '\n') in your repo, now, we support it too!

This link shows the specification of the LFS pointers and how every entry has to end with '\n'.

Bug

All platforms - Web UI: Fixed image preview being stretched in code reviews

Public

10.0.16.6141: Oct 20 2021

New

All platforms - Plastic: Triggers can now run from Global Config

One of the challenges when you need to run client-side triggers is to deploy them.

We have helped fix this problem by allowing triggers to be run from Global Config, which is a special repository that is deployed to all client workstations (or laptops :P). This way you just place your trigger in your Global Config repo, and every user will have it available.

To run the trigger, we introduced a new variable @GLOBAL_CONFIG_PATH, that will point to the global config directory of the server you're using.

So now you can create a trigger using a command like the following:

cm trigger create before-clientcheckin "Relative trigger path" "bash @GLOBAL_CONFIG_PATH/allrepos/triggers/trigger.sh"

You can learn more about triggers here: https://www.plasticscm.com/documentation/triggers/plastic-scm-version-control-triggers-guide

Bug

All platforms - Server: Fixed checking free space on database path when a relative path was specified in the config.

Server failed to ensure a minimal storage when jet directory was set up using a relative path in jet.conf base path. Now it is fixed.

Public

10.0.16.6112: Oct 14 2021

New

All platforms - CLI: Now you can specify working mode, user and password for every command

We added new global parameters to the CLI. They allow you to fine tune the credentials that will be used to run the command. Additionally, the command will be able to run without a client.conf file if you specify the working mode and credentials.

The new parameters are:

* --server=[server] - override the default server defined in client.conf

* --workingmode=[mode] - specify the working mode to use. Valid values are: nameworkingmode, adworkingmode, upworkingmode or ldapworkingmode.

* --username=[username] - specify the username to use in client connections. Required for 'upworkingmode' or 'ldapworkingmode'.

* --password=[password] - specify the password to use in client connections. Required for 'upworkingmode' or 'ldapworkingmode'.

Example execution:

cm repo list --server=guestOrganization@cloud \
  --workingmode=ldapworkingmode \
  --username=myuser@email.com \
  --password=mypassword
New

All platforms - Server: Security upgrade on LDAP user authentication mode.

We upgraded the LDAP authentication mode for security reasons.

After upgrading the server to this version, users running Plastic SCM client versions older than 9.0.16.4272 could show an informative window asking for an application restart of the Plastic SCM client.

After this restart, the client will automatically use the upgraded authentication mode.

Remark: The client might also prompt a credentials window to retype user's credentials.

New

All platforms - All clients: The clients are now more resilient over unstable networks.

We improved our method call retry mechanism. With these changes, the client can handle slow networks and connectivity loss in a more reliable way, reducing the number of times an operation gets abandoned because of issues when contacting the server.

New

All platforms - Web UI: Copy comment GUID

- Added a button to copy comment's GUID in clipboard

New

Linux: Added support to install Plastic SCM in Debian 11

Prior to this relase, installing Plastic SCM with the package manager failed due an unmet dependency to a third-party library (libicu). Now it is fixed, the dependency is met, and installing Plastic in Debian 11 is now possible.

Bug

All platforms - Server: Fixed an AccessViolationException error

The server failed with an access violation exception in very rare concurrency circumstances. It happened when the TCP connection was killed while the server was writing the response on it.

Most of the time, it was totally possible end the client connection when the operation was still running without any problem. This is indeed a very common scenario that happens all the time and without major issues.

But if you saw your server process gone with no reason, you could be facing this issue.

Public

10.0.16.6089: Oct 07 2021

New

Windows - Shell Extension: View History is now shown in folder background context menu

View history was visible when showing the context menu of a file or folder. Now it is also shown when displaying the context menu of a folder's empty space.

New

All platforms - Server: The 'showmethodlist' and 'htop' plasticd shell commands show more detailed information regarding trigger execution.

Now, when a server call enters the phase in which it runs a trigger, the status of the underlying connection will reflect so. This way, if the server is stuck running a trigger, you can easily debug it using the 'plasticd shell' debug tool.

You can see an example here: I created a before-mkbranch trigger that got stuck! Using the plasticd shell command I could connect to my server. Then I run showmethodlist and I could see that the method call was in Status=Trigger

localhost:8087> showmethodlist

ACTIVE METHOD CALLS
Name                                      Request IP              Time      Thread   Status   Protocol  Sec  User
CreateBranch                                    9 127.0.0.1       00:00:03  21       Trigger  Plastic   None sluisp
Total calls: 1
0 requests enqueued. 1 worker threads (0 free)
New

All platforms - Server: Configurable timeout for server-side triggers.

A timeout can now be set for server-side triggers (it is set to 2 minutes by default).

You can change the timeout by adding this to the server.conf config file:

<TriggerProcessTimeoutSeconds>120</TriggerProcessTimeoutSeconds>

Or entirely disable the timeout:

<TriggerProcessTimeoutSeconds>-1</TriggerProcessTimeoutSeconds>
Bug

All platforms - Web UI: Fixed the following issues

- After commenting on a code review with the whole branch selected, the comment doesn't show on the file if newly changesets were added to the branch;

- Fixed the list of comments cutting the last comment when the list scrolls;

- Disallow users to add comments on files outside code reviews;

- Fixed error popup in the desktop client when opening code reviews with conversations.

Public

10.0.16.6064: Oct 04 2021

New

All platforms - Plastic: Use relative date in the default changesets query

When using a custom query in the changesets view to filter the results, by default we were using a query like the following:

find changesets where date > '8/21/2021'

This is a fixed date, that will not automatically change on future queries.

We changed this to a relative query, that will produce different results depending on when it's executed:

find changesets where date > '1 months ago'

To see the updated default query you may need to delete your queries.conf file in your Plastic config folder

Bug

All platforms - Plastic, Gluon: fixed New Version Notification in Japanese

When a new version of the client is available, the "Help Owl" will pop up a help panel to let you know and provide you with a link to download the latest version.

Sadly, the Japanese Help Owl had gotten a little confused and his/her panel was incorrectly formatted. We re-educated the owl, and now the panel looks good:

Public

10.0.16.6060: Sep 29 2021

New

All platforms - Web UI: Code reviews improvements

- Added changesets select box to the changed files panel for easier changeset selection.

- Removed the whole branch switch from the changesets panel since it was redundant.

- Added badges for comments and conversations to easily spot how many are present.

New

All Platforms - GitSync: Added LFS support for GitLab & Bitbucket when pushing changes over SSH.

LFS was previously supported for GitLab & Bitbucket over https. However, the push operation (pushing changes from Plastic to Git) failed over SSH. Fixed.

New

All platforms - Web UI: File history improvements:

We removed the previous branch/label filter since it doesn't work correctly with the context of the history list and implemented individual filters for branches and types instead. We also added a button to go back to the file and individual download buttons for each entry in the history.

New

All platforms - Plastic, Gluon: Dockerfiles considered as txt files

Before this change, we were considering Dockerfiles as binary files by default, and users had to manually add the following line in filetypes.conf to consider them as text files:

Dockerfile:txt

Now they are considered as text by default

Public

10.0.16.6038: Sep 23 2021

New

All platforms - Server: User reload users and groups time configurable

The server reloads the needed users and groups from the authentication provider every 5 minutes.

Now you can configure this time on the server.conf. Adding the setting "ReloadUsersRefreshTimeSpan" with the refresh time on the following format [d.]hh:mm:ss.

For example, if you want to do the refresh every hour, you should add the following to the server.conf.

  <ReloadUsersRefreshTimeSpan>01:00:00</ReloadUsersRefreshTimeSpan>
Bug

All platforms - Web UI: Various fixes and improvements:

- Repositories list: fixed breadcrumbs not showing;

- File explorer: when switching branches/labels it redirects to the root of the branch/label if the current displayed file/folder doesn’t exist;

- Code Reviews, Branch view, etc.: if the navigation is collapsed and changing the comment or trying to view the reviewers list it now expands it, before it wasn't doing anything;

- Code Reviews, Branch view, etc.: Fixed portrait images being cut;

- Code reviews: Hide changesets panel for changeset reviews;

- Improved the order of breadcrumb items so when clicking on the repository name it goes to the File explorer instead of going to the Repositories list and when clicking on the organization it goes to the Repositories list instead of going to the dashboard;

- Update login page text colors, font sizes and elements spacing;

- Removed the page content fixed width for screens above 1920px;

Bug

All platforms - Web UI: Fixed xlink content not being shown correctly in code reviews.

Public

10.0.16.6023: Sep 22 2021

New

Linux - Command line client: All the Linux client packages will now bundle a netcore-compiled command line client!

From now on, the command line client ("cm") will be a netcore-based application, replacing the mono-based command line client, that had several stability glitches, it lacked some features (latest SSL protocols) ... but now we use the netcore-based "cm" application compiled to target Linux-x64 archs specifically.

Enjoy!

Find below some performance improvements:

A) Update operation test: Workspace of 110K items sizing 545MB. Instance: CentOS 7 rackspace instance of 15GB I/O v1

Time downloading the full workspace ('cm update' operation) with version 10.0.16.6001 (cm mono): 310s

Time downloading the full workspace ('cm update' operation) with version 10.0.16.6023 (cm mono): 256s (21% faster)

B) Checkout test: Workspace of 16K items, 137MB

Time performing a checkout recursive operation on the full workspace with version 10.0.16.6001 (cm mono): 5.4s

Time performing a checkout recursive operation on the full workspace with version 10.0.16.6023 (cm netcore): 3.2s (68% faster)

New

All Platforms - Cloud Server: Fixed an error that sometimes caused the server to fail when trying to use Google storage blobs

There was a race condition present when setting authorization headers that would sometimes cause an error alike to "Error getting data of ... - Value cannot be null." This should no longer happen.

Public

10.0.16.6001: Sep 16 2021

New

All platforms - Web UI: Code review conversations

- Added a new feature for users to create code review conversations, they are different from comments since they are not tied to a specific file change and their purpose is to shed light into the purpose of the whole code review.

Bug

Cloud - Web UI: Fixed CORS issue when loading static assets like images or files

Bug

All platforms - Web UI: fixed an error when viewing binary metadata

Bug

All platforms - Web UI: Fixed an instance where an error wasn't displayed correctly if the file was too large

Bug

All platforms - Web UI: Fixed error when loading text files that are not encoded in UTF8

Bug

All platforms - Web UI: Various fixes & improvements:

- Added missing support for multiple reviewers to the code review list;

- Updated code review navigation icons to match the overall icons styling;

- Replaced branch icon;

- Creating a code review now appends the branch or changeset comment to the title, to match the same behavior as the desktop client.

Public

10.0.16.5975: Sep 09 2021

New

All platforms - GitSync: It now supports LFS when syncing from Github Enterprise servers, GitLab and Bitbucket!

Before this, it only supported GitHub (cloud).

No extra configuration is needed to take advantage of this. Just try it!

New

All Platforms - Server: Fixed the server command line option --websocketport to use the right port.

Also, the websocket port is only started when the configuration setting EnableDevOps (located in server.conf) is enabled.

New

All platforms - Server: Fixed exception not allowing to leave TCP port unset while having a SSL port set

New

All Platforms - Server: Saving organizations.conf is now written out atomically

Bug

macOS - IntelliJ IDEA/Rider plugin: Fixed the client configuration action

The "Configure client" button in the Plastic SCM preferences panel produced an error. This happened because the plugin looked for an outdated installation path. We changed it to run /usr/local/bin/macplastic instead. Now, if you click that button, you'll see the Plastic SCM configuration window.

Bug

All platforms - Web Triggers: Added more information when an attribute changed its value

Now when the value of an attribute changed its value the name of the branch or the changeset where it belongs appears at the description of the message in Slack, Discord ...

Public

10.0.16.5953: Sep 02 2021

New

All platforms - Web UI: Authentication token was moved to sessionStorage

This change was done to allow users to log in to multiple organizations at the same time in the same browser.

The authentication token will be stored until the user closes the browser tab.

Opening WebUI in a new tab will require the user to authenticate again.

Bug

Windows - Plastic: fixed issue where delete dialog was too big

When you delete files or other objects in Plastic it helpfully lists them in the confirmation dialog so you can confirm you're deleting the correct things. However, if you tried to delete a lot of things at the same time, this would become substantially less helpful, because the OK / Cancel buttons could end up pushed down off the bottom of the screen.

We fixed this by limiting the list to show at most 10 items.

Public

10.0.16.5935: Sep 01 2021

New

All Platforms - Server: Replicating a repository using "cm clone" will no longer fail if that repository has shelves

New

All platforms - Web UI: Global Code Review comments

- Added the ability to add comments for the entire code review

- Updated the comments list to reflect which comment is assigned to a file and which one is assigned to the whole code review

- Enabled the comments panel even if there are no comments available

New

All platforms - Web UI: 404 Not Found page

- Updated the 404 Not Found page look & feel

- Updated various views to redirect to the 404 Not Found page if the resource doesn't exist

Bug

All platforms - Web UI: Fixed File Explorer Readme.txt preview not rendering new lines

Public

10.0.16.5917: Aug 26 2021

Bug

All platforms - Web UI: Fixed code review comments appearing and being added on the wrong line

Bug

Cloud - Web UI: Images were not properly shown and files could not be downloaded. Fixed.

Bug

All platforms - Web UI: Fixed error when opening a code review comment on a file when the whole branch is toggled on.

Public

10.0.16.5903: Aug 23 2021

New

macOS - Plastic: Editing changesets to retroactively link to a code review will now mark the change requests referenced as done

For example, lets say you are fixing issues from a code review. You solve the problem brought up in the change request b78993b but forget to include it in your comment when checking in the changes:

Fixed the issue

To fix this, you can edit the comment in the properties panel, comparison view or via the command line to add the correct annotation:

[apply-change:b78993b] Fixed the issue

Previously this would do nothing but now it will mark the change request as done.

Public

10.0.16.5882: Aug 12 2021

New

Windows - Plasticfs: Enabled mounting plasticfs workspaces under network share paths

Sometimes running commands under a plasticfs mount can fail with the message 'The volume does not contain a recognized file system.' This is because plasticfs by default do not use the Windows Mount Manager. In order to work around this it's now possible to create workspaces with network paths such as '\\workspace\path' (or any other path in the form ' \\____\____') which will use the Windows Mount Manager and therefore doesn't have this problem.

For example, lets say you have a repository called 'Test Repo' that you want to run a python script in but keep encountering an error similar to the one above. To work around this you can create a new workspace for 'Test Repo' with the path '\\test\repo' that will work for running your python script in.

Creating the workspace in this way has these minor usage issues:

* The 'Open in Windows Explorer' menu option (in Plastic & Gluon) doesn't open the selected folder/file. It just opens a new Windows Explorer window.

* The thumbnail preview doesn't work in Gluon.

* The workspace cannot be moved (using the 'cm workspace move' command).

Bug

All Platforms - JetBrains IDE Plugin: Fixed UI lag after opening files

We detected that some files caused the UI to freeze after opening them. This happened for files that were modified after applying a shelveset in the current workspace. The annotate operation that the IDE runs after open took a long time until it failed.

We modified this so the UI doesn't get stuck anymore. The annotate operation is now safely running in the background and doesn't block any other underlying Plastic SCM operations.

Public

10.0.16.5859: Aug 05 2021

New

All platforms - All clients: Wake On Lan support added to clients.

If your personal server runs on a different computer and it goes to sleep but supports WOL, the Plastic clients will send a magic Wake On Lan packet to try to wake it up.

We added support for Linux, Windows and macOS, but the feature is still kinda experimental, so do not hesitate to contact us with suggestions.

New

macOS - Command line client: .NET Core 'cm' is here!

All the macOS installers will now bundle a netcore-compiled command line client!

From now on, the command line client ("cm") will be a netcore-based application, replacing the mono-based command line client, that had several stability glitches, it lacked of some features (latest SSL protocols)... but now we use the netcore-based "cm" application compiled to target macOS specifically.

Enjoy!

IMPORTANT REMARKS:

1- This new CLI client doesn't support issue tracker extensions yet. If you're using them, you might detect that checkins aren't logged in the configured issue tracker. We'll add support for that feature again in the future.

2- The cm sync git feature is not yet available, due to a compatibility issue with native libraries and this new compilation of "cm" in .NET Core. We will enable this feature really soon (next release). So, if you're using this feature in macOS, we recommend NOT TO UPGRADE to this version.

New

Windows - Plastic: Editing changesets to retroactively link to a code review will now mark the change requests referenced as done.

For example, let's say you are fixing issues from a code review. You solve the problem brought up in the change request b78993b but forget to include it in your comment when checking in the changes:

Fixed the issue

To fix this, you can edit the comment in the properties panel, comparison view or via the command line to add the correct annotation:

[apply-change:b78993b]  Fixed the issue 

Previously this would do nothing but now it will mark the change request as done.

New

Windows - Plastic: Added support for FoxPro syntax highlight.

Now Plastic SCM displays syntax coloring for .prg source code files in the Diff Viewer (Windows only).

New

All Platforms - Command line client: The command "cm changeset edit" now correctly handles GUIDs

Previously this command only worked with changeset numbers. It now works if you refer to a changeset by its GUID.

Example:

cm changeset edit "89095131-895d-4173-9440-ff9ef9b2538d@project@cloud" "Changing my commit message"
New

All platforms - Plastic: Improved explanation text for directory conflicts

We add the words "Yours" and "Theirs" to the source and destination of a merge conflict to make it really clear where each conflicting change is coming from.

New

All Platforms - Server: Added the 'authtoken' command for generating authentication tokens.

$ plasticd authtoken
NEW-KEY-GENERATED

This is useful if your Plastic SCM server is using LDAP or Active Directory authentication. In this case, we strongly encourage you to enable auth tokens for security reasons.

You can enable it by editing your server.conf and add the following key:

<LdapTokenPrivateKey>NEW-KEY-GENERATED</LdapTokenPrivateKey>

Where NEW-KEY-GENERATED will be actually the output of the 'plastic authtoken' command.

New

Windows - Gluon: switch to changeset

This change is part of a set of changes mainly aimed at improving the workflow for Artists working in Unreal, but it is available to all users.

Artists working in Unreal often run into problems because of the coupled nature of game engine code and assets. It is not clear to the Artist which changeset to work on, and if they choose incorrectly then checkins can overwrite game code.

We have added a menu option to the Changesets view that allows you to switch the workspace to a specified changeset. This allows Artists to ensure their entire workspace is consistent and in the correct changeset.

Here is where you'll find the new option:

New

Windows - Gluon: Custom actions for Changesets

You can now configure custom actions that can be launched from the Changesets view context menu.

This feature has been available in Plastic for some time, and now we've made it available to Gluon users too.

Check out this blog post about [https://blog.plasticscm.com/2017/12/introducing-plastic-scm-external-tools-actions.html configuring external tools].

* How to configure External Tools for changesets

Add a new configuration file 'externaltools.conf'.

It allows you to specify external applications and arguments to pass to them. This is the syntax:

changeset | <toolName> | <pathToExecutable> | <args>

- toolName: The name of the tool to be displayed in the context menu

- pathToExecutable: Absolute path to the targeted application

- args: The arguments to be passed to the targeted application. There are three currently supported placeholders: @object (replaced with the object name), @repository (replaced with the repository of the object) and @wkpath (replaced with the current workspace path). Please note that the replaced values might contain blank spaces, so they'll probably need to be surrounded with quotes.

Examples:

changeset | Label changeset | "C:/Program Files/PlasticSCM5/client/cm.exe" | label create lb:MyLabel cs:@object

This will create a menu item "Label changeset" under "External Tools" which applies the label "MyLabel" to the selected changeset.

It should look like this:

You can add multiple external tools - just add a line to the config file for each one.

Bug

Plastic, Gluon - Linux: Release notes link not working

The release notes link in the About window on Linux didn't open the browser when clicking it. We fixed this behavior

Bug

macOS - Plastic, Mergetool: Fixed exception restoring differences in certain scenarios.

In macOS, when trying to restore a difference was placed in the last line on the right editor, it failed with an "Index out of bounds" exception. Now it's fixed.

Bug

Windows, Plastic: Fixed low contrast texts in Windows GUI for dark themes.

This is just an aesthetic issue. Using some themes (montana-dark, i3), the progress panels that appeared in the bottom when performing and "Update" or "Checkin" operation contrasted bad with the background. Now it's fixed.

Bug

Windows - Plastic: fixed error when deleting multiple branches

We corrected an unexpected error when deleting multiple branches at the same time. Note, the branches were deleted correctly, but an error was produced when updating the view after the delete.

Bug

Windows - Plastic: Fixed problems with Jira bound to Plastic changesets

When you link a changeset to a Jira task there was an error that showed that the specific repository wasn't found. Now this is fixed, and you can select a changeset at the branch explorer view and click on any changeset without getting this error.

Bug

All platforms - Server: Fixed server issue using security triggers.

Having a security trigger configured, the server could fail and terminate when an unauthorized user tried to get info from a repository. Now, it's fixed

Public

10.0.16.5816: Jul 28 2021

New

All platforms - Client and server: Improved Active Directory security and performance

Now companies using Active Directory with Plastic server and clients running on Windows will benefit from extra performance (token based security) and security (we now use the underlying Negotiate protocol).

To take advantage of it:

* Upgrade clients and servers to this version.

* Set LdapTokenPrivateKey in server.conf. Check how to configure this value with support.

Bug

All platforms - Web UI: Fixed xlink navigation on cloud

Bug

All platforms - Web UI: Update the assigned reviewers menu badge when deleting the last one

Public

10.0.16.5790: Jul 26 2021

New

All platforms - Web UI: Image display

- Enabled image visualization on all pages;

- Removed the size limit for images on File explorer;

- Zooming is not currently supported but will be added in the future.

Bug

All platforms - Web UI: Fixed xlink navigation in file explorer for cloud or enabled organization

Public

10.0.16.5780: Jul 21 2021

Bug

All platforms - Plastic: Better error handling when trying to show user profile in a cloud server

When opening the user profile tab in the preferences panel, we were showing a connection error every time the user selected a cloud server. This is because cloud servers don't support user profiles, and the connection always fails.

Now we handle this error, and show a proper error message when selecting a cloud server:

Bug

All platforms - Web UI: Fix file download and image display on cloud

Bug

All platforms - Web UI: Fixed the following issues

- not being able to order lists when some data was empty;

- enabled file history details for all types of entries;

- restricting the display of the title of a code reviews to two lines for long titles (the plastic desktop client appends the branch description to the title);

- showing 0 reviewers in the code review details header if there are no reviewers added;

- when showing an alert the focus moves to it;

- allow to see the comments list when clicking on the comments button when viewing the details of a comment or have the new conversation form opened;

- closing the file explorer branch/label filter when selecting an item and preventing it from closing when clicking on the pagination.

Bug

Command line client: fixed exception during check-in when console window is narrow

We fixed a bug in building the animated check-in progress bar that caused an exception when the console window was too narrow to display the progress.

Bug

All platforms - GitSync: The character '|' is allowed in the repository name.

Before, the sync could not start if the character '|' was included in the repository name. It failed with the error "The git sync repository attribute cannot be properly parsed".

Public

10.0.16.5753: Jul 14 2021

New

All platforms - Web UI: File history UI update

- Consolidated the look & feel of the file history page.

- Extended the capabilities of search and filtering.

New

All platforms - CLI: Undo operation from outside the workspace

The undo operation of the Plastic CLI could only be performed from inside the workspace where the changes were to be applied. We changed this behavior, and now you can specify an absolute path to undo the changes in any workspace.

New

All platforms - Web UI: Individual views UI refresh

- Consolidated the look & feel of the branch, changeset & label details.

Branch details

Changeset details

Label details

New

All platforms - CLI: Add SSO working mode in clconfigureclient

Now you can configure your Plastic client from the command line using SSO. You need to specify the user, server, and SSO token. Like this:

clconfigureclient --language=en --workingmode=SSOWorkingMode --user=alvaro.berruezo@unity3d.com --server=codice@cloud --token=YOUR_TOKEN
Bug

All platforms - Web UI: Code review assigned to me filter now works with multiple reviewers

Previously the filter would only check the first reviewer in the list. Now, we check every user for a match.

Bug

All platforms - Plastic, Gluon: Fixed issue when obtaining user profiles

In the "User profile" tab inside the preferences panel, sometimes there was an issue retrieving the profile from the server:

Cannot retrieve the profile from localhost:7178. Details: Error: ConnectFailure (Connection refused)

We fix this issue - now we check if the server is listening before asking for the profile.

Bug

All platforms - Web UI: Fixed the following issues

- Redirecting the user to the repos list if it doesn't have permissions for the current repo;

- Fixed spacing issues between file list and readme contents;

- Fixed navigation to the label diff from the labels list.

Bug

All platforms - Command line: Replica progress showed weird messages.

If you ever seen a weird message like this in your replica:

$cm clone codice@skullcito.codicefactory.com:9095 codice@localhost:6060 --authmode=LDAPWorkingMode --user=pablo --password=supersecret
Destination repository 'codice@localhost:6060' already exists and it's empty.
[#####.........................................................]
- Total active users:     {0}                             (8217)path is already used. Please unload the item (from the configuration view) and retry the operation.                             (0)
Fetching metadata               [###############...............]
Pushing metadata                [..............................]
Introducing data                [..............................]
[code]

The "total active users thing" there.

We just fixed it. We broke it during our localization effort, but it is now fixed.
Bug

All platforms - Web UI: Code review file list fixes

- Files that have been merged are now correctly displayed under the "merges" category.

- Changes to file system permissions are no longer hidden from the file list.

- Merge groups are now displayed and include the spec of the merge source.

- Refactor groups are also now displayed.

Overall, the file list in Web UI should now closely match the layout and format of the desktop client.

Bug

All platforms - Web UI: Fixed the following issues

- Fixed editing the title of a code review

- Clearing alerts when navigating to another url

Public

10.0.16.5710: Jul 07 2021

New

All platforms - Plastic, Gluon: Makefiles considered as txt files

Before this change, we were considering Makefiles as binary files by default, and users had to manually add the following lines in filetypes.conf to consider them as text files:

Makefile:txt

makefile:txt

Now they are considered as text by default

New

Windows - Visual Studio Plugin: The plugin doesn't modify the .csproj anymore

Our VS plugin used to write some properties in the project file (.csproj) to know whether the project is under Plastic version control.

Now, the plugin will automatically detect whether you're using Plastic as Source control directly, without any need to use those properties.

New

All platforms - Plastic, Gluon, Command line client: Checkin operation performance improved: 2x faster!

We tweaked the default thread pools the checkin operation uses to upload data to the plastic server.

With these new default settings, we expect the checkin operation to be 2x faster than older default settings (since we doubled these default thread pool values).

We used the following setup to compare the old default values:

* Hardware: bare Intel Xeon E5 1620 @3.6GHZ, 8GB RAM, 8 cores, Windows 10

* Networking: 1gbps wired network

* Plastic workspace: 20000 files, 2000 directories, 1.25GB total workspace size

* checkin the whole workspace to a plastic cloud repository by using command line:

cm checkin c:/perf_workspace --timer --silent

Results:

* With old default settings, the checkin took 174 seconds.

* With new default settings, the checkin took 72 seconds (2.4x faster)

New

All platforms - Web UI: Branches list UI update

- Consolidated the look & feel of the branches list.

- Extended the capabilities of search and filtering.

New

All Platforms - Server: Fixed multiple repositories with same name in concurrency scenarios.

If users attempted to create repositories with the same name at exactly the same time, sometimes the system would allow it. This has been fixed so you can no longer have duplicate repositories.

New

All platforms - Web UI: Labels list UI update

- Consolidated the look & feel of the labels list.

- Extended the capabilities of search and filtering.

New

All platforms - Web UI: Changesets list UI update

- Consolidated the look & feel of the changesets list.

- Extended the capabilities of search and filtering.

Bug

Windows - Plastic: Fixed unexpected error in the branch explorer

Sometimes, when clicking on the branch explorer before it finished launching, Plastic may throw an unexpected error. We protected this scenario and now it won't happen

Bug

All platforms - Web UI: Fixed file explorer performance issues when viewing large files

Bug

All platforms - All clients: The LDAP/auth token expired wrongly displayed.

Two error messages were potentially displayed wrongly:

The LDAP token expired. User: xxx

The auth token expired: User: xx

It happened if:

* You were using Unity ID (SSO)

* And you changed your password in unity.com

* And your client.conf was pointing to your_org@cloud instead of "local" which is the default

Under these circumstances, instead of asking you for creds, a bug in the code just complained about the situation without providing a solution.

Fixed.

Bug

Windows, macOS - Plastic: Added warning to Code Review when item cannot be shown

We improved the user experience for two scenarios:

1. A file is added, somebody makes a Code Review comment on it, and then that file is deleted in the same branch.

Previously in this case, clicking on the comment did nothing at all. This is because we can't show the deleted item. We improved this scenario by showing a warning to the user.

2. A deleted file with a comment is not visible in the file list due to a filter

Previously in this case we would fail to show the file because it is not visible due to the filter. On Mac, we now show a warning in this case. On Windows, we clear the filter (and warn the user) so that the item can be shown.

Bug

All platforms - Web UI: Code review changesets change

Fixed a bug where, in code reviews, when changing changesets, it wasn't selecting the first file in the list.

Bug

All platforms - Plastic, CLI: Allow checkin pending changes under an out of date Xlink

The incoming changes said the message "There's nothing to download :-)" when you tried to checkin pending changes under a Xlink that was out of date. As a result, the checkin could not be completed.

This happened when someone else worked directly against the repository of the Xlink and created a new changeset on it. Thus, the parent repository (the one that contains the Xlink) points to the branch head although there are new changes on the branch of the Xlink repo that needs to be merged.

Now the checkin requires a merge on the Xlink. After running the merge, the checking can be completed.

Public

10.0.16.5668: Jun 30 2021

New

Windows - Plastic: Auto-update!

Now you can update Plastic on Windows to the latest version from within the application itself.

When Plastic detects that a new version is available, the help panel will display a notification telling you which version is available. On the help panel is a link to download the latest version.

Here is the new version notification:

Simply click the link to download the update. You'll see progress in the notification bar at the bottom of the screen.

Downloading:

Once downloaded, you can click the button in the notification bar to launch the updater and restart Plastic.

Restart & upgrade:

New

All platforms - Web UI: File annotations

Added support for file annotations (blame).

Bug

All platforms - Web UI: Fixed the following issues

- Corrected the code review reviewed button selected color

- Added missing latest changeset description to the file view

Bug

All platforms - Web UI: File annotations

- Fix annotations starting one line earlier.

- Fix failing navigation from annotations to the branch.

- Added default comment when there isn't one.

Public

10.0.16.5664: Jun 29 2021

New

Windows - Visual Studio Plugin: The plugin doesn't modify the .sln anymore

Our VS plugin used to write some properties in the solution file (.sln) to know whether the solution has Plastic configured as version control.

Now, the plugin will automatically detect whether you're using Plastic as Source control directly, without any need to use those properties.

Bug

All platforms - Web UI: Code review semantic diff fixes

Semantic diff has been reenabled after being fixed. You'll now be able to use semantic diff on code reviews for all supported file types.

Bug

Windows - Visual Studio Plugin: Fixed null reference opening the workspaces dialog

Using the Plastic plugin for Visual Studio, you would run into a null reference exception if you clicked the "Change current workspace" button in the "Workspace working info" panel and you don't have any workspace registered. This unlikely scenario could happen if you have a valid workspace on disk but an empty list of registered workspaces for your client in that machine.

Bug

All platforms - Plastic onboarding: Cannot create an organization from the signup flow

Few releases back (10.0.16.5473) the possibility of creating an organization after signup got broken. Fixed.

Public

10.0.16.5642: Jun 16 2021

New

All platforms - All GUIs: Improvements to Korean translations

We changed the translations of attribute and property based on user feedback. Thanks!

Bug

All platforms - Cloud Server: Jet repository backup could misplace Jet metadata files under rare conditions.

This could lead to issues accessing the affected repository until an administrator manually solved the issue. This is now fixed!

Bug

All platforms - Command line: Can't replicate with fresh Cloud Edition.

We had a bug that made fresh Cloud Editions not using profiles (just using the default config) unable to replicate from its local server to cloud (or clone, pull) because the credentials were not sent correctly to the local server to connect to cloud.

It only happened using command line if no replica from GUI happened first.

It is fixed now.

Public

10.0.16.5622: Jun 10 2021

Bug

All platforms - WebAdmin: We fixed a critical security issue in WebAdmin.

If you're running an on-prem Enterprise server, you should update immediately to ensure the security of your Plastic installation. It fixes some security issues we found in our WebAdmin server management interface.

Public

10.0.16.5615: Jun 09 2021

New

All platforms - All clients: The workspace tree (plastic.wktree) file format has been changed to read/save it in a much faster way!

We have tested the new format with different workspace sizes (with 80000 and 400000 files/directories) and in different machines. The improvements are the following:

* The time reading the tree is x2, x4 or even x10 times faster (depending on the machine tested).

* The time writing the tree is almost x2 times faster on average.

Some examples:

* Reading an workspace tree of 77000 items took 490 ms. Now, it takes 109 ms.

* Writing an workspace tree of 77000 items took 142 ms. Now, it takes 79 ms.

By default, the old format will still use. You can enable this format by adding the following setting on your client.conf. But this new format is not compatible with the Unity plugin yet. So, if you are a Unity user, please don't do it.

<EnableNewWorkspaceTreeFormat>yes</EnableNewWorkspaceTreeFormat>

This format was originally published in release 10.0.16.5574 but we unpublish it because of the Unity plugin incompatibility.

If you don't enable the new format, this version will revert the workspace tree to the previous format. This will allow you to use the workspace with the Unity plugin again.

Some extra background about the file: The workspace tree metadata is stored in the plastic.wtree file inside the workspace metadata folder (wks/.plastic). This file is read every time use a workspace in the GUIs for first time or when running a cm command for a workspace. It is written every time we do a changes in the workspace (switch to a different branch/changeset, run an update, do a checkout, undo some changes, etc). Its size depends on the number of items loaded in the workspace, so for big workspaces the time reading (or saving it) can affect to the performance of the clients.

New

All platforms - Web UI: File Explorer README.md support

Added support for README files in the File Explorer.

New

All platforms - Web UI: Various improvements

- If there are assigned code reviews, when visiting the code review list for the first time, it shows the assigned reviews, otherwise, it shows all reviews.

- Avoiding resetting data when navigating from one list to another.

- Lowered the minimum loading transition animation

New

All platforms - TeamCity plugin: Versioned settings is now supported!

We extended our plugin to support the Versioned settings feature in TeamCity. You can now enable it in any TeamCity project that consumes a Plastic SCM VCS root.

More info about Versioned Settings here .

New

Plastic Triggers: Wildcard support in repository filtering.

Triggers can now use wildcards to their repository filters, so they apply to either a single repository or a selected group of them.

Now, when you add a repository filter to your trigger, you can specify the exact repository name or use * as a wildcard. This would affect multiple repositories that share part of the name.

Examples:

* For all your repositories rep:*

* For your website_intranet repository rep:website_intranet

* For all your website repositories rep:website*

Try more! rep:*web* o rep:*intranet...

More info about Plastic triggers https://www.plasticscm.com/documentation/triggers/plastic-scm-version-control-triggers-guide

Bug

All platforms - Web UI: prevent duplicate code reviews

Bug

All platforms - Mergetool: Fixed MarkAsUnresolvedButton key

There was a missing key in one of the buttons in MergeTool, so the text wasn't being translated to the chosen localization

Before:

After:

Bug

All platforms - Mergebot plugin for TeamCity: Fixed systematic failures after a single build failure

The Mergebot plugin started failing systematically from the moment a build failed. This happened because the first thing the plugin does is to undo all changes in the build workspace. Since the mergebots use temporary shelvesets that get deleted if the build fails, the 'undo' command failed in the agent workspace. All following builds would fail to checkout their sources.

We fixed that by protecting that initial 'undo' against errors.

Bug

All platforms - Web UI: branch/changeset/label owners are no longer the current user and now show the correct owner

Bug

All platforms - Web UI: Fixed the app not starting on Safari

Bug

All platforms - Web UI: Fix alerts not showing on some areas of the application

Bug

All platforms - Plastic, Gluon: Fixed sign in with email in Enterprise Edition

When signing in to a cloud server in the Enterprise Edition of Plastic or Gluon, if using the email and password method, sometimes the sign in operation could never end, showing a progress icon forever.

We fixed this, and now the operation either completes successfully or shows an error

Bug

All platforms - Server: Fixed an issue related to the calculation of the changesets to pull when it involved moved changesets.

Now the pull preview doesn't show the moved changesets as pending to replicate. Previously, the pull preview ('cm pull br:/main@repoA repoB --preview') showed the moved changesets as pending to replicate (incoming changes or outgoing changes). Those changesets were proposed again and again, as the replication skip them as they were already replicated.

Bug

All platforms - Server: The branch head was not properly set after moving a changeset that was in a 'subbranch'. Fixed.

After moving a subbranch changeset like the selected ones (in pink) in the image, the branch head was not properly updated. Now it's fixed.

Bug

All platforms - Web UI: Various fixes

Code review details:

- Hide reply text area until the reply button is pressed

- Added tooltips for conversation's icon buttons

Breadcrumbs:

- Fixed organization not showing in the breadcrumbs on cloud

Date picker:

- Default date ranged changed to last two months from last week.

Bug

All platforms - Web UI: Removed semantic diff on code reviews until it's fully implemented.

Bug

All platforms - Plastic: Error when deleting private files has been fixed.

There was thrown an error when trying to delete multiple private files at the same time. It was broken in prevoius version 10.0.16.5533. Now it is fixed.

Bug

All platforms - Web UI: Fixed Code reviews diffs navigation

Bug

All platforms - Web UI: Clear API error when refreshing the authentication token

Bug

All platforms - Web UI: Reversed code reviews changesets list order to match Plastic desktop

Public

10.0.16.5574: Jun 02 2021

New

All platforms - All clients: The workspace tree (plastic.wktree) file format has changed to read & save it much faster!

We tested the new format with different workspace sizes (with 80000 and 400000 files/directories) in different machines:

* The time reading the workspace tree metadata is 2x, 4x or even 10x times faster than previous release.

* The average time writing the workspace tree metadata is up to 2x times faster than previous release.

Some examples:

* Reading a workspace tree of 77000 items took 490 ms. Now it takes 109 ms.

* Writing a workspace tree of 77000 items took 142 ms. Now it takes 79 ms.

Some extra background about the plastic.wktree file: The workspace tree metadata is stored in the plastic.wktree file inside the workspace metadata folder ( $YOUR_WORKSPACE/.plastic ).

This file is read every time a desktop application (Plastic, Gluon) opens a workspace for first time, or when running a command line operation for a workspace.

It is written every time we perform any change to the workspace (switch to a different branch/changeset/label, run an 'update workspace', checkout a file, undo pending changes, etc.).

Its size depends on the number of items loaded in the workspace. So, for big workspaces, the time reading (or saving) it can affect to the performance of the clients.

New

All platforms - Web UI: File Explorer README.md support

Added support for README files in the File Explorer.

New

All platforms - Web UI: Various improvements

- If there are assigned code reviews, when visiting the code review list for the first time, it shows the assigned reviews, otherwise, it shows all reviews.

- Avoiding resetting data when navigating from one list to another.

- Lowered the minimum loading transition animation

New

All platforms - TeamCity plugin: Versioned settings is now supported!

We extended our plugin to support the Versioned settings feature in TeamCity. You can now enable it in any TeamCity project that consumes a Plastic SCM VCS root.

More info about Versioned Settings here .

Bug

All platforms - Web UI: prevent duplicate code reviews

Bug

All platforms - Mergetool: Fixed MarkAsUnresolvedButton key

There was a missing key in one of the buttons in the MergeTool, so the text wasn't being translated to the chosen localization

Before:

After:

Public

10.0.16.5533: May 25 2021

New

All platforms - Web UI: Loading states

All the new views like the repository list, file explorer and code review have new loading states to avoid displaying wrong states before the content is loaded.

New

All Platforms - Plastic: confirm deletion messages for labels and branches have been improved!

Now when trying to delete one or multiple labels/branches from both the Branch Explorer and the Labels/Branches View, a more specific message about what you are about to delete is shown.

Check the following screenshots for labels:

Windows

macOS

Linux

And screenshot for branches:

Deletion message for code reviews was also improved:

Bug

All platforms - Web UI: fixed xlinks in file explorer

Clicking an xlink in the file explorer no longer causes an error to occur and instead correctly displays the file or directory selected.

Bug

All platforms - Web UI: Repository list now correctly shows when a repository was last updated instead of the name of the creator

The last modified is calculated from the date of the most recent changeset for a repository. This'll help you quickly determine which repositories are active and whether there has been changes since you last looked.

Bug

All platforms - Web UI: Code Review: Fixed switching changesets not changing the changeset date

Bug

All platforms - Web UI: Fix File Explorer not showing files when organization and repository have the same name

Public

10.0.16.5508: May 20 2021

New

All platforms - Command line client: encoding set to UFT-8

We now automatically set the console input and output encoding to UTF-8 so that East Asian languages can be displayed correctly. Note: you must select a font containing glyphs for your language for the output to display correctly.

New

All platforms - Server: The max number of worker threads is now limited to MaxWorkerThreads * 10.

This value can be defined in the server.conf file.

<MaxWorkerThreads>64</MaxWorkerThreads>

The default value used is the number of processors * 4 (when the value is not defined in the server.conf).

New

All platforms - Web UI: File explorer UI refresh

Refreshed the UI of the main File Explorer list. Individual file/history views will be refreshed in the next update.

New

All platforms - Web UI: File Explorer updates

On the roadmap to unify the design we updated the following in the File Explorer section:

- Updated the File View design and fixed page double scroll

- Tweaked the File History design, a full update is pending

- Set the file name as the default ordering for the File list, folders and xlinks are grouped and take priority

Bug

All platforms - Web UI: Code review list comment count fix

The comment count is now correctly displayed for each code review in the code review list.

Bug

All platforms - Gluon: Fixed Enterprise Edition onboarding when using a Cloud server.

When connecting to a Cloud server from the Enterprise Edition Gluon onboarding, there was an error that prevented the user from listing the repositories in the server. We fixed this issue, and now you can connect to any kind of server from the onboarding

Bug

All platforms - Cloud Server: Client calls could get stuck in the server side while other (and unrelated) organization was loading its users. Fixed.

The cloud servers use a lock to handle the security of each organization. The problem was that the load of the organization's users were done inside this common lock, so if the users loading for one organization was very slow, other organizations were hit by this. Now, the loading of the organization users is done outside this lock.

We suffered issues in the US East region due to this issue from 2021-May-14 to 2021-May-16 leading to tons of calls stuck due to this.

Public

10.0.16.5459: May 12 2021

New

All platforms - Web UI: Code review list redesign

We've just launched the redesign of the code review list and we are working hard towards refreshing all the other pages soon!

New

All platforms - Web UI: Breadcrumb navigation

- Added repositories top menu item & removed the link from the logo

- Added breadcrumb navigation to Code reviews section and File explorer

Bug

Server - All platforms: The new .net core server could reject all connections if remoting.conf exists

This is not a very common situation, and probably only hit us during testing, but if you start one of the new .net core based servers and by mistake an old remoting.conf was there (instead of network.conf) then all the socket settings are set to zero, including timeouts, so connections were established but the server would drop them immediately.

Client would see something like:

>cm repo list localhost:8085
Error: Unable to negotiate connection with server localhost:8085. Most likely the server does not support the new Plastic Protocol. Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
Bug

Windows - Plastic: repositories tree view fix

The error "an item with the same key has already been added" was displayed when creating and deleting repeatedly repositories with the same name.

Now you are allowed to see your repo list without any difference in your preferred view, list or tree view.

Bug

All platforms - Web UI: fix scrolling issues

Navigating diffs in code reviews is now a more consistent and enjoyable experience. Scrolling upwards with a touchpad in a diff no longer stalls and navigating to a comment in a code review doesn't scroll past the line in the diff.

Bug

All platforms - Web UI: Fixed the following issues

- Ordered code review list by date instead of title

- Fixed broken code review date

- Fixed navigating submodules

Public

10.0.16.5432: May 06 2021

New

macOS - Plastic, Gluon: plastic links now functional!

Plastic Links are a great way to share content from your plastic repositories with your colleagues. You can easily share diffs, links to files and links to code reviews using Plastic Links. This feature first came to Windows, and is now available on mac!

* What is a plastic link? A plastic link is a URL that looks something like:

plastic://myorg.cloud/repos/toolsrepo/changesets/50/diff

* How do I open it?

Just click on the link in the normal way and Plastic or Gluon will launch (if not already running) automatically and show you the content specified in the link.

* How do I create a link to share with my colleagues?

From within Plastic you can share diffs from any diff view by clicking on the Plastic Link icon in the top right corner. This copies the link into your clipboard, ready to paste into a message.

You can also share links to code reviews.

From Gluon you can get links to controlled content by clicking the Plastic Link icon in the file properties panel.

New

All platforms - Plastic, Unity Plugin: Changed the Privacy statement text for Plastic to reflect Unity's privacy statement.

New

All platforms - Plastic, Unity Plugin: Added the "Turn off Plastic SCM" feature, with which you can disconnect your project from version control.

New

macOS - Plastic, Gluon: SSO credentials dialog now is cancellable

When you are trying to perform an operation on a cloud server and are not authenticated, the credentials are asked through a modal dialog. This dialog was not cancellable, so if you wanted to return to the application you had to enter some credentials.

Now we added the possibility to close this dialog by pressing the Escape key.

Bug

All platforms - Plastic: Fix "Invalid session token" error

When using SSO, if the current token has expired, Plastic renews it automatically. For some API calls, this renewal was not taking effect until the application was restarted, resulting in an "Invalid session token", even though the token was already renewed. We fixed this error and now the new token is used as soon as it is renewed.

Bug

Windows - Plastic: Fixed exception when closing code review too quickly

If you close a code review before it finishes loading, you may get an unexpected exception. We fixed this issue, and now you can close it as soon as it appears on the screen

Bug

macOS - Plastic, Gluon: stability improvements

We corrected a potential source of exceptions in the diff window and code review window. Hopefully you'll find Plastic on mac more stable going forward.

Bug

macOS - Plastic, Gluon: further stability improvements on mac

We found and fixed a potential source of crashes in the Pending changes view and the semantic diff outline caused by trying to display a dialog when it was not possible.

Public

10.0.16.5397: Apr 29 2021

New

Windows - Server: All the windows installers will now bundle a netcore-compiled plastic server!

We moved all windows installers to netcore flavor on the server side. This is a step forward on move all our products to .Net Core stack on all supported OS, for the sake of stability, security and performance.

Remarks:

* SQL-based backends support will end up with netcore installers. Just super-fast 'Plastic Jet' backend will be the way to go.

* The installer & binaries size of netcore server increased compared to net framework server, but we will address this soon.

New

All platforms - Cloud Server: Reduced the number super-slow downloads (> 10s) from cloud regions.

The cloud servers use a local cache to reuse the data downloaded from the blob storage.

The process of calculating the data to clean from this cache was very slow. So, this could hit the performance of the calls that downloaded data from the cloud servers (update, merge, diff, etc) while this calculation was completed.

This time was greatly optimized from 30 s to 0.2 s, so client calls are not hit anymore by this calculation.

It only affected to the EU West & US East regions (since they are the ones with biggest usage) around 6-8 times per day.

New

All platform - Server: Improve calculate merge performance

We greatly improve the time to calculate a merge that involves several deleted files on both contributors. For example, we reduce from 273s to 1.5s the time to calculate a reported merge case with over 50 thousand deleted files on both contributors.

The incoming changes also takes advantage of this improvement.

New

All platforms - Server: potential deadlock on git server feature fixed.

The plastic server is able to act as a git server (More info here ).

It could happen that performing a git push on a repo previously cloned from a plastic server acting as a git server to get stuck. Now it's fixed.

New

All platforms - Eclipse: Cannot create label in a cloud org repo.

The eclipse plugin is throwing an Invalid changeset spec error when creating a new label in the "Labels" view. This only happens when the server is a cloud server. Example: myrep@awesomeOrg@cloud .

Now it's fixed.

New

Linux - GitServer: potential deadlock on git clone using http basic auth fixed.

We detected in some distros that using git server feature with http protocol and basic auth enabled on netcore server could cause a potential deadlock issuing a git clone from a plastic repo. Now it's fixed.

Example of the command that got stuck:

git clone http://user:pass@plastic_server:5555/my_repo  /home/user/git/my_repo
New

All platforms - Plastic, Gluon: Plastic 10 About image

To celebrate version 10 of Plastic, we updated the About dialog with a new design. Check it out:

New

All platforms - Web UI: Code Reviews overall performance fixes.

New

All platforms - Plastic, Gluon: Use the same SSO credentials for different organizations

If you use the same credentials for more than one organization, now you just need to sign in to one of them. When trying to access the other organizations, Plastic will try to reuse the already existing credentials, so you don't need to authenticate again

New

All platforms - Web UI: Repositories list redesign

We've just launched the redesign of repositories list.

We are still working and adding features on it, so, more to come in the following weeks.

Bug

All platforms - Gluon: Fixed UI freezing when loading previews for big images

Sometimes when selecting big images (> 10MB) in the workspace explorer or checkin changes views, calculating the preview made the GUI freeze for some seconds.

Now there is a warning before showing the preview that allows you to manually choose whether to calculate it or not. When selecting to show the preview, now the GUI doesn't freeze anymore.

Bug

All platforms - Command line client: fixed cm when language forced to English in config file

In a recent release we made it possible to force Plastic to run in English on non-English systems, by setting an arbitrary value (like "en_force") as the Language in client.conf. Unfortunately, this broke cm, because it would complain about the invalid language. We fixed this.

Bug

macOS, Linux - Plastic: Fixed issue when creating a distributed workspace

During the onboarding, when choosing to work distributed and selecting a repository from the "Browse" menu, Plastic was always showing an error: "The selected repository must be a cloud repository", even after selecting a cloud repository

Bug

All platforms - Web UI: Fixed an issue with Code Reviews where new comment line highlighting and icon were disappearing after opening the dialog to add a new comment.

Bug

All platforms - Web UI: Repositories & Code reviews fixes

- Ordering repositories is now case insensitive

- Increased repositories list limit from 10 to 20 items

- Automatically focus on a reply or new conversation text area when changing conversations or adding a new one

- Preventing file change if the current comment revision didn’t change

- Fix not setting the changeset id when creating a comment

- For single editor fix scrolling to the first comment

Bug

Windows - Installers: Fixed certificate validation issue.

We had to unpublish release 10.0.16.5362 since the signing certificate we use to sign the installers was suddenly revoked. The certificate has been renewed,

and installers are now properly signed with a valid certificate.

Public

10.0.16.5362: Apr 26 2021

New

All platforms - Server: Improve calculate merge performance

We greatly improve the time to calculate a merge that involves several deleted files on both contributors. For example, we reduce from 273s to 1.5s the time to calculate a reported merge case with over 50 thousand deleted files on both contributors.

The incoming changes also takes advantage of this improvement.

New

All platforms - Server: potential deadlock on git server feature fixed.

The plastic server is able to act as a git server (More info here ).

It could happen that performing a git push on a repo previously cloned from a plastic server acting as a git server to get stuck. Now it's fixed.

New

All platforms - Eclipse: Cannot create label in a cloud org repo.

The eclipse plugin is throwing an Invalid changeset spec error when creating a new label in the "Labels" view. This only happens when the server is a cloud server. Example: myrep@awesomeOrg@cloud .

Now it's fixed.

New

Linux - GitServer: potential deadlock on git clone using http basic auth fixed.

We detected in some distros that using git server feature with http protocol and basic auth enabled on netcore server could cause a potential deadlock issuing a git clone from a plastic repo. Now it's fixed.

Example of the command that got stuck:

git clone http://user:pass@plastic_server:5555/my_repo  /home/user/git/my_repo
New

All platforms - Plastic, Gluon: Plastic 10 About image

To celebrate version 10 of Plastic, we updated the About dialog with a new design. Check it out:

Bug

All platforms - Gluon: Fixed UI freezing when loading previews for big images

Sometimes when selecting big images (> 10MB) in the workspace explorer or checkin changes views, calculating the preview made the GUI freeze for some seconds.

Now there is a warning before showing the preview that allows you to manually choose whether to calculate it or not. When selecting to show the preview, now the GUI doesn't freeze anymore.

Bug

All platforms - Command line client: fixed cm when language forced to English in config file

In a recent release we made it possible to force Plastic to run in English on non-English systems, by setting an arbitrary value (like "en_force") as the Language in client.conf. Unfortunately, this broke cm, because it would complain about the invalid language. We fixed this.

Bug

macOS, Linux - Plastic: Fixed issue when creating a distributed workspace

During the onboarding, when choosing to work distributed and selecting a repository from the "Browse" menu, Plastic was always showing an error: "The selected repository must be a cloud repository", even after selecting a cloud repository

Public

10.0.16.5344: Apr 15 2021

Bug

All Platforms - WebUI: allow reopening of active comment

We've fixed an issue where toggling the conversation details panel closed prevented a user from clicking the active comment's icon in the diff panel and reopening the details panel.

Bug

All Platforms - WebUI: invalid code reviews now redirect to 404 page

Previously an invalid code review id would lead to a blank page. We've now added a 404 redirect for these invalid ids to ensure a consistent experience.

Bug

All platforms - Plastic: resolved issue where long running merge processes could accumulate on the server

The Plastic client checks the server for incoming changes every minute. This can trigger the server to calculate a merge. If this calculation took longer than a minute, the calculation would be triggered again and these processes could accumulate, pointlessly using server resources.

We fix this by ensuring that the calculation will not be requested if another calculation is already in progress.

Bug

Windows - Plastic: Fixed several issues in the initial Sign in/Sign up screen for high-dpi screens.

The initial screen for both Cloud Edition and Enterprise Edition had several issues when they were displayed in high-dpi screens.

Some elements were hidden under the Welcome onboarding process:

'''Sign Up Panel'''

After:

Before:

'''Sign In With Email Panel'''

After:

Before:

'''Add a new connection profile'''

When trying to add a new connection profile, there were missing buttons at the bottom. If the connection the user was trying to establish was over a cloud server, the showed SSO Sign In button was scaled wrong. Finally, when clicking the button and tried to Sign In With Email, the entire panel looked like an accordion.

Before (x 400%):

As you can see, those errors are fixed now:

Public

10.0.16.5338: Apr 13 2021

New

Windows - Plastic: Plasticlinks for code reviews are here!

We heard you and now you can copy and share code reviews with your mates. Check the new link format:

plastic://local/repos/codice/code-reviews/522857
New

All Platforms - WebUI: The new and improved Code Review experience is here!

We reworked the section in order to achieve base parity with the desktop experience and make it responsive and functional on all modern portable devices.

Desktop experience:

iPad experience:

New

All platforms - Web UI: Creating a Code Review dialog removal

When clicking on the "Create Review" button, in the Branches and Changesets lists pages, it doesn't require filling a popup dialog form anymore. The title is pre-generated, and the reviewer is set to the current logged in user.

New

All platforms - Web UI: Filter Code Reviews by Date Range

When viewing the list of code reviews, one can now filter them by a date range. By default, the filter will be for the last month, but seeing the full list is just a click away with our handy date picker.

Public

10.0.16.5328: Apr 08 2021

New

All platforms: Plastic 10 is out!

Plastic turns 10! It has been almost fifteen years since Plastic was initially released and we celebrate it upgrading to an iconic number: 10.

== What was released during last year ==

These are the key features added to Plastic during the last year:

* cloud2. The new Cloud system, visibly faster, more scalable and with more features like triggers, shelves, move changesets from branches and more. We released it back in July 2020.

* Code review for macOS. The code review system landed in macOS, another step towards feature parity across platforms.

* New Unity Plugin. In August 2020, together with the announcement of the acquisition by Unity, we announced a shiny new Unity Plugin that did not stop evolving since. A much better experience for creators, and it is just the beginning.

* Improved Perforce synchronization. Bi-directional sync with Perforce is now multi-branch and expands to Linux and macOS. A huge step ahead for teams willing to migrate out of P4.

* Unity ID OAuth support. Added support to secured, two-factor authentication with Unity ID.

* Added localization for Chinese, Japanese and Korean. We owed this to our great users in Asia. Now Plastic looks native in these languages and our commitment to keep improving and expanding to other areas like documentation stays.

* Security configuration added to Linux and macOS. Now the users of these platforms no longer need to rely on the command line to set permissions.

* We greatly improved image diff.

* Upgraded Linux and macOS servers to run .net core builds. This improves speed and stability and opens a brighter future for cross-platform Plastic.

* Plastic links for Windows. An awesome way to share links to specific changesets and files.

* Whitelist restrictions in servers, both on-premises and cloud.

* Added Incoming Changes support for Linux, a great way to deal with conflicts when working on single branch.

* Added GitSync UI support to Linux and macOS!

* Added Git LFS support when syncing repos from GitHub.

Plus hundreds of bug fixes, usability improvements, great performance gains and minor features.

== What is coming ==

There is really a huge number of new things coming with Plastic 10. Some of them cannot even be unveiled yet, but here you can find a short list:

* Greatly improved code review for webUI.

* Improved Single Sign On support, adding more providers like Google and Okta.

* Plastic links on macOS and Linux.

* Reduce cloud repo sizes.

* Plastic links on macOS and Linux.

* Improvements in how we handle locks.

* Tons of usability improvements.

* Lots of new great features for the Unity Plugin.

* More code review improvements.

* Auto-upgrade…

And many, many more.

Stay tuned!

New

Windows - Server: Installers with .NET Core on server component are now available!

We're about to replace all our windows installers so they will bundle a netcore-compiled server component, replacing the net framework compiled server.

But there will be a transitory time frame where both flavors on Windows installers will live together. The recommended flavor is now the netcore server.

Remarks:

* SQL-based backends support will end up with netcore installers. Just super-fast 'Plastic Jet' backend will be the way to go.

* The installer & binaries size of netcore server increased compared to net framework server, but we will address this soon.

* The default installer proposed to download in plasticscm.com site is still the net framework server.

Bug

All platforms - Server: Fixed file conflict not detected by the incoming changes.

The incoming changes feature didn't detect a specific type of file conflict: someone else modified a file in the branch head, while you moved it and checked it out in your workspace. It was wrongly detected as a file that just needs to update.

Additionally, Plastic didn't apply the change when you updated your workspace, to avoid overriding your local change. The incoming changes view showed the files modified in the branch head as pending, again and again.

Now the file conflict is show and its content is merged during the update.

Let's see a case:

* Setup workspaces wk1 and wk2. Ensure both are up to date, they point to the same branch and contain the file '/foo.c'

* In wk2, edit /foo.c and move /foo.c to /bar.c (don't check it in)

* In wk1, edit /foo.c and checkin

* In wk2, show the incoming changes view and click to update it. -> Item /foo.c appeared as a file that just needs to update. Now it is fixed, and appears as a file conflict.

Bug

All platforms - Plastic, Gluon, Command line client: Fixed wrong source path for a pending move after applying the incoming changes.

The incoming changes view left a wrong source path for a pending moved item. This happened when you exchanged the path of 2 items and both appear as pending moves when you apply the incoming changes.

Let's see a case:

* Setup two workspaces, wk1 and wk2. Ensure they're up to date, loading the same branch with the following content:

/lic.txt
/doc.txt
/readme.txt

* In wk 2, exchange doc and lic files:

mv /doc.txt /lic_tmp.txt
mv /lic.txt /doc.txt
mv /lic_tmp.txt /lic.txt

* In wk1, edit /readme.txt and checkin the change

* In wk2, apply the incoming changes. After applying the changes, the two pending moves are still there but:

** Before this fix, the second one has a wrong source path:

Moved lic.txt -> doc.txt
Moved doc.txt.tmp-833fe88e -> lic.txt

** After this fix, the second one has the right source path:

Moved lic.txt -> doc.txt
Moved doc.txt -> lic.txt
Bug

All platforms - Plastic, Gluon, Command line client: Fixed generic error message while applying incoming changes.

The incoming changes view showed an error message ("An error occurred processing your request") if you updated the workspace in a scenario like the following one:

* Setup two workspaces, wk1 and wk2. Ensure they're up to date, loading the same branch with the following content:

/doc
/doc/admin-manual.txt
/guides
/guides/user-manual.txt
/readme.txt

* In wk 2, unify both folders:

mv /doc/admin-manual.txt /guides/admin-manual.txt
mv /doc /doc_tmp
mv /guides /doc
rm /doc_tmp

* In wk1, edit /readme.txt and check it in.

* In wk2, apply the incoming changes. Before these changes, the operation failed and displayed the error: "An error occurred processing your request". Now it's fixed.

Bug

All platforms - Plastic, Gluon: Reduce the times we ask for credentials when using UnityID.

When using Unity ID login, when the access token was expired, but the refresh token was not expired, the user was incorrectly asked to sign in. There was a bug in the renew token logic that now's fixed.

Bug

Windows - Plastic: Deadlock solved

Plastic could hang if it had to display the credentials dialog on start-up. Now it's fixed.