Unity Version Control 9.x Release Notes
This document contains all release notes for Unity Version Control major version 9.x, organized from newest to oldest.
9.0.16.5315
Public | 2021-04-05
New
SSO included in the Enterprise Edition
All platforms - Plastic, Gluon: SSO included in the Enterprise Edition
So far, we only allowed to sign in with SSO in the cloud editions of Plastic and Gluon, and the Enterprise Edition of Plastic on Windows.
Now we extended this feature, and you can sign in using SSO on every platform, either from cloud or enterprise edition. This is how it looks:
Windows - Gluon:
macOS - Plastic:
macOS - Gluon:
Linux - Plastic:
Linux - Gluon:
Protected the push operation (submitting changes…
All platforms - P4Sync: Protected the push operation (submitting changes to Perforce) when it cannot continue due to some specific changes.
Now, if the Perforce submit operation fails, it tries to skip the changes that make it fail and continue with the rest of them.
Improved the progress of the Perforce multibranch…
All platforms - P4Sync: Improved the progress of the Perforce multibranch pull.
We don't know the total number of changesets to pull in advance, so we just use the last changelist number in the depot to estimate the number of changesets to pull.
Now, we update this estimation after discovering gaps in the changelist numbers. So, don't worry if you see that the number of changesets to pull goes down in the progress, that's what is really happening!
The pull operation could skip changes if the tmp…
All platforms - P4Sync: The pull operation could skip changes if the tmp path contained blank spaces.
This was a problem if the path was looked like 'C:/Users/ruben de alba/AppData/Local/Temp'. It could be easily workarounded by setting the TMP environment variable to a path without blank spaces.
Branch name displayed when trying to switch branch
All platforms - Plastic: Branch name displayed when trying to switch branch
Now when trying to switch to a different branch from the GUI, the confirmation dialog's message shows the target branch name:
macOS
Windows
Linux
Added the recent checkin comments button
All platforms - Gluon: Added the recent checkin comments button
In the Pending Changes view in Plastic there is a "Checkin comments" button, that allows you to quickly fill the checkin comments text box with the previous changesets' comments. Now we added this button to the Gluon checkin view in all platforms! This is how it looks:
Disable all tips
All platforms - Plastic, Gluon: Disable all tips
If you don't want to see more tips in Plastic or Gluon, now you can mark the "Disable all tips" checkbox inside any help panel to disable all of them at once. If you want, you can still show them manually from the information button
9.0.16.5285
Public | 2021-03-25
New
The Perforce sync now supports multiple branches!
All platforms - P4Sync: The Perforce sync now supports multiple branches!
Some weeks ago, we released (9.0.16.4995) the support for importing from P4 branches/streams to Plastic SCM branches.
Now, you can also export the changes from your Plastic branches to P4. This is needed to keep you changes in sync between Plastic & P4 when you are concurrently working with both systems.
How to do it? You just need to use the 'p4multibranch' source in the 'cm sync' command:
Usage:
cm sync <repspec> p4multibranch <p4server> --mainbranch=<main_branch_folder> --branchesfolder=<branches_folder> --user=<usr_name> --pwd=<password> [--skipplasticbranches=path_to_file] [--skipp4branches=path_to_file] [--skipp4paths=path_to_file]
Example:
cm sync plastic-repo p4multibranch p4server:1666 --mainbranch=//depot/main --branchesfolder=//depot --user=user --pwd=mypwd
The command needs to explicitly know what p4 folder matches with the main branch and what p4 folder includes the rest of your branches folders.
Example. With the following depot structure:
//depot/project/dev
//depot/project/release-01
//depot/project/release-02
where //depot/project/dev
is the main branch folder and //depot/project/release-01
& //depot/project/release-02
are also branch folders. The command should receive the following parameters (notice that these depot paths don't end with /...
):
--mainbranch=//depot/project/dev --branchesfolder=//depot/project
We also added new options to skip paths or branches during the sync process:
- Use '--skipplasticbranches=path_to_file' to skip Plastic branches during the push. The file format is one branch per line. The branch prefix ("br:") can be omitted. Example:
/main/Fix-5.4/SCM4767
/semanticmain/ReleaseSMT-0.9.40.0
- Use '--skipp4branches=path_to_file' to skip P4 branches during the pull. The file format is one P4 branch (absolute depot path) per line. Example:
//depot/Fix-5.4
//depot/SCM1002
- Use '--skipp4paths=path_to_file' to skip P4 files/folders during the pull. The file format is one path (relative path, it applies to all branches) per line. Example:
/lcc/alpha/bin
/legal/COPYING.txt
Known issues (pull):
The sync ignores the changelists that contain changes of different branches (or what we consider different branch folders) in the same changelist.
The branch starting point is wrongly calculated when the changelist used to create the branch (populate/integrate commands) only contains delete operations. In this scenario, we use as starting point the closest parent changelist with any change different than a delete.
The progress of the changelists to pull can be improved. If the last changelist in the depot is 500, we say that we are pulling 500 changelists although there are big gaps in the ids and, finally, we only import 100. This works this way to avoid requesting all the changelists at once at the beginning (it can be slow and error prone).
The sync operation can say that there are new changelists to pull, although it later pulls nothing. This happens if these changeslist were pushed from Plastic before or if there are new changelists in the depot that apply to paths not related to what's being synchronized.
The sync operation can leave some empty directories in Plastic. Since p4, doesn't handle directories, when all files are removed the directory doesn't exist anymore.
Known issues (push):
The sync report might show some changes skipped due to the following reason: 'The path couldn't be deleted'. This report is harmless, and it will just keep a file loaded in p4 that shouldn't be there (in the worst scenario).
Perforce doesn't support to reuse a path in the same changelist so, we cannot export these changes from Plastic to Perforce. In these cases, we do our best to keep the same structure in the Perforce side. Check 'Paths reused in the same changelist' appendix.
The push ignores changes on empty directories since p4 doesn't handle directories at all.
Restrictions:
The '--user' parameter is mandatory when pushing changes to a depot of type 'stream'. In this case, all the streams created to push the Plastic branches are created of type mainline.
The branches are always created in Plastic using the full content of the starting point. It means, if only a subdirectory of //depot/project/main/...@24 is branched in P4, we will see the whole content under //depot/project/main/... in Plastic.
The branches created from custom configurations doesn't keep this custom configuration in Plastic. A branch always starts from an existing and defined configuration (changeset) in Plastic. So, the importer will choose only one specified path@changelist configuration as base. Check 'Branch from different configurations' appendix.
net.parallel.max
P4 setting must be set (to a value higher than 1) to enable parallel download of contents while syncing. However, in those scenarios where the user is not a super user, parallel processing won't be enabled by default as it requires to check a p4 variable and it will fail in this case. The workaround is asking a super user (usually a company admin) to set both variables: net.parallel.max and net.parallel.threads and these values will be used during the sync. You can also force the number of threads to download data from p4 by using the parameter --p4threads=X.
Pending to implement:
- Labels are currently ignored, not pushed or pulled.
Appendix:
- Paths reused in the same changeset/changelist
Example 1:
move /src/foo.c /src/bar.c
add /src/foo.c
Example 2:
move /conf /config.txt (file)
add /conf/client.conf (conf is now a dir)
handle LDAP credentials using Single Sign On
All platforms - Plastic, Gluon: handle LDAP credentials using Single Sign On
Now, the LDAP credentials are handled correctly when your client points to the local cloud server and is configured to use the SSO working mode.
automatically change display language on East Asi…
All platforms - Plastic, Gluon: automatically change display language on East Asian systems
You might have seen in an earlier release that to take advantage of newly supported languages Chinese Simplified, Chinese Traditional, Japanese, and Korean, you can set the language in your client.conf.
Furthermore, so that users unaware of this can also enjoy the new languages, we will now automatically set the display language to match the system language if the system language is one of the above and the language in the client.conf is "en" or "zh" or not set.
NOTE: if your system is set to an East Asian language, but you want to force Plastic to appear in English, simply set "force_en" as the language in client.conf, like this:
force_en
Bug
Solved credentials issue when using SSO
All platforms - Gluon: Solved credentials issue when using SSO
When opening Gluon for the first time and signing in using SSO, there was an error that prevented the user from creating a workspace, asking for a password. We solved this issue, and now you can create the workspace without being asked for credentials again.
9.0.16.5262
Public | 2021-03-23
New
The server is now started on unattended installs
Windows - Installer: The server is now started on unattended installs
Unattended installations of Plastic SCM (CLOUD and DVCS editions) will configure the Plastic Server with default values and start it up. This is done just if no previous Plastic Server installation was detected in the system.
Note that the Enterprise edition installers already behaved in this way.
You can launch the installers in unattended modes using the following command:
PlasticSCM-10.0.16.5710-windows-installer.exe --mode unattended --unattendedmodeui none --disable-components ideintegrations,eclipse,mylyn,intellij12 --enable-components server
You can find additional details for the other arguments by typing --help
with the client installer.
Check if the selected server is cloud when creati…
All platforms - Plastic: Check if the selected server is cloud when creating a distributed workspace in cloud edition
When creating a new distributed workspace, you must specify the remote cloud repository. If you wrongly selected a non-cloud repository, Plastic showed an ugly DNS error after trying to connect to the non-existing server. We improved this behavior, and now we check if the selected repository is on a cloud server, so you can see the error before trying to connect to the server
Before:
After:
Bug
Connect to cloud servers from enterprise edition
All platforms - Plastic: Connect to cloud servers from enterprise edition
When we launched SSO we created an issue that prevented the enterprise edition client to correctly connect to a cloud server. We fixed this issue
Fixed exception when listing objects in a differe…
macOS, Linux - Plastic: Fixed exception when listing objects in a different repository
The GUI sometimes displayed an error in query views (branches, labels, changesets, ...) and got closed if the user clicked one of the listed items. This happened when the user modified the query to retrieve objects from a repository different from the one loaded in the current workspace.
This happened for labels, shelves, changesets, branches and attributes. We fixed all of them in macOS and Linux. This issue didn't happen in Windows.
9.0.16.5242
Public | 2021-03-19
New
Users can now display differences between images…
Windows - Plastic, Gluon: Users can now display differences between images of different sizes.
Now when comparing two images, the smaller image is scaled to match the size of the larger image while maintaining its aspect ratio:
You can try out different combinations of images, see what results you get!
Introducing Plastic in Chinese, Japanese and Kore…
All platforms - Plastic, Gluon, CLI: Introducing Plastic in Chinese, Japanese and Korean!
We are pleased to share with you our progress to date in expanding the set of languages supported by the Plastic toolset.
We have added support for Simplified Chinese, Traditional Chinese, Japanese and Korean to Plastic and Gluon, inlcuding the Diff and Merge tools, and to the command line interface for Windows, MacOS and Linux.
"Wow! How can I see Plastic in my favourite East Asian language?" I hear you ask. Don't worry, it's simple.
First, close any open Plastic or Gluon applications. Then,
Open up your "client.conf" setting file.
Find the "language" setting. It probably looks like this: en
Change "en" to one of the following:
"zh-Hans" for Simplified Chinese
"zh-Hant" for Traditional Chinese
"ja" for Japanese
"ko" for Korean
- Save the file and open Plastic.
You should see something like this:
Traditional Chinese Plastic on Windows:
Japanese Gluon on Linux:
Korean Plastic on MacOS:
Enjoy!
we fixed UI lags on high latency networks
All platforms - IntelliJPlugin: we fixed UI lags on high latency networks
IntelliJ requires PlasticPlugin to check if a file can show its history every time the file is scrolled. Plastic was retrieving that information from the server which caused lags when the network latency was noticeable. Now this is fixed
We improved the log for the status operation!
All platforms - All clients: We improved the log for the status operation!
Do you know how many different operations involve calculating the pending changes in a workspace? Well, let me tell you - a lot. But we can classify them in three different categories: time spent traversing the disk, time spent doing network operations, and overhead time (the time spent in running the nice algorithms that so precisely identify moved files and directories, for example).
Now, when you calculate the status of a workspace, the log breaks down these times. If something starts working slow, we can diagnose it with ease!
2021-03-11 16:34:44,984 GENGAR\sergi DEBUG WorkspaceStatus - Search changes time - Total: 1266 ms. Disk: 1032 ms. Network: 109 ms. Overhead: 125 ms.
Updated New Label dialog
All platforms - Plastic: Updated New Label dialog
When a user now adds a new label to a changeset, and they wish to add the label to all
XLinked repositories, the label now specifies that it explicitly applies to all the
writable ones:
Updated code review comment time stamps
All platforms - Plastic: Updated code review comment time stamps
When a user posts a new comment or a question in a code review, the and the time stamp is less than 10
seconds old, the text displayed will be "Just now", instead of "1 seconds ago", or sometimes that same amount was 0, or a negative value.
Before:
Now:
Improve merge-to dialog message
Plastic - All platforms: Improve merge-to dialog message
We received a request to improve and clarify the message received when a user has to re-start a merge-to process, if another user has submitted a new changeset(s) to the same branch, in the middle of that initial merge-to process.
This is the message that we were using:
The branch /main@repo_zero2@localhost:8087 (mount '/') has multiple heads because new changesets were created during the merge-to operation. Do you want to unify heads performing another merge-to operation now?
We've now clarified this, using the following format:
A new changeset has been created at branch /main@repo_zero2@localhost:8087 (mount '/') during the merge-to operation. You need to merge again to complete the operation. Do you want to merge again now?[code]
Bug
Unity Smart Merge path configuration is fixed
Windows, macOS - Plastic: Unity Smart Merge path configuration is fixed
The configuration of the Unity Smart Merge tool was not checking the latest version installed and the path by default wasn't correct. We fixed that problem and we just configure it with the latest version installed on your machine.
Protect users to wrongly rerun a server-side merg…
Windows - Plastic: Protect users to wrongly rerun a server-side merge in progress
When performing a server-side merge, and clicking on the "Apply" button, it was still enabled while performing the operation. For big merges that took some time to process, the user had the possibility to run the same operation again, creating an inconsistent destination branch with multiple heads.
We solved this issue by disabling the "Apply" button when the operation is running.
We fixed a wrong error message when the server cl…
All platforms - All clients: We fixed a wrong error message when the server closed the connection.
Before the fix, if the server closed the connection, the client would throw an "End of file" error. This was because we were not correctly identifying the situation. Now, the client shows up the correct error message for this situation: "The remote host closed the socket".
Enabled support for Apple M1 chipset.
macOS - Server: Enabled support for Apple M1 chipset.
Recently we updated the Plastic Server we bundle in the macOS installers: now it is a netcore-based application as you may know.
But the server was unable to start in Apple M1 chipset computers. We had to enable our build to start the server on those archs in emulated mode. And that's what we did.
We will support Plastic Server natively for Apple M1 chipsets soon, once net core 6 it's officially released in LTS mode.
Preference Diff and Merge tools were not localize…
macOS - Plastic: Preference Diff and Merge tools were not localized.
Now those strings are localized and waiting for their translations to be included!
Solved exception when creating a workspace from t…
macOS - Plastic, Gluon: Solved exception when creating a workspace from the cloud tab
When creating a workspace for a repository from the "Cloud" tab, by selecting the "Create workspace for this repository..." option, an exception was thrown. We fixed this issue, and also modified the behavior to match Windows: now, after the workspace is created, the current workspace is automatically changed to the new one, and Plastic shows the items view of that workspace.
Command cm help autocomplete didn't show any help.
All platforms - Command Line: Command cm help autocomplete didn't show any help.
The cm help autocomplete
command was showing the following message:
Command 'autocomplete' not found.
Now it is fixed, and shows the expected command help.
9.0.16.5201
Public | 2021-03-12
New
Unity ID is now fully supported!
All platforms: Unity ID is now fully supported!
Welcome to full OAuth support for Unity ID, including 2 factor authentication. No more passwords!
We added support to ALL GUIs, so now you will be able to enjoy the full integrated experience:
This is a great step ahead in terms of security, ease of use and integration with the Unity ecosystem.
Missing translations at help panels
All platforms - Plastic - Gluon: Missing translations at help panels
Some words were not translated on the workspace's help panel and the pending changes' help panel:
Pending changes:
Workspace explorer:
localization strings default to English
All platforms - All GUIs: localization strings default to English
Whenever we add a new feature there will be a period of time between releasing the new feature and translating all the text values shown in the new feature into all the languages we support.
During that period, the text for the new feature will be shown in English.
Improved help dialog for built-in mergetools
Windows - Plastic: Improved help dialog for built-in mergetools
When a user decides to specify an external diff or merge tool, they'll have an improved
resizable help dialog box. This new box contains usage examples for how to set up an external
tool, and links to the kdiff3 and araxis diff/merge tools, that are commonly used.
Help dialog box for an external diff tool
Help dialog box for an external merge tool
In addition to this, we've updated the help dialog boxes for our own merge tool options.
Help dialog box for our merge tool:
Help dialog box for our binmerge tool:
Added Plastic Link to Discord integration message.
DevOps - Triggers: Added Plastic Link to Discord integration message.
More info about Plastic triggers https://www.plasticscm.com/documentation/triggers/plastic-scm-version-control-triggers-guide
Webtriggers now support sending Discord and Slack…
DevOps - Triggers: Webtriggers now support sending Discord and Slack notifications.
cm tr mk after-checkin MyDiscordAfterCheckinTrigger "webtrigger-discord https://discordapp.com/api/webhooks/[channelId]/[token]" --server=myPlasticServer
cm tr mk after-checkin MySlackAfterCheckinTrigger "webtrigger-slack https://slack.com/api/chat.postMessage/[channelId or UserId]/xoxb-[SlackBotToken]" --server=myPlasticServer
More info about Plastic triggers https://www.plasticscm.com/documentation/triggers/plastic-scm-version-control-triggers-guide
only one credentials dialog will show up simultan…
All platforms - All GUIs: only one credentials dialog will show up simultaneously.
We solved a well-known issue that has been hitting us since the beginning of times: multiple credentials dialogs were displayed simultaneously, which looked awful and was also a pain to use.
It happened because multiple threads required credentials at the same time, then even if all of then required to access the same server, you had to type creds again and again and again.
Now only one dialog will be displayed at the same time and if the creds are ok, they will be reused by the other threads, so you won't have to type them multiple times.
applications brought to front after Single Sign On
All platforms - Plastic, Gluon: applications brought to front after Single Sign On
During Single Sign On, a browser is launched to complete the sign in process. When this completes, we now bring Plastic to the foreground automatically, so you can continue the sign in process.
Bug
Improved performance installing the Visual Studio…
Windows - Installer: Improved performance installing the Visual Studio Package
We detected in some configuration that PlasticSCM installation was taking much longer time when Visual Studio was previously installed and had to reinstall it, taking up to 25 minutes to get it done. Now it's fixed so it takes the expected extra time to install a VSIX package on Visual Studio
The Slack plug was not adapted to work with Slack…
DevOps - Slack: The Slack plug was not adapted to work with Slack API recent changes
Slack has removed support to some endpoints, one of them used to get a user private channel Id. Fixed to use the new way to send private messages using Slack API.
More info about Slack deprecation endpoints here
The pull operation is protected against concurren…
All platforms - Server: The pull operation is protected against concurrent delete changeset operations.
The pull could leave a changeset without data on the following scenario:
Mary pull branch /main/task0103 from the central server
Mary's pull ends with all the metadata from /main/task0103 and starts pulling the data.
John deletes the last changeset of the branch /main/task0103, the changeset 2021.
Mary's pull doesn’t find the data of the changeset 2021.
Before this task, the pull operation left the changeset 2021 replicated without data.
Now, the pull operation is canceled when it detects that the changeset 2021 was deleted. It warns about the situation and asks for retrying the operation, so next pull doesn't include the changeset 2021.
Wrong font size at onboarding Login Panel textbox…
Windows - Plastic: Wrong font size at onboarding Login Panel textboxes
When the SSO mode was enable login panel textboxes's font was bigger than the font used in other texts. Now font size is the same whether the SSO is enabled or not for all panel texts:
East Asian language strings updated
All platforms - Plastic, Gluon: East Asian language strings updated
The new .net core builds now support Tube.
All platforms - Server: The new .net core builds now support Tube.
You probably never heard of Plastic Tube, but it is a cool P2P tech we can enable to access servers behind firewalls. It has been around for years but we never made it official. https://www.plasticscm.com/features/tube.
We just made it work in .net core servers, because it only worked for .net framework and mono, and we're deprecating those.
Not sure what the future of the feature will be, but we continue testing it in stealth mode.
fix issue where code review comments were not dis…
All platforms - Plastic: fix issue where code review comments were not displayed
We corrected an issue where code review comments were not being shown for deleted files.
Before add item trigger fails during merges with…
DevOps - Triggers: Before add item trigger fails during merges with only merge link in changes.
Fixed.
More info about Plastic triggers here
Removed incoming changes notification when the wo…
All Platforms - Plastic: Removed incoming changes notification when the workspace is on a label
When the workspace is pointing to a label, your configuration is static, so you shouldn't be able to update the workspace to a more recent changeset. We removed the incoming changes notification that appears at the top of the window and in the pending changes view when the workspace is configured against a label.
fixed messages in command line server configurati…
All platforms - Server: fixed messages in command line server configuration tool
We broke the messages in the server configuration tool (that you can launch by running "plasticd configure"). It displayed the message keys instead of the messages themselves. Fixed!
The Perforce changes with blank spaces were skipp…
All platforms - P4Sync: The Perforce changes with blank spaces were skipped. Fixed.
The changes with blank spaces in their paths were not properly processed while importing changes from Perforce to Plastic, so they didn't appear in the equivalent Plastic changeset.
This only affected to the standard Perforce importer (p4), not to the new Perforce multibranch importer.
Example of paths that were skipped:
/folder with blank spaces/AssemblyInfo.cs
/folder/Content For Review.doc
9.0.16.5140
Public | 2021-03-04
Bug
The plugin no longer affects IDE's performance.
All platforms - JetBrains Plastic plugin: The plugin no longer affects IDE's performance.
Some users experienced lags in the interface using our JetBrains plugin for Rider. We detected that, in specific situations, the IDE was requesting long lasting operations to Plastic from different threads, and sometimes the UI thread had to wait for them to finish. That's fixed now!
cm status help indentation error on Japanese
All platforms - Plastic: cm status help indentation error on Japanese
Before:
After:
Pending changes Help missing translation correcte…
All Platforms - Plastic: Pending changes Help missing translation corrected.
We fixed the problem with the translation for Sync Repositories. Now is translated to all languages which includes Korean, Japanese and Chinese. See the fix:
fixed word wrapping rules for East Asian languages
Windows - Plastic: fixed word wrapping rules for East Asian languages
We applied the word wrapping rules specified here Line breaking rules in East Asian languages to improve the layout in some dialogs.
For example, here is the Sign Up dialog in Korean:
Workspace Explorer Path Permissions dialog: trunc…
Linux - Plastic: Workspace Explorer Path Permissions dialog: truncated strings are now fixed.
The 'Allowed' and 'Denied' labels were truncated when showing the Path Permissions dialog from the Workspace Explorer view.
We fixed this problem and now these labels can be showed entirely, and they are aligned with their columns to show whether the permission is checked as allowed or denied.
See how it looks now:
Before:
After:
9.0.16.5128
Public | 2021-03-01
New
The new .Net Core build is now the default!
macOS - Server: The new .Net Core build is now the default!
All the macOS installers will now bundle a netcore-compiled plastic server, as we recently did with Linux packages too.
Prior to this release, the default server for macOS was a mono-based server.
This mono-based server had several stability glitches, it lacked of some features (latest SSL protocols)... but now we use the super-stable netcore server compiled to target macOS specifically as the default server.
== How this will impact you? ==
Just upgrade your setup to this new version by using the .pkg installer that best fits for you. No special actions required, and you'll get the new binaries.
Also, the .Net Core experimental packages will be no more, since now they will be the official ones, so this means less options in the docu.
webtriggers now send to you readable messages to…
All platforms - Plastic server: webtriggers now send to you readable messages to Discord!
We just made a fix and now webtriggers https://www.plasticscm.com/documentation/triggers/plastic-scm-version-control-triggers-guide#Chapter5:Detailedtriggerreference can send messages to Discord.
Find an example here:
=== Create a Discord channel with a Webhook ===
First step is create your own channel on Discord server
Edit your channel and go to Integrations section
Add a new Webhook, set a name (like "PlasticHook") and copy Webhook URL
=== Add your Webtrigger to Plastic ===
Next step is create a webtrigger in your Plastic. You need to indicate which action you wan to trigger. Take a look to all options
cm showtriggertypes
Let's go to create a webtrigger for after any check in
cm tr mk after-checkin NotifyTeam "webtrigger https://discord.com/api/webhooks/8109000000000000/1ibzJPH4lm13dx9-95f5dY5UP8KAAAAAAAAAAAAAAAAAaaaaaaaaAAAA" --server=myPlastichost:8084
Here we will use our Plastic host and port and copied Discord Webhook URL
=== Let's try the trigger ===
Do any check in action on your Plastic and take a look to your Discord Channel
Bug
Branches view buttons resized
Linux - Plastic: Branches view buttons resized
We adjust the size of the button Clear history on the Branches options view at Advanced button to fits the text properly, especially in Chinese, Korean and Japanese.
Also we made the Loading branches... show progress label bigger to fits the text.
See how it looks!
fixed layout issues in xlink creation dialog
Linux - Plastic: fixed layout issues in xlink creation dialog
We made the rule creation dialog wider so that the Japanese text fits properly.
Check out this before / after shot:
fixed layout issues on Pending changes view
Linux - Plastic: fixed layout issues on Pending changes view
We made the "Checkin comments" drop down taller so that the text fits properly. Here's how it looks in Korean:
We also made the Pending changes options panel bigger, so that text fits in Japanese.
Branch explorer option panel buttons resized
Linux - Plastic: Branch explorer option panel buttons resized
We made the buttons on the Branch explorer options panel bigger so that the text fits properly, especially in Chinese, Korean and Japanese.
We also made the Edit comment button taller in the changeset diff view.
On demand connection type help text was wrong
Windows - Plastic: On demand connection type help text was wrong
Wrong text has been fixed and the connection type's explanation text is now less close to the panel's bottom.
Before:
After:
Deadlock solved
All platforms - Gluon: Deadlock solved
Gluon would hang if it had to display the credentials dialog on start-up. Now it's fixed.
Custom query rule title label is not truncated an…
Linux - Plastic: Custom query rule title label is not truncated anymore.
Label with New conditional ... title was truncated when adding a Custom query rule for Japanese language at Branch explorer view at Filters & format tab. We fixed that problem and now the label can be seen perfectly.
The TeamCity plug was not adapted to work with ve…
DevOps - TeamCity: The TeamCity plug was not adapted to work with versions above 2020.1
The TeamCity plug didn't have support for CSFR protection that TeamCity 2020.1 and above enforces. This caused the mergebots using TeamCity as CI not to queue any job. Fixed.
More info about CSFR and TeamCity here
Plastic: onboarding panels dpi's bigger than 100%…
Windows: Plastic: onboarding panels dpi's bigger than 100% were broken:
Check out how onboarding panels looked and how they are now:
- New SSO dialogs - before:
- New SSO dialogs - fixed:
- New SSO partial panels - fixed:
- Actual login dialogs - before:
- Actual login dialogs - fixed:
Fixed localization truncation issues in the prefe…
Linux - Plastic, Gluon: Fixed localization truncation issues in the preferences panel in Japanese and Chinese [simplified]
wrong layout and cut text
Linux - Gluon: wrong layout and cut text
We had cut text in the create new repository dialog and missing text in the repository path permission dialog.
- Create new repository dialog:
- Repository path permission dialog:
As you can notice on those images we removed the unnecessary scroll for the permissions' box. Similar modifications were done to the permissions dialog:
Plastic plugin status bar is no longer showing a…
All platforms - IntelliJ plugin: Plastic plugin status bar is no longer showing a selected state when mouse passes over it.
Status bar has been reworked to change its appearance when mouse is hovered. It will also display a tooltip with the current branch and label (if available).
9.0.16.5075
Public | 2021-02-19
New
New super stable, super fast bits are now the def…
Linux - Server: New super stable, super fast bits are now the default!
The new .Net Core build is now the default!
Our server ran on Mono on Linux for more than 15 years, but last year we decided we should port it to the more stable and future looking .Net Core. And so we did.
.Net Core builds have been available since January 2020 and all our cloud infrastructure runs on them, and also all our major customers were upgraded to this new tech. So, we thought it was a good moment to just make it official for everyone.
So, dear Mono on Linux, you served us well, but it is now time for an official goodbye.
If you stay tuned, you'll see the macOS server will be the next one to be officially moved to .Net Core and, you guessed it, Windows will be next.
Once we complete this we'll be also able to simplify our code base a little because, while not dramatic, we'll stop building servers in .NET Framework and Mono.
And most likely command line and GUIs will be next.
== How this will impact you? ==
Just upgrade your current server package, no special actions required, and you'll get the new binaries.
Also, the .Net Core experimental packages will be no more, since now they will be the official ones, so this means less options in the docu.
new languages available!
All platforms - All GUIs: new languages available!
We are happy to announce alpha-version support for Korean, Japanese, Simplified Chinese and Traditional Chinese in Plastic and Gluon.
The language shown will be chosen based on the culture set for your machine.
Please note that support for these languages is still in ongoing development. It is likely you will see layout and translation issues in this initial release. We will be resolving this issues during the next few releases.
If you need to force Plastic back to English, you can do so by setting the following line in your client.conf
file:
<Language>en</Language>
ImageMagick preview adapted to version 7.x.
Windows - Plastic Image Preview: ImageMagick preview adapted to version 7.x.
ImageMagick deprecated the tools convert.exe and identify.exe. Our default configuration was based on those executables. We updated the configuration template configuration to use the new magick command available in ImageMagick 7.x.
Improve threadpool boosting system to avoid runni…
Server: Improve threadpool boosting system to avoid running out of threads.
Now the server creates a new bunch of threads to process the pending requests when there are too many long-running requests (over 90% of the running requests are running for more than 5s).
ImageDiff toolbar buttons are now "push" buttons.
Windows - Plastic: ImageDiff toolbar buttons are now "push" buttons.
We changed the Image Differences toolbar buttons that allow changing the image diff mode for the sake of usability. This way, the buttons will now help to reflect which mode is selected.
Before:
After:
fixed display of the file history diff view
All platforms - WebUI: fixed display of the file history diff view
Owner is now correctly shown on Cloud instances
All platforms - Jira Extension: Owner is now correctly shown on Cloud instances
Due to differences between on-premise and cloud editions, the Jira extension didn't correctly show the owner of a task. Now it's fixed.
ImageDiff changed symbolic info
Windows - Plastic: ImageDiff changed symbolic info
Removed the symbolic name link from the panels below the toolbar, which is the same behavior as the macOS and Linux implementations. This information is now shown on the togglable properties section.
Before:
- Not showing properties:
- Showing properties:
After:
- Not showing properties
- Showing properties:
Javascript-related files now detected as text
All platforms - Plastic, Gluon: Javascript-related files now detected as text
We added four javascript-related extensions to the list of known files, so they are detected as text files by default, instead of binaries. These are the new extensions:
.vue
.ts
.tsx
.jsx
Bug
It failed to create new threads after out of mem.
All platforms - Server: It failed to create new threads after out of mem.
The server failed to start a previously created thread due to a lack of resources. It happened even when the missing resources became available again. Now it's fixed.
The netcore-based installer wasn't deploying any…
macOS - Server: The netcore-based installer wasn't deploying any configuration file for the server logs. Fixed.
New installs of plasticscm server in mac using the netcore-based installer wasn't deploying the required loader.log.conf
file so the server is able to write log entries. Now this issue is fixed.
toolbar's filter label cut
Windows - Plastic: toolbar's filter label cut
Top toolbar's filter label's text now shows correctly
preferences wrong layout
macOS -Plastic: preferences wrong layout
Diff and Merge, Diff tools and other Options tabs contents showed some wrong layout. Now all are fixed!
fixed layout of Create/Edit xLink dialog
macOS - Plastic: fixed layout of Create/Edit xLink dialog
The xLink name field label was misaligned for non-European languages. Fixed!
No highlight applied on Path permission/Permissio…
Mac - Plastic: No highlight applied on Path permission/Permissions table
We were not applying any highlight method to the Permissions table's rows and titles were disappearing when a row was selected and users goes out the Plastic's environment.
Pending changes binary file message text was cut
Mac - Plastic: Pending changes binary file message text was cut
Text was cut when message takes two lines. E.g. Japanese localization. From now on, text allows displaying two lines of content:
Resized Refresh button for Japanese
Linux - Plastic: Resized Refresh button for Japanese
The refresh button was too small in Japanese, so we made it bigger.
widened sync view buttons to fit Japanese text
Linux - Plastic: widened sync view buttons to fit Japanese text
Also widened the Refresh buttons for the same reason.
wrong Japanese translation display
Windows - Plastic: wrong Japanese translation display
Some texts were cut on the Sign Up panel and the Pending Changes view. Also the help panel were showing wrong format text in it's help panel at the bottom.
Both bugs are now fixed!
corrected unicode character encoding in help pane…
Windows - Plastic, Gluon: corrected unicode character encoding in help panels
We fixed encoding issues in the help panels when displaying unicode characters. Japanese, Korean and Chinese should now display correctly in the help panels.
Japanese localization: text cut fixed
Windows - Plastic: Japanese localization: text cut fixed
There was a text cut on the "new attribute" dialog. Now it is fixed.
We also fixed some DPI inconsistencies when the screen scale was not 100%, both on new attributes and Preferences/Diff tool dialogs.
Branch explorer layout issue corrected for Korean…
Windows - Plastic: Branch explorer layout issue corrected for Korean language
We moved the date picker and nearby controls so that the controls were not overlapping when using the Korean language.
fixed help panel display for Chinese
Windows - Plastic, Gluon: fixed help panel display for Chinese
Help panels should now display correctly when using Traditional Chinese.
minor gui fixes for Japanese localization
Windows - Gluon: minor gui fixes for Japanese localization
We made the checkin options panel and diff tool panel wider so that Japanese text fields would fit correctly.
Fixed layout issue on Permissions dialog
Windows - Plastic: Fixed layout issue on Permissions dialog
Checking path permissions from the Workspace Explorer context menu the button "Change..." was overlapped by the label next to it. We fixed this problem and now the button and the label are shown correctly.
This is how it looks:
PlasticLink feature now allows whitespace in the…
Windows - Gluon: PlasticLink feature now allows whitespace in the path!
We now support whitespaces in the name or in the path when using the PlasticLinks feature to share files. Spaces are now encoded as +.
See an example:
plastic://local/repos/books/changesets/5/path/test+ui.txt?ui=gluon
9.0.16.4995
Public | 2021-02-09
New
The Perforce importer now supports multiple branc…
All platforms - P4Sync: The Perforce importer now supports multiple branches!
You can finally import your depot with branches/streams from P4 to Plastic SCM.
How to do it? You just need to use the 'p4multibranch' source in the 'cm sync' command:
Usage:
cm sync <repspec> p4multibranch <p4server> --mainbranch=<main_branch_folder> --branchesfolder=<branches_folder> --user=<usr_name> --pwd=<password>
Example:
cm sync plastic-repo p4multibranch p4server:1666 --mainbranch=//depot/main --branchesfolder=//depot --user=user --pwd=mypwd
The command needs to explicitly know what p4 folder matches with the main branch and what p4 folder includes the rest of your branches folders.
Example. With the following depot structure:
//depot/project/dev
//depot/project/release-01
//depot/project/release-02
where //depot/project/dev
is the main branch folder and //depot/project/release-01
& //depot/project/release-02
are also branch folders. The command should receive the following parameters (notice that these depot paths don't end with /...
):
--mainbranch=//depot/project/dev --branchesfolder=//depot/project
Only the pull/import operation is implemented so far. It means you can import changes from P4 to Plastic, but not export changes from Plastic to P4. But... don't worry, we are working on it!
Know issues:
The sync ignores the changelists that contain changes of different branches (or what we consider different branch folders) in the same changelist. Check 'Changelist with changes in multiple branches' appendix.
The branch starting point is wrongly calculated when the changelist used to create the branch (populate/integrate commands) only contains delete operations. In this scenario, we use as starting point the closest parent changelist with any change different than a delete.
The progress of the changelists to pull can be improved. If the last changelist in the depot is 500, we say that we are pulling 500 changelists although there are big gaps in the ids and, finally, we only import 100. This works this way to avoid requesting all the changelists at once at the beginning (it can be slow and error prone).
The sync operation can say that there are new changelists to pull, although it later pulls nothing if there are new changelists in the depot that apply to paths not related to what's being synchronized.
The sync operation can leave some empty directories in Plastic. Since p4, doesn't handle directories, when all files are removed the directory doesn't exist anymore.
Restrictions:
The branches are always created in Plastic using the full content of the starting point. It means, if only a subdirectory of //depot/project/main/...@24 is branched in P4, we will see the whole content under //depot/project/main/... in Plastic.
The branches created from custom configurations doesn't keep this custom configuration in Plastic. A branch always starts from an existing and defined configuration (changeset) in Plastic. So, the importer will choose only one specified path@changelist configuration as base. Check 'Branch from different configurations' appendix.
net.parallel.max
P4 setting must be set (to a value higher than 1) to enable parallel download of contents while syncing. However, in those scenarios where the user is not a super user, parallel processing won't be enabled by default as it requires to check a p4 variable and it will fail in this case. The workaround is asking a super user (usually a company admin) to set both variables: net.parallel.max and net.parallel.threads and these values will be used during the sync. You can also force the number of threads to download data from p4 by using the parameter --p4threads=X.
Pending to implement:
The sync operation only pulls changes from Perforce. It doesn't push changes from Plastic to Perforce.
Labels are currently ignored, not pushed or pulled.
Appendix:
- Changelist with changes in multiple branches
> p4 describe 51
Change 51 by ruben@DESKTOP-DOR5NB4 on 2021/02/02 12:29:06
changelist with changes in multiple branches
Affected files ...
... //depot/main/code/botlib/aasfile.h#2 edit
... //depot/task006/code/botlib/aasfile.h#2 edit
... //depot/task007/code/botlib/aasfile.h#2 edit
- Branch from different configurations
> p4 integrate //depot/project/main/code/...@40 //depot/project/new-branch/code/...
> p4 integrate //depot/project/task/lib/...@100 //depot/project/new-branch/lib/...
File Plastic Links won't fail when are created wi…
Windows - Gluon: File Plastic Links won't fail when are created with ssl or other supported protocol
When the server is configured with a ssl or other protocol connection the file plastic link included it at the uri but Gluon wasn't able to open it. Now these generated links can be openend correctly.
Also fixed links with child repositories. See the examples of these corrections:
plastic://ssl://192.168.100.25:8085/repos/repo_zero/test/changesets/1/path/icongluonlink.png?ui=gluon
plastic://ssl://192.168.100.25:8085/repos/repo_zero/changesets/1/path/icongluonlink.png?ui=gluon
plasticlinks are turned ON!
Windows - Plastic, Gluon: plasticlinks are turned ON!
We implemented a new way to share files: plasticlinks!
Plasticlinks let you share links to files within Plastic repositories, as well as links to branch, changeset, label, and shelveset diffs.
To use it, you just have to click on the plasticlink button to copy the link to your clipboard and share the link with your mate. To open a link you just need to click it or open it in your favorite browser, and the file or diff will be displayed in Plastic.
- Plastic:
From Plastic you can share diffs with your colleagues.
We added a button to the top-right corner of the diff window. For shelves, it has been added on the Shelves view
Here are some plasticlinks examples:
1.1 Branches:
plastic://test.cloud/repos/NikkiTest1/branches/main/Mi+rama/MiSuperRama%24%24/diff
1.2 Changesets (single or two elements comparison)
plastic://test.cloud/repos/NikkiTest1/changesets/50/diff
plastic://test.cloud/repos/NikkiTest1/changesets/34..47/diff
1.3 Labels (single or two elements comparison)
plastic://test.cloud/repos/NikkiTest1/labels/My+nre+super+label+%25%25/diff
plastic://test.cloud/repos/NikkiTest1/labels/Reviewed+Dpi+Training+Doc..My+nre+super+label+%25%25/diff
1.4 Shelvesets
plastic://test.cloud/repos/NikkiTest1/shelvesets/2/diff
- Gluon
From Gluon you can share direct links to files within the repository.
We added a new panel between the details section and the history of the file. This is how it looks!
To share your file just click on the copy button to obtain the link!
If you received a file plastic link, you just need to click on it. Gluon will show you the file and the changeset on the screen. Don't worry if you don't have the file in your workspace, it will be downloaded automatically.
Enjoy and share!
Bug
fixed duplicated deleted after incoming changes o…
All platforms: fixed duplicated deleted after incoming changes operation.
The incoming changes could leave a duplicated deleted directory. It happened if there were 2 moved files plus a delete of their source parent directory as pending changes. Let's see an example:
John:
* Move /src/foo.c to /foo.c
* Move /src/bar.c to /bar.c
* Delete /src
Mary
* Change /readme.txt
* Checkin
John:
* Update it's workspace to get the Mary's changes
The workspace pending changes were:
* Moved /src/foo.c to /foo.c
* Moved /src/bar.c to /bar.c
* Deleted /src
* Deleted /src
Now the workspace pending changes are:
* Moved /src/foo.c to /foo.c
* Moved /src/bar.c to /bar.c
* Deleted /src
fixed exceptions in Code Review when opening cert…
Windows - Plastic: fixed exceptions in Code Review when opening certain comments
An exception was thrown when opening a Code Review comment, if that comment required showing a diff, and no diff had been shown yet. We fixed that by correctly initialising the diff view.
An exception was also thrown when opening a Code Review comment for an added or deleted item, if further changes were made on the branch after the creation of the comment. We also fixed that scenario.
Diff xlink without changes failed.
All platforms - WebUI: Diff xlink without changes failed.
Diffing a branch or cset with an xlink pointing to the same target changeset in source and destination failed. We fixed it.
netcore-based server in Ubuntu 20 rejected SSL co…
Linux - Client and Server: netcore-based server in Ubuntu 20 rejected SSL connections from any plastic client. Fixed.
The netcore-based server installed in Ubuntu 20 just accepts Tls1.2 for SSL connections. To match this requirement, the client now is able to negotiate Tls1.2 protocol when connecting to the server using SSL.
REMARK: If you are using a Plastic SCM client in Linux to connect to a Plastic SCM server (netcore-based) in Ubuntu 20, it is likely you will have to install a recent version of mono and configure the Plastic SCM client to use this recent version instead of the default one. Contact our support team for this matter (support@codicesoftware.com), as there might be combinations that may not work even with newer mono versions, such as ubuntu 18 with mono 6.12.
Fixed error when canceling the switch branch oper…
macOS, Linux - Gluon: Fixed error when canceling the switch branch operation
When selecting "Switch branch" in Gluon on macOS and Linux, and canceling the dialog, an unexpected error occurred. We solved this issue and made some improvements to prevent this from happening again
The configurator didn't eat 'any' string as bind…
All platforms - WebAdmin: The configurator didn't eat 'any' string as bind address. Fixed.
If you type "any" in the "WebAdmin" > "Network" > "Bind To" property for a server port, the server won't listen on that port. Fixed.
Fixed performance degradation when using Spell Ch…
Windows - Plastic: Fixed performance degradation when using Spell Checker.
Typing text or pasting text into the Pending Changes textbox caused micro-freezes to the Plastic GUI when the Spell Checker option was enabled, due to a WPF issue: https://github.com/dotnet/wpf/issues/3350. We applied a workaround and now it's fixed.
9.0.16.4948
Public | 2021-01-29
Bug
fixed exceptions in Code Review when opening cert…
Windows - Plastic: fixed exceptions in Code Review when opening certain comments
An exception was thrown when opening a Code Review comment, if that comment required showing a diff, and no diff had been shown yet. We fixed that by correctly initializing the diff view.
An exception was also thrown when opening a Code Review comment for an added or deleted item if further changes were made on the branch after the creation of the comment. We also fixed that scenario.
Diff xlink without changes failed.
All platforms - WebUI: Diff xlink without changes failed.
Diffing a branch or changeset with an xlink pointing to the same target changeset in source and destination failed. We fixed it.
9.0.16.4931
Public | 2021-01-27
Bug
Plastic Links won't fail when the URL points to a…
Windows - Gluon: Plastic Links won't fail when the URL points to a plastic server that require ssl.
When the server is configured with ssl, the plastic link for a file contains the "ssl" protocol for accessing the plastic server. But Gluon wasn't able to open it.
From now on, links generated with servers configured with ssl can be opened correctly.
Also fixed links containing submodules repositories. See examples of these corrections:
plastic://ssl://192.168.100.25:8085/repos/repo_zero/test/changesets/1/path/icongluonlink.png?ui=gluon
plastic://ssl://192.168.100.25:8085/repos/repo_zero/changesets/1/path/icongluonlink.png?ui=gluon
fixed duplicated deleted after incoming changes o…
All platforms: fixed duplicated deleted after incoming changes operation.
The incoming changes could leave a duplicated deleted directory. It happened when you have before running the incoming 2 moved and their source deleted. Let's see an example:
John:
* Move /src/foo.c to /foo.c
* Move /src/bar.c to /bar.c
* Delete /src
Mary
* Change /readme.txt
* Checkin
John:
* Update it's workspace to get the Mary's changes
The workspace pending changes were:
* Moved /src/foo.c to /foo.c
* Moved /src/bar.c to /bar.c
* Deleted /src
* Deleted /src
Now the workspace pending changes are:
* Moved /src/foo.c to /foo.c
* Moved /src/bar.c to /bar.c
* Deleted /src
9.0.16.4916
Public | 2021-01-22
New
We released HUGE improvements in Perforce Sync on…
Linux - P4Sync: We released HUGE improvements in Perforce Sync on Linux!
First of all, we ditched the API in favor of a Command Line wrapper. This means Perforce Sync now works on Linux, which was a must for many users out there looking forward to making the switch!
We also took advantage of new Perforce versions to make a multithreaded push and pull. This way, bidirectional file transfer is much faster than before.
If you are a Perforce-using team looking to migrate to Plastic SCM, don't hesitate to contact us. We can help you in every step of the way!
We added a Comments List section when viewing a C…
All platforms - WebUI: We added a Comments List section when viewing a Code Review.
By clicking on a comment in the list, it will scroll it into view.
Bug
Plastic Links won't fail when are created with ss…
Windows - Plastic: Plastic Links won't fail when are created with ssl or other protocol
When the server is configured with a ssl or other protocol connection the plastic link included it at the uri but wasn't able to open it. Now these generated links can be opened correctly.
Also fixed plastic links with child repositories. See the examples of these corrections:
plastic://ssl://192.168.100.25:8085/repos/repo_zero/test/changesets/1/diff
plastic://ssl://192.168.100.25:8085/repos/repo_zero/changesets/1/diff
fixed unexpected error when selecting a code revi…
macOS - Plastic: fixed unexpected error when selecting a code review comment
We fixed an issue where selecting a code review comment would very occasionally result in an unexpected exception. It happened if the first file selected to display when opening the Code Review did not contain changes, and then you clicked on a comment made on a file with differences.
Added network retries for very slow networks.
macOS - Plastic, Gluon, command line: Added network retries for very slow networks.
We found that our operation retry system didn't work on macOS (probably Linux too) with very slow networks using SSL (typically Cloud) because the actual error code being raised didn't match the expected ones. We fixed it.
We fixed a bug that was causing infinite loading…
All platforms - WebUI: We fixed a bug that was causing infinite loading if the session was expired.
9.0.16.4894
Public | 2021-01-19
New
The multi-thread update uses 6 threads by default…
All platforms - Update: The multi-thread update uses 6 threads by default now.
Plastic can be super-fast, but historically we were too shy enabling the full power by default. But, smart defaults are key for usability, because nobody wants to dig into config files. So, that's what we are doing now.
Update uses 2 threads to download and write. The setting is controlled by DownloadPoolSize in client.conf and was set to 2 by default. The default will be now 6.
We tested the performance of the update downloading 63,715 files and 7.14 GB and it improves by 37%, from 290s (2 threads) to 183s (6 threads) :)
P4 Sync using CLI has improved Submit to P4 speed
All - P4Sync: P4 Sync using CLI has improved Submit to P4 speed
We improved the Perforce sync operation when transferring files from Plastic to P4 as it will take advantage of CPU multi threads.
P4 Sync using CLI has improved the "Submit to P4"…
All - P4Sync: P4 Sync using CLI has improved the "Submit to P4" speed
We improved the Perforce sync operation when transferring files from Plastic to P4 making all the Add and Delete operations in bulk.
Bug
fixed overflow when calculating remaining update…
All platforms - Plastic, Gluon: fixed overflow when calculating remaining update and checkin time
We fixed a numerical overflow in the calculation of the remaining update and checkin time. The worst bit is that this error caused the update operation to terminate. We fixed the overflow, and also improved the robustness of the update and checkin operations to this kind of error.
9.0.16.4870
Public | 2021-01-15
New
Trial license is now an Enterprise Edition trial…
All platforms - Installer: Trial license is now an Enterprise Edition trial license.
Before this version, new installations of Plastic SCM deployed a Team edition trial license. So, some features were not available, but not anymore.
File plastic links are ready to use!
Windows - Gluon: File plastic links are ready to use!
This is a new feature flag. We implemented a new way to share files. We added a new panel between the details section and the history of the file. This is how it looks!
To share your file just click on the copy button to obtain the link!
If you received a file plastic link, you just need to click on it. Gluon will show you the file and the changeset on the screen. Don't worry if you don't have the file, we will download it for you.
But first, to activate this new feature flag you need to add to your gameui.conf file this entry:
- PlasticLinkEnabled=True
Enjoy and share!
Bug
Check existence of a file or directory when creat…
Windows - Gluon: Check existence of a file or directory when creating a new one.
Corrected the behavior when a new file or new directory is created and the item already exists on disk. If exists, a descriptive error text will be shown in the dialog. See below.
Windows - Plasticlink for shelvesets is not worki…
Plastic: Windows - Plasticlink for shelvesets is not working
We found labels were not working either and fixed both cases.
Now plasticlinks are correctly working for shelvesets and labels cases.
plasticlink to compare two objects wasn't working…
Windows - Plastic: plasticlink to compare two objects wasn't working correctly.
Plasticlinks were not generated correctly when a "Compare with" diff is launched, both on labels and changesets cases. We also found that labels' name encoding and decoding were wrong too.
Now this is all fixed and "Compare with.." diff are working as expected:
Before: plastic://test.cloud/repos/NikkiTest1/labels/FirstCset..My nre super label %%/diff
Now: plastic://test.cloud/repos/NikkiTest1/labels/FirstCset..My+nre+super+label+%25%25/diff
two changeset plasticlink sorting was wrong.
Windows - Plastic: two changeset plasticlink sorting was wrong.
The src and dst are the wrong way round in the generated changeset links.
E.g., diff changesets 1 and 6, link is
plastic://test.cloud/repos/NikkiTest1/changesets/6..1/diff
The same error happened when generating label diff. Furthermore, we found wrong sorted information at the label diff window. Source and destination labels are reversed.
This was the result when comparing "new Label" label with "Cset=23" label:
Fixed two label diff window:
corrected value of PLASTIC_CHANGESET trigger vari…
All platforms - Server: corrected value of PLASTIC_CHANGESET trigger variable.
In a specific scenario the PLASTIC_CHANGESET variable of the after-checkin trigger could contain the incorrect value.
Specifically, this happened when checking in the results of a "merge to..." operation after creating a shelveset. The PLASTIC_CHANGESET variable would contain the shelveset spec instead of the changeset spec.
This is now corrected.
9.0.16.4851
Public | 2021-01-12
New
Added workspace info bar
Linux - Plastic: Added workspace info bar
We added the workspace info bar, already present in macOS, to Linux Plastic.
It is a small panel at the top of the window to show you the branch/changeset/label (and its repository) of the current workspace, the current workspace name and path, and the current user's name.
This is how it looks:
Enjoy!
P4 Sync available in Linux using P4 CLI
P4 sync - Linux: P4 Sync available in Linux using P4 CLI
The P4 sync operation didn't work in Linux, even if you enabled the P4. We fixed a few minor issues and it's now supported!
We upgraded JavaScript third party libraries in o…
All platforms - WebUI: We upgraded JavaScript third party libraries in order to solve security vulnerabilities.
Bug
plasticlinks branch name error
Windows - Plastic: plasticlinks branch name error
Plasticlinks failed to open when users shared links related to branches that included special characters in their names.
This encoding error is solved now.
fixed exception calling "cm update --forcedetaile…
All platforms - Command line client: fixed exception calling "cm update --forcedetailedprogress" from node.js
The aforementioned command (and any other using the --forcedetailedprogress" flag) now runs successfully when invoked from node.js.
9.0.16.4839
Public | 2021-01-05
New
Plastic links are here!
Windows - Plastic: Plastic links are here!
We implemented a way to share diffs by using a link. You just need to click on the new "share link" button, and it will get copied to your clipboard. The links look like this:
plastic://myorg.cloud/repos/projectRepo/branches/main/scm28044/diff
You can find this new button at the top right corner of the Diff View. This is how it looks!
The final goal is to be able to share with your teammates not only diffs, but links to any part of the repository.
For now, Plastic links are Windows only, and in preview. To activate them you need to add this entry to your plasticgui.conf
file:
PlasticLinkEnabled=True
You can find the plasticgui.conf
configuration file under %LOCALAPPDATA%\plastic4
.
Enjoy it and let us know your feedback!
More improvements in P4 Sync!
All platforms - P4 sync: More improvements in P4 Sync!
We improved the Perforce sync operation. Now, it's able to:
Set file type of a file using the P4 CLI client.
Submit changelists in a depot using the P4 CLI client.
We edited the message when removing a custom "Ope…
Windows - Plastic: We edited the message when removing a custom "Open with..." tool
Before, we were showing the same message as when removing a "Preview" tool.
Now, the message shown when you remove an "Open with..." tool is correct:
We changed 'cm changelist' flags.changelist - (-…
All platforms - Command line client: We changed 'cm changelist' flags.changelist - (--)
'persistent' / 'notpersistent' flags now contain a '--' prefix.
We fixed an incorrect behaviour. When entering
cm clist myclist --persistent
it showed a success message but did nothing. Now we are able to edit the--persistent
/--notpersistent
flag without having to rename or edit the changelist description.We updated the CLI help texts and included missing information in the Spanish version.
We updated the plugin for the latest SDK!
Windows - Wwise plugin: We updated the plugin for the latest SDK!
From version 2019.1.x.y to version 2019.2.x.y of Wwise there was a breaking change in the SDK we use to build our plugin. We updated the plugin to be compatible with the latest version of Wwise.
If you are using version 2019.2.x.y of Wwise, simply replace your current PlasticSCMWwisePlugin.dll with the new one.
Note, if you already configured an older version of the plugin you will need to reconfigure it after you update. This is because of a change in the way the configuration is stored.
What has changed:
We had to add a new field to the configuration dialog where you must enter the Wwise project root path. Note, the Wwise project must be inside a Plastic workspace. Having a separate project path and workspace path allows us to operate more efficiently when your workflow involves having multiple Wwise projects within a single Plastic workspace. (The preferred usage is one project per workspace however).
When configuring the plugin, enter the cm.exe
path as before, and now set the project path before clicking "Test connection" to test the connection.
Here is what the updated dialog looks like:
Open Workspace dialog now has its window state sa…
Windows - Plastic: Open Workspace dialog now has its window state saved and restored.
From now size settings from Open Workspace window are saved and restored everytime the window is opened or closed.
Bug
We fixed a bug that prevented the diff view conte…
All platforms - WebUI: We fixed a bug that prevented the diff view content from scrolling to the first change.
We fixed an issue during server side merges.
Linux - Plastic: We fixed an issue during server side merges.
Performing a server side merge (or merge to) operation in Plastic Linux resulted in an exception being thrown where certain conflicts were detected. We fixed the issue and now the merge works on every scenario.
We fixed switch/update operations in cloud worksp…
All platforms - client REST API: We fixed switch/update operations in cloud workspaces.
We detected that the client REST API couldn't switch or update workspaces that pointed to cloud repos. An error in repository server resolution led to internal server errors. It's all fixed now!
9.0.16.4815
Public | 2020-12-18
New
more permission dialogs arrive to Linux!
Linux - Plastic: more permission dialogs arrive to Linux!
We have added a permissions dialog to the Linux GUI so that you can edit your object permissions from the GUI, rather than the command line.
Check out the Security Guide to see how you can you permissions to better secure your data.
You can control permissions for repositories, branches, labels and attributes. You can open the permissions dialog from the context menu in the Branch Explorer, Branches, Labels and Attributes view. Enjoy!
Here are some screenshots:
Opening the permissions dialog:
The permissions dialog:
But wait, there's more!
We also added the ability to edit the path permissions for repositories! This way you can see all the existing path permissions for a repository from one place!
This is how it looks:
This is part of our ongoing effort to reach feature parity across all platforms.
P4 Sync using CLI can retrieve changeset metadata…
All platforms - P4 sync: P4 Sync using CLI can retrieve changeset metadata now!
We improved the Perforce sync operation. Now, it's able to retrieve metadata of a changeset using the P4 CLI client.
The 'fast-import' and 'fast-export' commands now…
Command-line client: The 'fast-import' and 'fast-export' commands now include new options!
For example:
The
--nodata
option lets you execute the commands without importing or exporting the data to verify that they will run correctly later with the data.The
--from
option exports from a particular changeset.
Run the following to get more information:
cm fast-import --help
cm fast-export --help
Bug
We fixed a bug in which moving files appeared as…
macOS - Plastic: We fixed a bug in which moving files appeared as locally deleted on the pending changes view.
On macOS Catalina, when you moved a file using Plastic, the Pending Changes view wrongly showed it as locally deleted. This happened when you opened the pending changes view before moving the file. Let's see a case:
1º Open pending changes view
2º Open workspace explorer
3º Cut file
/dirA/file1
4º Past file at [/code]/dirB[/code]
5º Open pending changes view
Before this fix, the pending changes wrongly showed /dirB/file1
as locally deleted. Now, the pending changes correctly view shows the moved file from /dirA/file1
to /dirB/file1
.
This error only affected the macOS Catalina since Plastic version 9.0.16.4488.
Deleting a branch from outside a workspace now wo…
All platforms - Command line client: Deleting a branch from outside a workspace now works OK.
To do so, you must use the full branch specification:
cm branch delete main/mybranch@rep:myrepo@server
Fix conditional changeset format panel's descript…
Windows - Plastic: Fix conditional changeset format panel's description text.
This text was cut out when it's container's was not wide enough:
Now the description wraps and it is fully visible:
9.0.16.4802
Public | 2020-12-17
New
You can now edit path permissions from Linux GUI!
Linux - Plastic: You can now edit path permissions from Linux GUI!
We added the ability to configure path permissions in Linux Plastic, the same way you can already do it on macOS and Windows.
Check the documentation fr more info on using path permissions to secure user access to your codebase!
The path permissions dialog is launched by selecting "Path permissions" on a file or directory in the Workspace Explorer view.
You can then set access permissions on this path for users or groups.
You can set permissions for all branches, individual branches, or groups of branches.
Enjoy!
We improved 'cm acl' documentation!
All platforms - Command-line client: We improved 'cm acl' documentation!
Now you can read all about the options you can use with secured paths.
We added new setting for LDAP connections - overr…
All platforms - Server: We added new setting for LDAP connections - override for groups filter
We have added a new setting to server.conf that allows you to override the filter used when querying the LDAP server for the list of groups. This will enable server administrators to modify the filter to be more efficient for their specific LDAP configurations.
WARNING! This setting should be considered "expert only", and should only be modified by server administrators familiar with the details of their LDAP server configuration. Incorrectly configuring this setting will lead to unexpected behaviour.
The new setting is "GroupFilterOverride" and must be specified in the "LdapSettings" section of the server.conf.
For example:
<LdapSettings>
<GroupFilterOverride>__your_filter_here__</GroupFilterOverride>
</LdapSettings>
Optionally, you can include the string "{filter}
" in the filter. This will be replaced by the value of the filter option of the "cm listusers" command, if specified.
For example, for the command 'cm listusers --onlygroups --filter=admin
', the filter override will be modified as follows:
(uid={filter})
becomes(uid=*admin*)
.
If no filter is specified, "*" is used:
(uid={filter})
becomes(uid=*)
.
We improved the message we show you when removing…
Windows - Plastic, Gluon: We improved the message we show you when removing a Diff tool or a Merge tool configuration from the Preferences window.
Before it was "Deleting the tool specification. Continue?"
. And now is "Do you want to delete this diff tool configuration?"
.
P4 Sync using CLI can retrieve file metadata now!
All platforms - P4 sync: P4 Sync using CLI can retrieve file metadata now!
We improved the Perforce sync operation. Now, it's able to retrieve metadata of for a file using the P4 CLI client.
Bug
Newly added items now have the correct size.
All platforms - Gluon: Newly added items now have the correct size.
When adding a new item to the source control, the size shown in the workspace view was always 0 bytes, as shown in the picture:
We solved the issue, and now you can see the real size of the file or directory before it is checkedin:
The diff view content/diff editors weren't fully…
All platforms - WebUI: The diff view content/diff editors weren't fully displayed. Their bottom ends were abruptly cut. We noticed this because the horizontal scrollbars never appear and when moving down using the keyboard arrows there was an offset between the cursor disappearing below and the editor starting to scroll.
Now it's fixed, and the horizontal scrollbars are visible:
We fixed a bug that prevented Plastic from starti…
Windows - Plastic: We fixed a bug that prevented Plastic from starting with custom scaling.
When setting up a custom scaling in Windows, the Plastic GUI failed to start. Now it's fixed.
9.0.16.4788
Public | 2020-12-14
New
Christmas GUI-help owls!
All platforms - Plastic, Gluon: Christmas GUI-help owls!
From December 1st to January 6th our owls will celebrate Christmas too.
See how they dressed up:
We improved the Incoming Changes sub-branches war…
All platforms - Plastic, Gluon (only Windows): We improved the Incoming Changes sub-branches warning message!
Incoming Changes does not currently support sub-branches and cannot handle the merge. We improved the error message you get in this scenario to specify the changeset you need to manually merge from to resolve the situation.
now code review comment's text box has spell chec…
Windows - GUI: now code review comment's text box has spell checking!
We included also spell check errors' suggestions to the spell check context menu.
Here's how it looks:
Now you can edit repository server permissions fr…
Linux - Plastic, Gluon: Now you can edit repository server permissions from the GUI!
We are working on making permissions editable from the GUI for our GNU/Linux users. This is part of our goal to have feature parity across all platforms.
The first set of permissions made available from the GUI are the repository server permissions!
You can access the new dialog from the repositories view:
Add Users or Groups for which you want to edit the permissions:
Set permissions for each User or Group:
Check out the Security Guide for more info on using permissions:
We removed the "apply" button from permissions di…
macOS, Linux - Plastic, Gluon: We removed the "apply" button from permissions dialog.
Dialogs on macOS and Linux don't usually have an Apply button like on Windows. We removed the button from the macOS and Linux versions of the tools, to be consistent with other dialogs on those platforms.
Here are some screenshots. Where's the Apply button? Gone!
We deprecated the 'cm shelve' command.
All platforms - Command Line Client: We deprecated the 'cm shelve' command.
Now, if you get help for cm shelve
, you will see a notethat indicates that the command is deprecated. Please use cm shelveset
instead.
We enhanced Perforce sync (p4 sync) to take advan…
p4 sync - Windows: We enhanced Perforce sync (p4 sync) to take advance of the Command Line:
The sync process can now use command line capabilities to:
Get the content of a file.
Get information about streams.
Check user privileges.
Get the history of a file.
Get changelists.
We upgraded the LDAP library we use for the .NET…
All platforms - Server (.NET Core flavor): We upgraded the LDAP library we use for the .NET Core version of the server.
By upgrading the library, we fixed a specific issue we saw in the setting of timeouts for LDAP queries. Previously, LDAP requests would fail when setting a non-zero timeout value of less than 10 seconds in the WebAdmin. The new library fixes this issue!
Bug
Now the "Cancel" button is enabled for big checki…
All platforms - Plastic: Now the "Cancel" button is enabled for big checkin operations.
When performing a checkin of a big amount of files, the "Cancel" button at the bottom of the panel sometimes appeared disabled, making it impossible to cancel the check-in operation once started. We fixed this, and now you can cancel the operation at any time during the upload process.
Enterprise Edition configuration was unable to co…
All platforms - Plastic, Gluon: Enterprise Edition configuration was unable to connect to Cloud.
This is a little bit of a corner case but here it goes:
You install an Enterprise Edition client.
Run it for the first time on a clean system.
And try to connect to Cloud.
It failed and now it works. It was a small thing in Cloud region resolution.
Now .json files are correctly detected as text ty…
All platforms - Plastic, Gluon: Now .json files are correctly detected as text type files!
We fixed colors here and there for the Old School…
Windows - Plastic: We fixed colors here and there for the Old School theme!
For instance, check out how in the Update Workspace dialog the text "don't ask me again" is now white!
We fixed an unexpected error when the changeset i…
Windows - Plastic: We fixed an unexpected error when the changeset is missing at diff window!
Before this fix, you would get an uncontrolled error message if somebody deleted a changeset whilst you were browsing its differences. Now you get a nice explanation about what happened!
LDAP user filter override is now applied correctl…
All platforms - Server: LDAP user filter override is now applied correctly for LDAP type servers!
To accommodate varying LDAP configurations we have the ability to specify an override for the user filter Plastic uses in LDAP searches. We were not applying this override for a particular query when the Server type is set to "LDAP" (as opposed to "Active Directory"). We fixed this so that the filter is applied to all relevant queries!
To set the override, add or modify the element <MemberNameFilterOverride>
within the <LdapSettings>
tag in server.conf.
For example:
<LdapSettings>
<MemberNameFilterOverride>(uid={user})</MemberNameFilterOverride>
</LdapSettings>
Now {user}
will be replaced by the username when a query is made.
Chek the documentation for further information.
9.0.16.4741
Public | 2020-12-01
New
download speed and estimated remaining time
All platforms - Plastic, Gluon: download speed and estimated remaining time
Rumor has it that Plastic downloads your data faster than any other SCM tool. Is that true? We think so. And now you can see for yourself how blazingly fast your data is being downloaded.
We've enhanced the progress status shown during workspace updates with the current download speed, and the estimated time until update completes. Is there time to grab a biscuit from the kitchen while you switch branches? Well, now you'll know!
Take a look at these screenshots:
speed and remaining time estimates for checkins!
All Platforms - Plastic, Gluon: speed and remaining time estimates for checkins!
We added the upload speed and estimated remaining time to the checkin progress bar. No more guessing when your checkin will complete. Let us guess instead :)
Here's what it looks like:
Main menu will now show the Plastic SCM icon
Windows - Shell Extension: Main menu will now show the Plastic SCM icon
"Add directory tree to source control" context me…
Windows - Shell Extension: "Add directory tree to source control" context menu option will be always enabled when a folder is selected. This behavior will now match what Plastic application does.
9.0.16.4725
Public | 2020-11-26
New
notification for incorrect workspace mode!
macOS - Gluon: notification for incorrect workspace mode!
Gluon uses workspaces in "partial" mode, whereas Plastic uses workspaces in "full" mode. You can easily switch the workspace to the mode you want by updating the workspace in the application you want to use.
However, it wasn't always obvious if your workspace was in the correct mode, which could be confusing if you switch between Plastic and Gluon a lot in the same workspace.
To help, we have added a notification that pops up if the workspace is in the wrong mode. From the notification you can update the workspace and continue working.
Here is how it looks:
workspace mode alerts!
Linux - Plastic, Gluon: workspace mode alerts!
We added a notification to Plastic and Gluon on linux that let's you know when your workspace is in the wrong mode, and let's you easily fix the issue and continue working.
What are workspace modes? Plastic workspaces are "full" workspaces. Gluon workspaces are "partial" workspaces. If you want to work on a "full" workspace in Gluon, or a "partial" workspace in Plastic, you need to Update your workspace in the tool of choice to change the workspace mode.
To make this clearer, we added the notification with a handle link to let you update and continue working.
Here are some screenshots:
We added a note in the [code]cm checkin[/code] co…
Command-line client: We added a note in the cm checkin
command to clarify that you can checkin private items.
9.0.16.4711
Public | 2020-11-20
New
We included double dash support for the following commands' options:
*'''cm acl''' now supports:
** -user / --user
** -group / --group
*'''cm setowner''' now supports:
** -user / --user
**-group/--group
*'''cm changerevisiontype''' now supports:
** -type
** --type
Removed obsolete option from the Plastic SCM menu.
Windows - Visual Studio Package: Removed obsolete option from the Plastic SCM menu.
The Visual Studio package still displayed an obsolete "Change workspace selector" option. Now it has been removed.
partial workspace notification bar!
macOS - Plastic: partial workspace notification bar!
Plastic and Gluon use different kinds of workspace: a full workspace and a partial workspace, respectively.
For Windows, we've recently introduced a new feature that allows you to easily switch between them when you open a partial workspace from Plastic. A warning notification appears at the top of the window letting you change your workspace to the correct mode.
Now, this feature is also available for Plastic on macOS! Here is how it looks:
9.0.16.4697
Public | 2020-11-16
New
full workspace warning!
Windows - Gluon: full workspace warning!
Plastic and Gluon use a different kind of workspace. They are incompatible, but you can easily switch from one to the other by updating in the relevant tool.
Now we made this even more transparent. If you open a Plastic workspace in Gluon, you now get a warning with the option to update the workspace and continue working.
Here's how it looks:
improved update progress!
All platforms - Plastic, Gluon: improved update progress!
We improved the progress for the update operation to show correctly the current file when some files are downloaded in parallel.
We fixed some misspelled words. Now, you won't fi…
Command-line client: We fixed some misspelled words. Now, you won't find (we hope so!) anything like "directoy".
Bug
We fixed a bug in the cm help command.
All platforms - Command line client: We fixed a bug in the cm help command.
Before, cm help
with a non-existent command failed with an uncontrolled error message. Now it is fixed.
9.0.16.4686
Public | 2020-11-13
New
path permissions now editable in the GUI!
macOS - Plastic: path permissions now editable in the GUI!
Continuing our work to bring feature parity across all platforms, we have added the ability to configure path permissions in macOS Plastic.
See here for more info on using path permissions to secure user access to your codebase: https://www.plasticscm.com/documentation/security/plastic-scm-version-control-security-guide#Preventusersfrommodifyingspecificitems
The path permissions dialog is launched by selecting "Path permissions" on a file or directory in the Workspace Explorer view.
You can then set access permissions on this path for users or groups.
Permissions can be set for all branches, individual branches, or groups of branches.
Enjoy!
Manage path permissions for a repository from the…
macOS - Plastic: Manage path permissions for a repository from the GUI
We added a new menu option to the repositories view that lets you manage all the path permissions for a repository directly from one place.
You can add, edit, and remove secured paths, as well as specific branches for each one.
Added support for allow list to restrict connecti…
All platforms - Server: Added support for allow list to restrict connections to certain IPs.
This new feature works both for on-premises servers (only .net core build) and Plastic Cloud.
In Plastic Cloud a web interface will soon be available to configure the allow list.
== How it works ==
Create a networkallowlist.conf file as follows:
// this is a sample file
127.0.0.1 user1
Then as user1, from localhost, run the following:
cm repo list
You'll see the following log in the server
2020-11-11 17:40:51,970 18 INFO networkallowlist - . allowlist rules:
2020-11-11 17:40:51,971 18 INFO networkallowlist - . allowlist entry: 127.0.0.1 -> user1
Which means the networkallowlist was loaded and the command succeeds.
Now modify the networkallowlist.conf to contain the following lines:
// this is a sample file
127.0.0.1 pablo
Wait at least 60 seconds for the server to notice the configuration change (at this point we only check for changes every minute), and rerun the cm repo list command.
You'll find this in the server log:
2020-11-11 17:42:14,791 20 INFO networkallowlist - . allowlist rules:
2020-11-11 17:42:14,791 20 INFO networkallowlist - . allowlist entry: 127.0.0.1 -> pablo
Which means the file was reloaded. And then:
2020-11-11 17:42:45,620 20 INFO PlasticProto.ConnectionFromClient - conn 12 is not allowed according to the allow list rules. Closing connection.
And your command will fail as follows:
> .\cm.exe repo list
Error: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
For security reasons, no extra info is sent to the client, the connection is simply closed at the server side.
== What rules networkallowlist.conf currently supports? ==
The following is a valid config file.
// means connections from 81.32.221.43 are allowed
81.32.221.43
// means connections from 81.32.221.41 are also allowed but only for these users
81.32.221.41 pablo@codice.es ruben@codice.es
// any IP address starting with 81.32.224 will match (CIDR patterns not supported yet)
81.32.224
== Restrictions ==
It can't restrict groups, just users.
It can't use patterns to specify users.
IPs are specified as strings, no CIDR patterns supported yet.
Negation rules are supported yet.
We are making a complete review of the command-li…
Command-line help: We are making a complete review of the command-line help.
This review consists of fixing formats and editing texts and descriptions. For example, before this task, the usage of the 'cm lock list' was:
cm lock list [revspec [revspec ...]] [options]
and now is:
cm lock list | ls [<revspec> [ ...]] [--server=<server>]
[--onlycurrentuser] [--onlycurrentworkspace]
[--ignorecase]
partial workspace notification bar!
Windows - Plastic: partial workspace notification bar!
Plastic and Gluon use different kinds of workspace: a full workspace and a partial workspace, respectively.
It can be a bit confusing for users if they use Plastic and Gluon on the same workspace, because you have to remember to update the workspace in each tool to switch between workspace types.
We've made that a whole lot easier now. If you open a partial workspace in Plastic you now get a notification message, from which you can easily update the workspace and continue working.
It looks like this
We added multiple cleanup options for build check…
Jenkins plugin: We added multiple cleanup options for build checkout
Thanks to the contributions of Krzysztof Knapik from Housemarque, we just released a new version of our Jenkins plugin that enables you to select the cleanup action to perform before your build checkout. There are four options to choose from: minimal (just undo), standard (undo and remove privates), full (undo, remove privates and remove ignored) and delete (removes the whole workspace directory).
Bug
Code review list items colored by review status!
Windows - Plastic: Code review list items colored by review status!
We fixed the colors used in the code review tab's list. Now there are three colors accordingly to the three different code review statuses.
Under Review: Blue
Reviewed: Green
Rework Required: Red
See renewed rows in action!
9.0.16.4652
Public | 2020-11-04
New
Repository server permissions now configurable in…
macOS - Plastic: Repository server permissions now configurable in the GUI!
We are working on implementing all object permission configuration dialogs on mac. Currently mac users have to resort to the cli to configure permissions. Not anymore! It will all be available in a nice graphical interface.
In this release we have added support for the Repository server permissions.
Here is an example screenshot:
See here for a guide to configuring permissions in Plastic: https://www.plasticscm.com/documentation/security/plastic-scm-version-control-security-guide
During the course of the next few release we expect to add support for configuring permissions an all object types in the system.
more permissions dialogs on mac!
macOS - Plastic: more permissions dialogs on mac!
We recently added a dialog for editing repository server permissions in the application. As promised in that release note, we've been busy adding the remaining permission control dialogs to Plastic on the mac. Mac users can now edit permissions for all object types in the GUI, rather than use the cli.
Check out the Security Guide to see how you can you permissions to better secure your data https://www.plasticscm.com/documentation/security/plastic-scm-version-control-security-guide
You can control permissions for repositories, branches, labels and attributes. You can open the permissions dialog from the context menu in the Branch Explorer, Branches, Labels and Attributes view. Enjoy!
Spoiler alert! Here are some screenshots:
Opening the permissions dialog:
The permissions dialog:
notification when working changeset is deleted
All platforms - Plastic: notification when working changeset is deleted
If someone else deletes the changeset you are currently working on, you will get a notification with a button allowing you to update your workspace to the new head.
It looks something like this:
Bug
Our FMOD plugin got outdated and didn't work with…
Windows, macOS - FMOD plugin: Our FMOD plugin got outdated and didn't work with recent versions of FMOD. It's fixed now! You can drop the plugin scripts in the FMOD scripts directory and control your project sources with Plastic SCM from inside FMOD. Contact us if you want to try the plugin out!
9.0.16.4643
Public | 2020-10-30
New
Select user and groups now available!
macOS - Plastic: Select user and groups now available!
We included group management in the dialog to select a user or group.
For now, you can use this dialog to change the reviewer of a code review. But soon, it will be also used from the permissions dialogs. We are working on it!
We added early detection of the system language!
All platforms - Plastic, Gluon: We added early detection of the system language!
Now we detect your system's language the first time you run Plastic, and use it to show the onboarding panels.
Before this release, the language check was made after the configuration, and you had to restart the application to see the changes. Now you can configure Plastic SCM and start using it in the same language as your machine.
For now, Plastic SCM supports Spanish and English, but we are working on adding four new languages. Stay tuned for more!
Added permission check before attempting a merge!
Linux - Plastic: Added permission check before attempting a merge!
Before attempting a merge we check that you have permission to modify the file. This means we can provide an error message before running the merge process, rather than allowing you to resolve conflicts only to find you can't save the result.
We modified the Incoming Changes notification bar…
Linux - Plastic: We modified the Incoming Changes notification bar colors!
The now match the colours in Windows, as you can see in the following screenshots:
Bug
We fixed GUI performance issues because of the au…
Windows - Plastic: We fixed GUI performance issues because of the auto-refresh feature.
When the Pending Changes view was auto-refreshed, sometimes it performed some heavy calculations in the UI thread. it caused the app to be unresponsive for a few seconds. Now it's fixed!
Avoid repeated error message when calculating mer…
Linux, Mac - Plastic: Avoid repeated error message when calculating merge.
If a problem is discovered while calculating the merge for incoming changes we display the issue. Unfortunately, dismissing the error message would refresh the view, cause the merge to be recalculated, and the error to displayed again. An endless loop. We fixed that.
We fixed context menu item separator height!
Windows - Shell Extension: We fixed context menu item separator height!
The context menu items from our PlasticSCM Shell Extension displayed the separators using a wrong height value, making it uncomfortable to use.
We fixed it so those context menus now use a correct size for separators.
9.0.16.4624
Public | 2020-10-22
New
We added the Incoming Changes Plastic SCM for Lin…
Linux - Plastic: We added the Incoming Changes Plastic SCM for Linux!
We are happy to announce that we added Incoming Changes functionality to Plastic SCM GUI on Linux.
What is the Incoming Changes?
A typical workflow can involve multiple developers checking in changes on the same branch. When someone else checks in a change on the branch you are working on, it means your local workspace is out of date. To get your workspace up to date, you need to download the lastet changesets from the server. We call these new changesets "Incoming Changes".
Incoming Changes in Plastic SCM makes the process of updating your workspace with other people's changes as easy and painless as possible.
The first addition is a notification bar which alerts you when there are new changesets on the server. This appears at the top of the screen and lets you know how many new changesets there are, and also if they conflict with your local changes.
Here is what the notification bar looks like:
Or, if there are conflicts:
Of course, you can ignore the notification until you are ready to update your workspace. At that point you can click on the button in the notification and launch the Incoming Changes view.
The Incoming Changes view shows all the pending changes on the server and lets you resolve any conflicts between the incoming changes and your local changes.
If there are no conflicts, simple updating the workspace will get you up to date. Otherwise the Incoming Changes view allows you to resolve the conflicts and get your workspace up to date. You are then free to check in your changes.
Here is an an example of what the Incoming Changes view looks like:
The client also launches the Incoming Changes view if you try to check in when there are other changes on the server. This is so you can resolve any conflicts before the checkin.
We greatly improved the UX of the Merge View!
Linux - Plastic: We greatly improved the UX of the Merge View!
We made some visual changes in the four merge view tabs, to match the design of Windows and macOS applications. All texts, icons, and behaviors are now the same in the three platforms.
This is a detailed description of changes done on different merge view tabs:
== "Directory conflicts" tab ==
Now the first directory conflict is automatically selected.
The "unsolved" icon has been removed.
There is a red counter telling the user the number of pending directory conflicts to resolve vs total directory conflicts.
The "Resolve directory conflict" button for the selected conflict is moved to the top of the pane, to make it more visible
When resolving all the directory conflicts, the merge view jumps to the "file conflicts" tab (just if there are pending file conflicts to resolve).
The counter turns green when no pending directory conflicts left.
== "File conflicts" tab ==
There is a red counter telling the user the number of pending file conflicts to resolve vs total file conflicts.
The counter turns green when no pending file conflicts left.
The "unsolved" icon has been removed.
== "Automatic merges" tab ==
Apart from text changes and icon removal, the categories in this tab (Deletes to apply, Moves to apply, etc) will be collapsed if the number of items is >= 10.
== Discarded conflicts" tab ==
Just text changes and icon removal.
We updated the help of the 'merge' command!
All platforms - Command line client: We updated the help of the 'merge' command!
It now includes documentation of the following options:
--resolveconflict
- Used to solve a particular directory conflict. This option must be used in conjunction with some other parameters to indicate the index of the conflict to solve (--conflict
), the type of conflict resolution (--resolutionoption
) and the files (--mergeresultfile
and--solvedconflictsfile
) to output the information of the merge result and the conflicts solved;--nointeractiveresolution
- To avoid prompting the user for manual conflict;--machinereadable
- Used in conjunction with some other parameters, outputs the result in an easy-to-parse format.
These options are mainly used by plugins or integrations. We think they can be useful also for those users that want to extend the Plastic functionality.
More intuitive incoming changes notification
All platforms - Plastic, Gluon: More intuitive incoming changes notification
We modified the text for the "incoming changes" notification button. Now, instead of "Update" or "Resolve", the button says "View", making clear that pressing it will not change anything in your workspace.
This button appears at the top right corner of Plastic and Gluon when the current workspace can be updated with new changes.
When you click the notification button, Plastic shows a window from which you can update your workspace or resolve any possible conflicts.
We applied sharding to distribution of pulled fil…
Windows - P4Sync: We applied sharding to distribution of pulled files!
As storing a huge amount of files in the same folder affects FileSystem Performance, we have applied folder sharding so the client now distributes the downloaded files in subfolders, boosting the FileSystem performance.
The client now removes any generated temp file af…
Windows - P4Sync: The client now removes any generated temp file after P4 sync!
The client did not delete Temp files after pulling files from P4. We've changed it so now the client removes any temp files used during the synchronization.
9.0.16.4608
Public | 2020-10-15
New
Gluon now automatically fills your server name an…
All platforms - Gluon: Gluon now automatically fills your server name and credentials!
If you have a local server running, Plastic SCM can automatically detect it during the setup process, and fill the server name and credentials for you. Now we added the same functionality to Gluon.
Now you can navigate changes from Semantic diff o…
macOS - Plastic: Now you can navigate changes from Semantic diff overview!
On the left hand side of the semantic diff there is an overview panel, showing all the differences. You can now navigate the code by clicking items in the overview.
9.0.16.4599
Public | 2020-10-13
New
We eliminated GUI freeze during branch query!
Windows - Plastic: We eliminated GUI freeze during branch query!
We fixed an issue where the GUI would freeze for a few seconds while running certain branch queries. The problem was that we were generating huge quantities of superfluous log entries. It could happen when the server in the query was not the server of the current workspace. We removed the excess logging and these queries now run without freezing the GUI.
We enabled long path support for Gluon!
Windows - Gluon: We enabled long path support for Gluon!
Now you can create and use Gluon workspaces in paths that exceed the traditional limit of 260 characters. Remember that this is only available for Windows 10 users starting on Anniversary Update (version 1607, a.k.a. Redstone 1), and that you must have long path support enabled at the OS level.
You can check your Windows 10 version by running winver
on a terminal, and you can enable long path support by following these instructions.
We added retries when the GitHub LFS http request…
All platforms - GitSync: We added retries when the GitHub LFS http requests fail due to transient errors.
Now we include clconfigureclient command-line uti…
Windows, macOS - Cloud Edition: Now we include clconfigureclient command-line utility in Cloud Edition!
Maybe you are a command-line hacker, maybe you are writing your own tooling. clconfigureclient
is the command-line utility that lets you configure your Plastic SCM client. We hope you find this useful!
Bug
We fixed the number of merges in the Cloud Activi…
All platforms - Plastic: We fixed the number of merges in the Cloud Activity report.
The number of merges in activity reports was incorrect. You could find this number in the Cloud Edition Activity page or in the weekly activity report we email you if you've got an active Cloud Edition subscription.
We included all incoming changes calculations in those reports. However, those are automatic checks that the GUI performs in the background. It didn't make sense to count them as part of the merge operations you perform.
You should notice a decrease in the amount of reported merges you get once you install this version!
9.0.16.4587
Public | 2020-10-08
New
We added custom applications to the file "Open" c…
macOS, Linux - Plastic: We added custom applications to the file "Open" context menu!
Now you can customise the "Open" context menu for files in the Workspace Explorer view and the Pending changes view.
In the future we will add a preference dialog to configure the menu. If you can't wait, you can use this feature right now by adding a new file "openwith.conf" to your config directory.
Each line of the config file specifies:
The text to appear in the menu
An optional keyboard shortcut
The path to the executable to launch
Arguments to pass to the executable
The format is slightly different on each platform. Here are some examples of a typical line. For macOS you simply specify the key, "t" in this case", to get the Command+T shortcut:
[TextEdit|t] "/System/Applications/TextEdit.app" @file
For linux you specify the control key and the letter key:
[gedit|ControlMask+G] "/usr/bin/gedit" @file
[vim|ShiftMask+V] "/usr/bin/vim" @file
Here you can see the menu in action!
Bug
We fixed some XML serialization issues.
All platforms - Jenkins plugin: We fixed some XML serialization issues.
The plugin sometimes failed to execute commands that output large amounts of XML information. Those commands are 'cm log' (used to build the changes list for a build) and 'cm find' (used to poll the VCS).
If you have a large amount of changes in a build, the XML output can cause issues in the Java process buffers. We changed the code to make the Plastic SCM commands output their XML directly to a file instead of to stdout. That way, the buffers don't get overloaded and the parser works seamlessly.
We fixed unsetting of attribute values from paths…
All platforms - Command line client: We fixed unsetting of attribute values from paths outside the workspace.
You can set an attribute value like this...:
cm attribute set att:test@rep:myrepo@myserver cs:1@rep:myrepo@myserver attributeValue
...even if your current directory is outside the workspace. The fully specified attribute gives us all the info we need.
Sadly, the equivalent cm attribute unset
was broken. We have fixed it!
We added missing info in the Path Permissions dia…
Windows - Plastic: We added missing info in the Path Permissions dialog.
The Path Permissions dialog for a given path only displayed the permissions for all branches. It didn't show the permissions defined for other groups of branches.
Users could still check all secured paths from the path permissions dialog by launching it from the repositories view.
Now both dialogs show the correct info!
We removed unexpected updates when your plan work…
All platforms - Jenkins Plugin: We removed unexpected updates when your plan workspace is switched to a changeset.
Following changes in the behavior of CLI command 'update', it unexpectedly changed the current changeset of workspaces switched to a changeset. The 'update' command now switches to the latest changeset in the branch of the current changeset. The Jenkins plugin will avoid this update if the workspace is switched to a changeset or a label.
We fixed item focus when adding new files in the…
Windows - Plastic: We fixed item focus when adding new files in the Workspace Explorer.
We now expand the selected directory and set focus on the new file when it is added in the Workspace Explorer.
9.0.16.4567
Public | 2020-10-01
New
Now you can use custom applications to open files…
Windows - Plastic: Now you can use custom applications to open files in Differences and Code review!
In Plastic Preferences you configure custom "Open with..." options which then appear in the context menu for items in the Workspace explorer. We have now added the same options to the context menu in the diff and the Code review windows.
We improved the usability of the onboarding panel!
All platforms - Plastic: We improved the usability of the onboarding panel!
This affects the onboarding panel in Cloud Edition. When creating a workspace to work distributed, you had to either type the remote repository manually or browse it in a separate window. Now you can also choose from a list! The client fills this list with the available repositories from you organization(s).
Take a look at the before and the after!
Before:
After:
The 'update' triggers now run when updating the w…
Windows - Plastic, Gluon: The 'update' triggers now run when updating the workspace from the Incoming changes view!
Now, when you click "Update workspace" in the Incoming changes view, any before-update and after-update triggers will be run, just as if you did "Update workspace" from the Workspace explorer view.
There's a new flag to force detailed progress whe…
All platforms - Command line client: There's a new flag to force detailed progress when redirecting output!
When you run cm update
, switch
or setselector
, you get an animated progress bar in the console while the client updates your workspace.
Normally, if you redirected command output, we don't show the progress bar. But now you can force output of the progress bar by specifying --forcedetailedoutput
.
For example:
cm update . --forcedetailedprogress > update.log
Bug
We fixed a 'git reference 0000..00' error
All platforms - GitSync: We fixed a 'git reference 0000..00' error
GitSync could fail with this error: 'The revision for the git reference 0000000000000000000000000000000000000000 cannot be found'
. It could happen when:
The repository contains 2 folders, dirA and dirB, which have the same contents.
dirA is added/copied during a merge operation.
This error depends on how Git handles the references to send the commit, during the fetch operation. So, even in the described case, the error does not always happen.
9.0.16.4554
Public | 2020-09-25
New
We improved the About Dialog aesthetic.
macOS - Plastic, Gluon: We improved the About Dialog aesthetic.
It now has a new look and matches the one in GTK and Windows! Don't forget to check the release songs :)
Before:
After:
We made a minor aesthetic change.
Windows - Plastic: We made a minor aesthetic change.
We changed the background color of the information notification strip that appears (when needed) above the views tabs.
Bug
We fixed the sync view to take into account the v…
All platforms - Plastic: We fixed the sync view to take into account the view permission for the branches.
A customer reported that the sync view shows all branches with pending changes to sync although the user didn't have permission to see those branches.
We fixed the sync view to show only the correct branches taking into account their permissions.
We fixed an issue with the setup that affected Pl…
Windows - Plastic Drive: We fixed an issue with the setup that affected Plastic Drive!
We were missing a library in the install! This caused that, when clicking "Mount this changeset in Plastic Drive", nothing happened.
Remember that you will need Dokan 1.4 for Plastic Drive to work!
9.0.16.4540
Public | 2020-09-23
New
We improved the integration with the Windows Desk…
Windows - Gluon: We improved the integration with the Windows Desktop UI.
Snapping Gluon to the monitor edges now activates the Windows Aero Snapping feature. Pressing Windows + Arrow keys enables the Aero Snapping feature / move the window to another monitor.
9.0.16.4536
Public | 2020-09-18
New
'Sync with Git' available!
Linux - Plastic: 'Sync with Git' available!
We added the 'Sync with Git' option under the Push/Pull context menu in the branch explorer and branches views.
From now on, you won't have to use the command line to sync your git repositories in Linux.
We improved the about dialog in Linux!
Linux - Plastic, Gluon: We improved the about dialog in Linux!
The GTK "About" dialog on Plastic SCM and Gluon has a new look. Now it matches Windows style!
Before:
After:
Bug
Sometimes Visual Studio was unable to load merge…
Windows - Visual Studio Integration: Sometimes Visual Studio was unable to load merge tools from PATH.
In some scenarios, the Visual Studio package was unable to resolve merge conflicts, because it was unable to find a suitable merge tool in the PATH environment variable. Now we include the merge tool executables in the package binaries.
We fixed a display issue in the Sync repositories…
Linux - Plastic: We fixed a display issue in the Sync repositories view!
When you include a branch (that you previously excluded) the view updates correctly. Previously the branch would not be shown in the view.
We fixed the "WebAdmin and configure locks" link…
All platforms - Plastic: We fixed the "WebAdmin and configure locks" link in help system!
Corrected the "WebAdmin and configure locks" link in the help system for Cloud Edition.
Some Code Review comments were not visible.
All platforms - Plastic: Some Code Review comments were not visible.
We recently updated the Code Review system. In some Plastic SCM configurations, the Code Review comments created with the old system were not visible with the new one. Now it's fixed.
9.0.16.4525
Public | 2020-09-16
New
We improved ignore.conf for Unity workspaces!
All platforms - Plastic, Gluon: We improved ignore.conf for Unity workspaces!
We fine-tuned the way we detect when client should create the ignore.conf in workspaces that contains Unity projects.
Now, the Plastic SCM client automatically generates the ignore.conf file after updating an empty workspace if it contains a Unity project in order to correctly set up the files the should be ignored.
'Sync with Git' is now available!
macOS - Plastic: 'Sync with Git' is now available!
We added the 'Sync with Git' option under the Push/Pull context menu in the branch explorer and branches views.
From now on, you won't have to use the command line to sync your git repositories in macOS.
Bug
We fixed an issue with package notarization!
macOS - Installers: We fixed an issue with package notarization!
A few versions ago, we bumped the version of Xamarin.Mac. This included a new native assembly that was not notarized. The unnotarized assembly caused the whole package to fail the notarization process, thus showing a security warning for those of you who use macOS. This is now fixed!
We fixed the version compatibility issues to deve…
All platforms - Issue tracker extensions: We fixed the version compatibility issues to develop custom issue tracker extensions.
Some customers reported that the version of our 'issuetrackerinterface' library changes every new release. This means that users of custom issue tracker extensions for Plastic SCM need to re-compile said extensions every time they upgrade their Plastic SCM clients.
We fixed our build process so it always sets version 5.4.16.0 to the issuetrackerinterface.dll assembly.
9.0.16.4519
Public | 2020-09-11
New
added setting to allow disabling StartTls for LDA…
All platforms - Server: added setting to allow disabling StartTls for LDAP connections
When connecting to an LDAP server, Plastic automatically attempts to secure the connection using StartTls.
However, this attempt can run for a long time, and block other requests to the same server. So, if your LDAP server does not support StartTls, or you experience blocked LDAP connections, you can now disable StartTls.
You can do this by using setting UseStartTLS in the server.conf file, like this:
<ServerConfigData ...>
...
...
false
...
...
Launch GUI diffs using program arguments.
All platforms - Plastic, Gluon: Launch GUI diffs using program arguments.
Plastic SCM for windows already was able to launch the diffs for a branch/changeset/a pair of changesets using the command line arguments. Now we extended this functionality for all the GUIs (Plastic and Gluon) in all platforms (win/gtk/macOS). Examples (windows platform).
Show branch diffs:
plastic.exe --diffbranch=br:/main@myrepo@myserver:8087
Show changeset diffs:
plastic.exe --diffchangeset=cs:2@myrepo@myserver:8087
Show diffs between two changesets:
plastic.exe --diffchangesetsrc=cs:0@myrepo@myserver:8087 --diffchangesetdst=cs:2@myrepo@myserver:8087
9.0.16.4511
Public | 2020-09-07
New
Plastic SCM now switches to the parent branch whe…
All platforms - Plastic: Plastic SCM now switches to the parent branch when you delete the working branch.
Consider the following scenario. You create a new branch and switch your workspace to it. However, you decide it wasn't what you wanted and decide to delete the branch.
When you proceed, the Plastic SCM selector (the internal workspace configuration) points to a branch that no longer exists. This caused problems refreshing some views. But it's fixed now! Plastic will automatically switch your workspace to the parent changeset of the deleted branch.
Now, when Plastic SCM detects that the user deleted the working branch, it automatically switches to the branch's base changeset.
Plastic SCM now supports sync with GitHub LFS! Yo…
Windows, macOS - git sync: Plastic SCM now supports sync with GitHub LFS! You can run the sync operation and it'll automatically pull/push your large files from/to the storage if your git repository is configured to use LFS.
If you'd like to skip LFS revision contents, just add the new --skiplfs parameter. That will synchronize your git repo with Plastic leaving out any revision data stored in LFS.
This feature isn't currently available on Linux. The mono version we ship (4.6.2) doesn't support TLSv1.2 and the LFS endpoints are TLSv1.2-only. We're working in a solution for this.
9.0.16.4507
Public | 2020-09-03
New
More descriptive text when creating a new reposit…
All platforms - Plastic, Gluon: More descriptive text when creating a new repository
When creating a new repository in Plastic SCM and Gluon, now there is a hint showing the possible formats.
Usability improved in the diff tool creation dial…
Windows - Plastic: Usability improved in the diff tool creation dialog
When adding a new diff tool or merge tool, if the option to match files with a specified pattern is not selected, the text box is disabled.
Improve user experience during the onboarding!
All platforms - Plastic Cloud Edition: Improve user experience during the onboarding!
In the centralized mode, if the user didn't select any repository, the workspace was created against the default@local server, what it wasn't correct. Now, this field cannot be empty. The user has to select or create a repository.
Changed the way we add rules to the ignore.conf f…
All platforms - Gluon, Plastic, Unity Plugin: Changed the way we add rules to the ignore.conf file.
Recently, in version 9.0.16.4473 we released a feature that added common ignore patterns to the ignore.conf file, when we detect a Unity project in the workspace.
Some users reported feedback about this. When the ignore rules don't fit the project features, this automatic behavior can be harmful.
So we changed the behavior just to create the ignore rules ONLY when there is no ignore configuration for that workspace.
In other words, we don't change the ignore configuration if:
We find a ignore.conf file in the workspace.
That workspace has ignored rules in the plastic-global-config.
Bug
The Branch Explorer view was not displayed when P…
Windows - Plastic: The Branch Explorer view was not displayed when Plastic loaded without internet connection.
We fixed the following scenario:
Open Plastic SCM and show the Branch Explorer.
Close Plastic SCM.
Disconnect from the internet.
Open Plastic SCM again.
The Branch Explorer view was not displayed. Even connecting again to the internet, and trying to show the view again, it failed.
Now it's fixed.
Users couldn't create a workspace in the centrali…
Windows - Plastic Cloud Edition: Users couldn't create a workspace in the centralized mode.
We broke the workspace creation during the onboarding in the centralized mode in the last release.
Although there was a repository selected in the dialog, an error message appeared preventing the user to continue 'Repository name must not be empty'.
Now it's fixed.
9.0.16.4497
Public | 2020-08-26
New
Use your Unity ID to sign up!
macOS - Plastic Cloud Edition: Use your Unity ID to sign up!
From now on, you can sign up using your Unity ID and password.
Use your Unity ID to sign up!
Linux - Plastic Cloud Edition: Use your Unity ID to sign up!
From now on, you can sign up using your Unity ID and password.
Improve user experience during the onboarding!
All platforms - Plastic Cloud Edition: Improve user experience during the onboarding!
In the centralized mode, when the user just created the organization, there was an error message in the panel that said "No repositories found. Check that your Plastic SCM server is running and that there are repositories on it". We removed this message because it can confuse users. The user just has to create a repo to start working, everything is well configured!
Just an aesthetic GUI improvement.
Windows - Plastic: Just an aesthetic GUI improvement.
Remove legacy icons from some user dialogs to match the new look of Plastic.
Before:
After:
Bug
Protect corner scenario during the onboarding!
All platforms - Plastic Cloud Edition: Protect corner scenario during the onboarding!
The logging process failed if the user didn't belong to any organization or didn't have the rights to create a new one.
This is not a normal scenario but it could happen if you belong to an organization that was deleted.
9.0.16.4484
Public | 2020-08-21
New
The server entry in the repository browser now in…
Windows - Gluon: The server entry in the repository browser now includes a list!
We took the previous text-only control we had in the repository browser and replaced it with a drop down list that allows you to enter text as well. This will help Cloud Edition users discover their cloud repositories. It's also useful when you have multiple profiles configured and you don't remember the exact server address.
9.0.16.4482
Public | 2020-08-17
New
We joined the Unity family!
The Plastic SCM Team: We joined the Unity family!
What does this mean for you? Just what you could expect - you will be using the best VCS there is, and it will keep getting better. Just at a faster pace! So let's get back to our usual business... and keep reading to see what's new on this release!
Now you can use your Unity ID to sign up!
Windows - Plastic Cloud Edition: Now you can use your Unity ID to sign up!
From now on, you can sign up using your Unity ID and password.
The GUIs now auto-generate a ignore.conf file pre…
All platforms - Plastic, Gluon: The GUIs now auto-generate a ignore.conf file prepared for Unity projects!
Both Plastic SCM and Gluon can auto-detect Unity projects inside your workspace, and auto-generate a ignore.conf accordingly.
You will no longer be able of deleting or moving…
All platforms - Server: You will no longer be able of deleting or moving changesets in repositories in sync with Git.
We do not recommend you to rewrite the repository history when you synchronize your Plastic SCM repositories with Git. This could lead to unexpected results! To prevent that, the server now forbids you from deleting or moving changesets in a repository once you sync it with Git.
The Proxy server now works with Cloud Edition!
All platforms - Proxy server: The Proxy server now works with Cloud Edition!
The proxy server now is able of downloading data from the new cloud2. Good news for teams working behind a slow connection!
We improved the Welcome wizard!
All platforms - Plastic (Cloud Edition): We improved the Welcome wizard!
We simplified our Plastic SCM Cloud Edition Welcome wizard since we saw that our users got confused with the existent options.
Now there are only two paths to start working with Plastic Cloud: centralized or distributed, easier to understand!
Bug
We fixed the checkbox drawings.
Windows - Gluon: We fixed the checkbox drawings.
The application draw the checkbox glyphs misalinged in some DPI resolutions. But now it is fixed!
We fixed a Null Reference Exception when showing…
Issue tracker extensions - Polarion: We fixed a Null Reference Exception when showing tasks.
Sometimes the data returned from a Polarion query contains invalid data. This would cause us to throw a null reference exception when sorting the task list. We made our code more robust to handle this.
Note: one scenario in which the invalid data scenario occurs is when a user has a task assigned to them but later has all of their Project Roles for the project removed.
We fixed a duplicated key error on Plastic after…
All platforms - Command line client: We fixed a duplicated key error on Plastic after fast-import.
After running a fast-import from Git, Plastic could run into an "An item with the same key has already been added" error. This happened when editing on Git (doing a rebase) a changeset alrady exported from Plastic to Git, and thenn importing it again to Plastic.
We fixed another error while importing Git commit…
All platforms - GitSync: We fixed another error while importing Git commits.
The error message was exactly the same as the previous one ("An item with the same key has already been imported"). The scenario where it failed was so complex (it included an evil combination of changes with moves, merges & reused revisions) that you don't want such a long description :)
Revert now supports deleted source changesets.
All platforms - Plastic, Command line client: Revert now supports deleted source changesets.
The revert operation copied the source changeset revisions. The problem is that if the source changeset was deleted, Plastic couldn't load the resulting changeset of the revert anymore.
Now the revert operation creates new revisions, so the source changeset can be deleted without any problem.
We fixed the size of the search bar in the Worksp…
Windows - Plastic: We fixed the size of the search bar in the Workspace Explorer view.
Now the search bar takes into account the display resolution. Under some high resolutions (4K) the text box was cut off and the close button did not appear (although you could close the search using the ESC key).
We fixed an unexpected error while detecting refr…
All platforms - Plastic, Gluon: We fixed an unexpected error while detecting refreshing views in Cloud Editon.
Some customers reported an "unexpected error" when refreshing certain views. We were able to reproduce it in one computer refreshing the Branch Explorer.
It was a concurrency problem in setting a local member in a class. That code is now protected, an the problem gone!
9.0.16.4456
Public | 2020-08-06
New
Our installers are now notarized!
macOS - Installers: Our installers are now notarized!
Nothing else changed, but now you won't get a security warning on macOS Catalina and higher. Nice.
We updated example screenshots in the theme selec…
Windows - Plastic: We updated example screenshots in the theme selector dialog!
Check out the Preferences > Theme dialog to see how the new Plastic themes look now.
Now, a change on an ignored path doesn't force an…
All platforms - Plastic, Gluon: Now, a change on an ignored path doesn't force an auto-refresh.
Now the auto-refresh option doesn't refresh the Pending Changes when the change in the workspace was on an ignored path. You can modify, delete, or add, an ignored item and Plastic will not refresh the pending changes view.
we updated the references to 'admin password' con…
All platforms - WebAdmin: we updated the references to 'admin password' configuration tool!
The old way of setting the web admin password was to run the adminconsolepwd
utility. This tool was deprecated a few releases back, and you should now use plasticd adminpwd
.
We updated some help text in Web Admin to reference the correct tool.
Bug
The 'cm sync' failed if the user who launched the…
All platforms - GitSync: The 'cm sync' failed if the user who launched the operation hadn't been used before.
The 'cm sync' command failed with the following error:
The user ruben appears as an inactive user because his/her license has been deactivated. Please activate it and then try again.
This happened because the current Plastic SCM user was wrongly added as inactive, so the next call to the server was rejected since it detected the user as inactive.
This only happened if the Plastic SCM user hadn't been used before in the destination server of the sync operation.
The diff tool configuration for Excel files now w…
Windows - Plastic, Gluon: The diff tool configuration for Excel files now works.
Diffing an Excel file launches the SpreadsheetCompare tool by default, if it is present on the client machine.
If you configure another tool just for Excel files then Plastic SCM should launch the specified tool instead of SpreadsheetCompare. However, this did not happen if you specified multiple extensions in your tool configuration.
I.e. if you configured a tool for ".xlsx;.xls" it would launch SpreadsheetCompare instead of your tool.
We fixed this, so now it will launch your configured tool whether configured for a single file type (".xlsx" or ".xls") or multiple types (".xlsx;.xls").
We fixed some typos in output messages!
All platforms - Command line client: We fixed some typos in output messages!
A tool with less typos is a better tool, at least for your eyes!
9.0.16.4437
Public | 2020-07-31
New
We are getting ready to login with external servi…
All platforms - All clients (Cloud Edition): We are getting ready to login with external services!
We implemented some small changes to get ready to login to Cloud Edition using external login services.
9.0.16.4433
Public | 2020-07-22
New
We replaced the WebSockets library we used for Si…
All platforms - DevOps (.NET Core Server flavor): We replaced the WebSockets library we used for SignalR.
This translates into a more stable .NET Core server. The .NET Framework version of the server is not affected by these changes.
If you are using the DevOps features (the WebSocket connection) from outside the Plastic SCM Server (a bot or a plug not managed by the server itself), please pay attention to the changes:
Now the port you should connect your WebSocket to is defined in either WebAdminToolPort or WebAdminToolSslPort. It depends on whether you want or not SSL - as you can imagine by the name. But it has further implications:
The WebAdminToolPort does NOT listen through SSL. You can only connect a WebSocket to it using the "
ws://
" schema. It also rejects all connections from outside localhost.The WebAdminToolSslPort ONLY listens through SSL. You can only connect a WebSocket to it using the "
wss://
" schema. It accepts all connections regardless of their origin. You also need to use TLS v1.2 to connect to the WebSocket.
Regarding the WebSocketServerPort
setting:
It is now deprecated. Soon it will no longer work.
For new setups, it now has the same default value as WebAdminToolPort.
It now behaves the same as WebAdminToolPort, including its limitations (no SSL, no connections from outside).
Regarding the WebSocketServerCertificatePath
and WebSocketServerCertificatePassword
settings:
They no longer work.
The certificate to connect to the secure WebSocket (through the WebAdminToolSslPort) is the same the WebAdmin uses. And that certificate is also the same your Plastic SCM uses for secure client connections.
Remember that the WebAdmin does NOT start listening through SSL if you don't have an SSL port defined in your network.conf
configuration file. This is because the WebAdmin uses the same certificate as regular Plastic SCM client to server connections and if there is no certificate… there is no SSL!
So this is what you need to do:
If you don't use custom plugs or mergebots: you don't need to do anything.
If you use custom plugs or mergebots, but you use them through the Plastic SCM server (the server manages their lifecycle), you don't need to do anything. The server passes down the WebSocket URI to the integration, so the change will happen automatically for you.
If you use custom plugs or mergebots BUT you don't use them through the Plastic SCM server's DevOps features, you might need to do one or more things:
If the plug or mergebot run in the same machine the Plastic SCM server does, you could not do anything. However, we advise you to start using the WebAdminToolPort instead of the WebSocketServerPort, because the later setting is deprecated.
If the plug or mergebot runs in a different machine the Plastic SCM server does, you need to change some things. Your integration needs to use the WebAdminToolSslPort, it needs to use the "
wss://
" schema to connect to the WebSocket, and it needs to use TLS v1.2 connections.
If you find any issue, we will be more than glad to help you. Remember you can ping us on Twitter at @plasticscm and one of our minions will jump right in. Or you can write at support
[at] codicesoftware
[dot] com
and we will guide you through whatever problem you might encounter.
Now you can set encryption parameters on the comm…
All platforms - Command line client: Now you can set encryption parameters on the command line!
Use the following arguments to set the parameters required to work against an encrypted server:
--encryptmethod
: This must be AES128, AES192 or AES256. Note: it is recommended that you use AES128, as the other options may require further configuration.--encryptpassword
: Your encryption key - usually stored in the .key files in your config directory.--encryptserver
: The server for which the previous values apply.
When using these arguments, the values will not be stored to disk on the client machine, and it is not necessary to have a cryptedservers.conf file or any .key files on the client machine.
Note: these settings will be saved on the server if they are used to perform a replication.
9.0.16.4430
Public | 2020-07-16
New
We updated the Slack Notifier Plug to adapt to Sl…
DevOps - Slack Notifier: We updated the Slack Notifier Plug to adapt to Slack API channel changes!
Slack made some modifications to their API around channels and supported security protocols. This caused our Slack Plug to stop functioning correctly.
We updated our code, and the Slack Plug is back in action!
Gluon now supports high DPI screens!
Windows - Gluon: Gluon now supports high DPI screens!
Gluon didn't support scaling and looked blurry in high DPI screens. Now it is a DPI aware application, and looks much much better when you configure the screen to be scaled more than 100%.
Bug
We fixed a null reference exception in the 2D rev…
Windows - Plastic: We fixed a null reference exception in the 2D revision tree.
Viewing a file's history as a 2D revision tree is cool. Getting an "unexpected error" when you do so is not cool! It sometimes happened when you tried to launch the view from a changeset diff view.
We took care of a null reference exception, and now all is good.
We fixed issue with port 8086 when connecting to…
All platforms - Server: We fixed issue with port 8086 when connecting to Cloud.
There was a problem in local servers and GUIs when their organizations were migrated from cloud1 to cloud2. Some users saw an error saying that it was impossible to connect to a given address with port 8086. Users had to restart their local server to fix it.
Now the problem is solved.
It happened because the local server cached the old url in cloud1, and kept the old port, instead of replacing it by the new one.
9.0.16.4421
Public | 2020-07-14
New
The tabs and the sidebar now have a new look and…
Windows - Plastic: The tabs and the sidebar now have a new look and feel!
We rewrote the style from scratch! Take a look at how beautiful (and modern) it looks now:
Default theme:
I3 theme:
Montana theme:
Montana-dark theme:
The extension now supports next-gen projects!
Issue tracker extensions - JIRA: The extension now supports next-gen projects!
Next-gen projects do not support the type of custom field we use for the JIRA integration.
To resolve this, we added the option to add the checkin info to the JIRA issue as a comment.
Leave the "Custom field ID" blank in your Plastic Issue Tracker configuration to have checkin info added as a comment.
The window is now resizable from all edges!
Windows - Gluon: The window is now resizable from all edges!
The Gluon window was only resizable from its bottom left corner.
Now you can resize it from all of its edges! Take a look:
We updated "clconfigureserver" references to "pla…
All platforms - Server: We updated "clconfigureserver" references to "plasticd configure".
We deprecated clconfigureserver
. The correct way to configure a server using the command line is by calling "plasticd configure":
> .\plasticd.exe configure
####--- Server configuration wizard ---####
Configuring language. These are the available languages:
1. English
2. Spanish
Choose a language (type a number): 1
(...)
The Plastic SCM server has been correctly configured.
We also updated the error message you get if you try to start an un-configured server to reflect this change:
> .\plasticd.exe
Server config file C:\plasticserver\server.conf not found. Plastic Server is not correctly configured. Execute "plasticd configure" to configure server on text mode, or "configureserver" to launch the gui server configuration wizard.
Bug
The token expiration still hits Cloud Edition use…
All platforms - All products: The token expiration still hits Cloud Edition users.
We just made another fix that caused Cloud Edition users to suffer from token expired when connecting to Cloud directly without a profile (the default).
The server now writes logs to the correct directo…
All platforms - Server: The server now writes logs to the correct directory when it is running as service.
The server would write the logs to your SYSTEM home path under these circumstances: your loader.log.conf has relative paths, and the server runs as a Windows service. Now the paths in the log config are relative to the server's executable location.
We fixed a bug rearranging the tabs.
Windows - Plastic: We fixed a bug rearranging the tabs.
Sometimes a tab rearranged to its previous position when clicking it near its left border. Now it's fixed!
We fixed an issue reverting to revisions in the d…
Windows - Plastic: We fixed an issue reverting to revisions in the diff window.
You can revert files to an early revision on a branch or changeset differences window. You can do so by selecting "Revert to this revision" option in the left panel's context menu.
However, this would silently fail if you saved changes to the file in the right panel of the diff before trying to revert.
We fixed this! Now the revert functionality is consistent whether you have local changes, have unsaved edits in the diff window or have saved edits in the diff window.
We fixed the fast-import stats flag.
All platforms - Command line client: We fixed the fast-import stats flag.
The fast-import command would fail on any non-trivial repository if you set the --stats flag. It is now fixed!
9.0.16.4402
Public | 2020-07-10
New
The WebAdmin/WebUI server will now restart (or st…
All platforms - WebAdmin: The WebAdmin/WebUI server will now restart (or stop) whenever you change any settings that might affect it!
This includes changing the SSL certificate in your network configuration, editing the WebAdmin ports or disabling it altogether.
Network share root (and drive root) can now be a…
Windows - Plastic, Command line client: Network share root (and drive root) can now be a workspace!
Previously, creating a workspace in the root of a network share would appear to work, but "cm status" and the Pending changes view would show the workspace as locally deleted. The same happened if you create a workspace in the drive root.
We fixed that now, so workspaces in the drive and network share roots work as expected.
Bug
We fixed item focus after deleting private items…
Windows, Linux - Gluon: We fixed item focus after deleting private items on Checkin view.
After deleting a non-empty directory in the Checkin view, the wrong item would be highlighted. This is now fixed!
We fixed an issue listing Polarion user's work it…
All platforms - Issue tracker extensions: We fixed an issue listing Polarion user's work items!
There was a problem with the way we handled unexpected results when searching for Polarion tasks assigned to a specific user. If ANY of the assigned tasks contained invalid data we would discard ALL of the results. We fixed this so that it now ignored the invalid results and still shows the valid results.
Note: the invalid data scenario occurs if a user has a task assigned to them (they have the "project_assignable" Project Role for the project containing the task) but later all of this user's Project Roles for the project are removed.
9.0.16.4392
Public | 2020-07-06
New
The WebAdmin/WebUI supports HTTPS now!
All platforms - Server: The WebAdmin/WebUI supports HTTPS now!
The web server will automatically use the first certificate you configured in your network settings. This means that the web interface will use the same certificate you use for your Plastic SCM SSL connections automatically, without any further configuration. If you don't have any SSL ports defined in your server network configuration, only the HTTP endpoint will start.
The WebAdmin/WebUI HTTP endpoint will still listen on port 7178 by default, but from now on it will be bound to localhost only! So you won't be able to access WebAdmin/WebUI from other machines. If that's what you want, you'll either need to setup HTTPS or use a reverse proxy.
The WebAdmin/WebUI HTTPS endpoint will listen on port 7179 by default. You can configure that port using the 'WebAdminToolSslPort' setting in server.conf. This endpoint will listen on any network interface.
If you change the certificate you use for the SSL port at some point, make sure you restart the server to refresh the certificate information in the WebAdmin/WebUI.
We changed the default value of AbortRequestIfSoc…
All platforms - Server: We changed the default value of AbortRequestIfSocketCloses in server.conf.
AbortRequestIfSocketCloses should be true on Windows systems running .NET Framework builds of the server. All other configurations should have the value set to false.
We changed the default value to reflect this.
Bug
We fixed an issue with repeated error messages du…
All platforms - Command line client: We fixed an issue with repeated error messages during the update.
The command line client could print errors and warnings multiple times if the message was longer than the console window width. We fixed it to only output the message once.
9.0.16.4386
Public | 2020-07-03
Bug
We detected that our plugin for IntelliJ IDEA, Ri…
All platforms - JetBrains IDE Plugin: We detected that our plugin for IntelliJ IDEA, Rider, etc. always started in offline mode when you started the IDE. There were also class loading exception traces showing up. We fixed those issues, so now you should have your Plastic SCM view fully functional every time you start the IDE in a properly configured project.
9.0.16.4370
Public | 2020-06-29
New
LDAP connections now support StartTLS!
All platforms - Server: LDAP connections now support StartTLS!
We improved the security of connections to the LDAP database by enabling StartTLS.
There should be no configuration change required. If your LDAP server supports StartTLS, any new connections will automatically be made secure.
Note: you should connect to port 389.
Bug
We noticed that the "set files as read-only" sett…
macOS, Linux - Gluon: We noticed that the "set files as read-only" setting didn't work as it should in partial (i.e. Gluon) workspaces. Let's say you run these steps:
You check the "Update and Checkin operations set files as read-only" option in Gluon preferences
You add a file that has its permissions set to 644
You checkin that file
You verify that the file permissions are now 444 (i.e. read-only)
You run a workspace update
Suddenly, the file permissions are 644!
We fixed that behavior so that running a workspace update from the Gluon GUI or a 'cm partial update .' command from the CLI leave the appropriate filesystem permissions.
9.0.16.4361
Public | 2020-06-25
New
We added extra info about Privacy Statement in th…
All platforms - Plastic: We added extra info about Privacy Statement in the Sign-Up screens.
Soon you will be able to recover deleted reposito…
All platforms - Cloud2: Soon you will be able to recover deleted repositories!
Right now, if you delete a repository by mistake, you need to contact support to bring it back. Soon, you will have up to two weeks (14 natural days!) to resurrect (or "undelete", as we called it on the GUI) a deleted repository. Once these 14 days pass, the repository data and metadata will get removed forever.
We implemented a token renewal system!
All platforms - Server: We implemented a token renewal system!
There's still work to do, but we are getting closer to renewing the full token system.
We actually implemented this because the new tokens in cloud2 expired during long replicas, which was not good.
the "Pending changes" view now does fewer calls t…
All platforms - Plastic: the "Pending changes" view now does fewer calls to the server!
The refresh of the "Pending changes" view now performs half of the original number of calls to the server.
This decrease in calls improves the refresh performance over a slow network. Besides that, it reduces the server load. As a result, the server is able to handle more user requests with the same resources.
We added experimental support for UDT and Secured…
All platforms - Client and Server: We added experimental support for UDT and Secured UDT for Plastic Protocol!
UDT was historically supported only on Windows servers. We changed that a few releases ago, but still it only worked with the about-to-be-deprecated Remoting protocol, which means it was not possible to use it with .NET Core builds. Also, it was not secured.
Now this changes and you can both configure a regular server and a .net core one to support UDT. Our preference is to run it on .net core buids.
== How to configure remoting.conf ==
Required only for .net servers: add a new channel to the xml in remoting.conf
<channel type="Codice.Channels.UdtChannel,plasticpipe" port="1024" name="udt1024">
<serverProviders>
<formatter type = "PlasticPipe.Remoting.PlasticBinaryServerFormatterSinkProvider, plasticpipe" typeFilterLevel="Full" Compression="sinklevel" SerializationObjectsAtSink="true" />
<provider type = "Codice.CM.Server.ExceptionTracerSinkProvider, servercommon" />
</serverProviders>
<clientProviders>
<provider type="PlasticPipe.Remoting.ClientSinkProvider, plasticpipe" />
<formatter ref="binary" />
</clientProviders>
</channel>
== How to configure for .net core servers ==
Modify your network.conf to add this:
[
{
"security": "ssl",
"type": "udt",
"port": 7751,
},
]
Where security can also be "none"
== How to use it from the client ==
# Regular connections:
> cm.exe repo list udt://192.168.221.142:7751
# Secured connections:
cm.exe repo list sudt://192.168.221.142:7751
Remark: this is still pretty much experimental!
We disabled the controls on the Pending Changes v…
Windows - Plastic: We disabled the controls on the Pending Changes view when refreshing its contents!
Clicking on "Checkin", "Undo changes" or the refresh button while the Pending changes view is being refreshed does nothing. We now disable those controls during the refresh, to avoid confusion.
Bug
The "Token expired" showed up again in LDAP serve…
All platforms - Client: The "Token expired" showed up again in LDAP servers and Cloud.
We fixed an issue that we think only happened on sync views between local/on-premises server and Cloud:
You tried to recalculate a sync view
But the token to cloud expired
But you ran a command recently from outside the GUI with another GUI or command line
The initial GUI throws token expired and it takes its time to recover
We hopefully fixed it.
The issue was because the profiles were not reloading tokens, while the underlying conn mechanism reloaded tokens.conf since a different app had changed it. Little bit weird but we saw it a few times.
9.0.16.4345
Public | 2020-06-19
New
We enabled the DevOps feature in our .NET Core fa…
macOS - DevOps: We enabled the DevOps feature in our .NET Core falvor of the server for macOS!
Remember the built-in DevOps feature we bundle in our Plastic SCM Servers out-of-the-box? Well, we lacked of this feature in macOS platform. Wait no more! Now it's available for Mac OS "Server .NET Core installer" & "Server .NET Core bundle".
Spreadsheet Compare is now the default tool for E…
Windows - Plastic, Gluon: Spreadsheet Compare is now the default tool for Excel file diffs!
When you diff Excel files (.xls or .xlsx) in Plastic and Gluon, we now launch Microsoft's Spreadsheet Compare tool by default.
Of course, if you have configured another tool for Excel files, that configuration will be honoured.
Here is a sneak preview:
Launching the tool depends on Plastic being able to find an installed SpreadsheetCompare.exe
. We search in:
C:/Program Files (x86)/Microsoft Office/Office16/DCF
C:/Program Files (x86)/Microsoft Office/{UserName}/Office16/DCF
...and also on the PATH
environment variable.
So, if you have it installed somewhere other than the above, please add it to your PATH
.
Bug
We fixed the "Maximum number of recent comments"…
Windows - Plastic: We fixed the "Maximum number of recent comments" preference.
The "Maximum number of recent comments" preference, which sets how many previous comments are seen in the "Checkin comments" drop down of the Pending changes view, is no longer ignored.
The server now releases the locks of an abandoned…
All platforms - Server (Jet backend): The server now releases the locks of an abandoned replication operation.
Now the server can detect which replication operations were abandoned and release their locks after 2 hours.
We consider a replication operation is abandoned when the Plastic client doesn't cancel or finish it. This generally happens because it is killed (e.g. Ctrl+C on a CLI cm push command). It also happens when the operation fails due to the error "The LDAP token expired".
The server can now handle the db.conf configurati…
All platforms - Server (.NET Core flavor): The server can now handle the db.conf configuration file again.
A code obfuscation oversight rendered the Plastic server unable of reading the db.conf file on startup, giving a null reference error. That's now fixed!
9.0.16.4330
Public | 2020-06-16
New
New option for daily rolling logger
All platforms - Logging: New option for daily rolling logger
We have added option MaxDays
for the daily rolling file appender. It controls that log files of more than "MaxDays
" days old will be deleted.
NOTE: this replaces the option MaxFileCount
.
This improves the control over log file directory sizes for multi-instance servers. For multi-instance, several log files can be created each day. So, limiting the age of log files is more useful than limiting the number of log files.
Here is an example daily rolling file appender configuration:
<appender name="DebugAppender" type="Codice.LogWrapper.DailyRollingFileAppender">
<file type="log4net.Util.PatternString">
<conversionPattern value="c:logsloader.debug.log.txt" />
</file>
<maxDays value="7" />
<preserveLogFileNameExtension value="true" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %thread %property{TransactionID} %property{ClientMachine} %-5level %logger - %message%newline" />
</layout>
</appender>
We keep improving Cloud 2!
All platforms - Server: We keep improving Cloud 2!
We dramatically reduced the memory and time needed to upload and download blobs in our Cloud storage backend, which should result in a leaner server. Less RAM used in mundane tasks is more RAM the server can use to give you a better service!
Bug
We fixed some issues cleaning caches.
All Platforms - Proxy (.NET Core flavor): We fixed some issues cleaning caches.
The .NET Core flavor of the proxy was always detecting 1GB of free space on disk. As a result, the cache was wrongly cleaned to free space. Now the proxy detects the correct free disk space.
Also, the Proxy was not loading the cached content on application startup. As a result, it did not clean some disk content until the cache was rebuilt hours later from the disk content. Now the cache gets loaded when it should!
A minor fix to line highlighting in Code Review d…
Windows - Plastic: A minor fix to line highlighting in Code Review diff.
In the Code Review diff we were not clearing the line highlight when the mouse left the right text box. This was confusing because it would remain floating above the text even after you scrolled the view. We now clear the highlight correctly.
We fixed a bug in Incoming Changes autorefresh.
Windows - Gluon: We fixed a bug in Incoming Changes autorefresh.
If auth failed, or the server was unreachable, the Incoming Changes looped over and over because the autorefresh was trying to recalculate all the time. Fixed!
9.0.16.4321
Public | 2020-06-12
New
We improved autorefresh for Incoming Changes!
Windows - Gluon: We improved autorefresh for Incoming Changes!
Now the Incoming Changes view doesn't refresh the view if it's not needed. The view is only autorefreshed when:
Something has changed on disk in the workspace.
There are new incoming changes in the working branch.
We also improved autorefresh for Incoming Changes…
macOS - Plastic: We also improved autorefresh for Incoming Changes for Plastic in macOS!
The new stuff is basically the same as before. Only refreshing when something changed on disk, or there are new incoming changes in the working branch.
Bug
We fixed the connection failure for hosted Jira s…
All platforms - Jira issue tracker extension: We fixed the connection failure for hosted Jira servers.
A fix we made in 9.0.16.4182 to handle email addresses in the "User name" field for Jira Cloud unfortunately broke hosted Jira servers (for which you specify the username, not the email address). We fixed that, and both types of Jira server will now work.
We fixed the clconfigureclient output for Cloud s…
All platforms - Command line client: We fixed the clconfigureclient output for Cloud servers.
For Cloud servers, there is no need to specify a port when configuring the client. In this case we were accidentally appending ':' to the server name. Now we don't.
We fixed the issue that prevents the differences…
All platforms - Server: We fixed the issue that prevents the differences calculation process to end on really big repositories.
We used an 'int' (i.e. 32-bit) number to walk the merge changes (revisions that were modified during the merge operations). However, there are extremely big repositories (e.g. more than 117 million merge changes) that use numbers so big that they don't fit in an 'int' type. The fix was pretty simple: we ensured that we never use an 'int' to walk data.
We only used this type for data we didn't expect to grow too much. But our expectations were too naïve in this case!
Now we use a 'long' (i.e. 64-bit) number to walk all data types, not just the main ones.
9.0.16.4312
Public | 2020-06-10
New
We improved the performance of deserialization co…
All platforms - Client: We improved the performance of deserialization code.
Metadata deserialization is now about 30% faster than before this task. This makes deserializing big trees, branch explorers, etc, faster than before.
We enabled code optimization flags that will make…
All platforms - Server, all clients: We enabled code optimization flags that will make serialization and deserialization faster.
We enabled optimization on some components that do CPU intensive operations. Optimizations were disabled because they caused issues with localization. We're trying to fix those issues to benefit from better serialization/deserialization speed. These improvements are clearly noticeable when sending big trees, big merges, etc.
We improved udt data transfer speeds for Linux.
Linux - Server: We improved udt data transfer speeds for Linux.
We tweaked some parameters in our .NET Core UDT implementation, and got a 300% performance increase when running on high latency connections. In our tests we downloaded 250 MiB of data from a server in Singapore to a client in Paris.
We also found you can considerably boost UDT download rates by increasing your UDP receive buffer size. You can do so as follows:
$ sysctl -w net.core.rmem_max=26214400
This helps to eliminate packet loss, which can slow down the transfer.
With that setting, we achieved transfer rates of 600 mbps using udt, compared with 70 mbps using tcp over the same connection.
We added support to perform customized runs.
All platforms - Bamboo plugin: We added support to perform customized runs.
This kind of runs let you specify the changeset to build. Before these changes, Bamboo considered those runs as simply building the latest contents.
New expiration token system for LDAP.
All platforms - Server, all clients: New expiration token system for LDAP.
When you enable LdapTokenPrivateKey in your server that is connected to LDAP, a new token expiration system will greatly reduce calls to LDAP.
This will greatly increase performance for command line applications, and overall server response.
The reason why we implemented this is to support external login systems in cloud2, but it will help in LDAP servers too.
We moved the location of loader.log.conf in the .…
All platforms - Server (.NET Core flavor): We moved the location of loader.log.conf in the .NET Core bundle.
You see, the ideal way of upgrading your Plastic SCM Server in custom setups (this is, when you DON'T use the installer) is just replacing the binaries. That's also pretty much what our Watchdog does when upgrading (although with some fancy steps such as preparing a sparse node to prevent downtimes and the like).
The issue is that if you just replace your binaries' directory contents with the content of the .zip or .tar.gz, you will override your loader.log.conf file! No more - we just moved it to the config_samples directory.
Fixed a problem during checkin that prevented enc…
All platforms – GUIs and CLI: Fixed a problem during checkin that prevented encryption.
This only happened to a few customers who started using Cloud 2, not the ones migrated from version 1.
The problem was that if you had an encrypted organization and you were doing push/pull, it worked fine, encrypting data at rest as expected, but if you were doing checkins, data was not encrypted at the client side.
We're contacting all customers affected by this.
Anyway, do NOT panic, because this doesn't mean data is insecure. Many customers decide not to encrypt the data, and data is still safe, it is always transferred through SSL/TSL and so on. The good thing about encryption is that data leaves your machine encrypted and only you have the keys (you and your team) to decrypt, not even us can access it. So even if Google/Amazon/Azure were hacked, nobody could decrypt your data.
editreview triggers output new code review status…
Server - Triggers: editreview triggers output new code review status strings
We have updated the before-editreview and after-editreview triggers output the new code review status strings "Under Review", "Reviewed" and "Rework Required" to the PLASTIC_REVIEW_STATUS variable. Previously the values were "pending", "approved" and "discarded".
The codereview command now uses the new code revi…
All platforms - Command line client: The codereview command now uses the new code review status strings.
When using cm codereview
to set the status of a new or existing code review, use one of the new status strings: Under Review
, Reviewed
or Rework Required
, not the old ones.
We updated trunkbot to use new Code Review status…
All platforms - Mergebots: We updated trunkbot to use new Code Review statuses.
As part of work to update Code Review status strings we updated trunkbot to use the new strings when determining a code review's status.
LDAP token expiration time configurable
Server: LDAP token expiration time configurable
Now you can configure the LDAP token expiration time using:
<LdapTokenExpirationTimeSpan>05:00:00</LdapTokenExpirationTimeSpan>
You can set any expiration time using the format [d.]hh:mm:ss.
By default the expiration time is 1 hour.
Added scrollbars to the comment dialog after merg…
Windows - Plastic: Added scrollbars to the comment dialog after merging to a different branch.
The dialog that asks you for a comment when committing the result of a merge-to operation didn't include scroll bars. This could be annoying if you typed in a multi-line comment. We added a vertical scroll bar to help you with that.
We added some missing parameters in the issue tra…
All platforms - Issue tracker extensions: We added some missing parameters in the issue tracking configuration example files.
Improvements in LZ4 compression when used with SS…
All platforms - Server, clients: Improvements in LZ4 compression when used with SSL.
LZ4 compression for metadata is still experimental, and we just fixed an issue in combination with SSL that made it use more bytes than without LZ4.
We fixed it.
Bug
We fixed a race condition in the Code Review Wind…
Windows - Plastic: We fixed a race condition in the Code Review Window.
If you open a branch code review that contains a really large number of changes and/or changesets and quickly selected "Review branch", you could see sometimes that the branch diffs vanished and were replaced by the first changeset diffs. It's now solved!
We fixed credentials being asked twice on first i…
All platforms - Gluon, Plastic: We fixed credentials being asked twice on first installation of Cloud Edition.
There was a bug introduced in the previous releases that forced to enter creds twice during Cloud Edition installation. Now it is fixed.
This is part of the transition to cloud2, and we had a loose end here :) Sorry.
We fixed the occasional "File not found" error in…
Windows - Plastic: We fixed the occasional "File not found" error in the diff view.
We fixed an issue in diff window that occasionally caused a "File not found" error to appear when Plastic regained focus. The error could happen if you switched to another application while you had unsaved changes in the diff window.
The log files were not generated in the expected…
All platforms - DevOps: The log files were not generated in the expected directory.
The built-in mergebots were not writing the logs in the expected directory ($server/devops/logs
). This happened when the path where the server is contains spaces.
Fixed an obfuscation issue in the PlasticMethods…
All platforms - Server (.NET Core flavor): Fixed an obfuscation issue in the PlasticMethods enum.
This obfuscation issue made the ChannelCall log useless in the .NET Core flavor of our server, as it was impossible to identify the methods without the obfuscation mappings.
We fixed the mergerules!
All platforms - .NET Core server: We fixed the mergerules!
We noticed that the WebAdmin didn't properly write the merge rules to file when you saved them in your browser. It's fixed now!
fixed trigger script hangs
All platforms - Server: fixed trigger script hangs
If your trigger script produced so much output that it would fill the StandardOutput buffer, the script process would hang.
We fixed that.
Btw, the output buffer is only 4096 bytes.
The calculation of the Git mappings leaked thread…
macOS, Linux - GitServer (.NET Core flavor): The calculation of the Git mappings leaked threads from the process ThreadPool.
This could lead to strange and temporary behaviors such as requests that took several seconds to start being processed after the connection was established. This happened because the server ThreadPool was exhausted and it hadn't available threads to read the request.
During this wait, the network connection could be aborted by the server making things worse (since this connections were detected as idle).
This behavior was only a problem in Linux & macOS because they don't have dedicated IO threads as Windows has.
Token expired error.
All platforms - Client: Token expired error.
We introduced a new system for LDAP token expiration and Cloud token expiration. But there was a bug that happened only when you used a profile to connect to the LDAP server or the cloud, so you had to restart your GUI every hour.
By default, every user connects to cloud using the cloud server as their default server (it means, the default server in client.conf). When that was the case, no error happened.
But, if you had a profile to connect to cloud, because your default server is a different one, then when the token expired after 1 hour, the profile code wasn't really doing login again, but just returning the token already cached, and this caused the problem. The renew never happened.
9.0.16.4292
Public | 2020-06-04
New
Improvements in LZ4 compression when used with SS…
All platforms - Server, clients: Improvements in LZ4 compression when used with SSL.
LZ4 compression for metadata is still experimental, and we just fixed an issue in combination with SSL that made it use more bytes than without LZ4.
We added HTTPS support to the WebAdmin/WebUI!
All platforms - Server: We added HTTPS support to the WebAdmin/WebUI!
The web server will automatically use the first certificate you configured in your network settings. This means that the web interface will use the same certificate you use for your Plastic SCM SSL connections automatically, without any further configuration. Just keep in mind that you'll need to access the server using https:// instead of http:// now!
If you change the certificate you use for the SSL port at some point, make sure you restart the server to refresh the certificate information in the WebAdmin/WebUI.
We added some missing parameters in the issue tra…
All platforms - Issue tracker extensions: We added some missing parameters in the issue tracking configuration example files.
We added support to perform customized runs.
All platforms - Bamboo plugin: We added support to perform customized runs.
This kind of runs let you specify the changeset to build. Before these changes, Bamboo considered those runs as simply building the latest contents.
New expiration token system for LDAP.
All platforms - Server, Client: New expiration token system for LDAP.
When you enable LdapTokenPrivateKey
in your server that is connected to LDAP, a new token expiration system will greatly reduce calls to LDAP.
This will greatly increase performance for command line applications, and overall server response.
The reason why we implemented this is to support external login systems in cloud2, but it will help in LDAP servers too.
We moved the location of loader.log.conf in the .…
All platforms - Server (.NET Core flavor): We moved the location of loader.log.conf in the .NET Core bundle.
You see, the ideal way of upgrading your Plastic SCM Server in custom setups (this is, when you DON'T use the installer) is just replacing the binaries. That's also pretty much what our Watchdog does when upgrading (although with some fancy steps such as preparing a sparse node to prevent downtimes and the like).
The issue is that if you just replace your binaries' directory contents with the content of the .zip or .tar.gz, you will override your loader.log.conf file! No more - we just moved it to the config_samples directory.
Add scrollbars to the comment dialog you get afte…
Windows - Plastic: Add scrollbars to the comment dialog you get after merging a branch or changeset to a different branch (merge-to operation).
The lack of scrollbars could be annoying if you typed a multi-line comment. We added a vertical scroll bar to help you with that.
We enabled code optimization flags that will make…
All platforms - Server, clients: We enabled code optimization flags that will make serialization and deserialization faster.
We enabled optimization on some components that do CPU intensive operations. Optimizations were disabled because they caused issues with localization. We're trying to fix those issues to benefit from better serialization/deserialization speed. Clearly noticeable when sending big trees, big merges, etc.
improved UDT data transfer speeds for Linux.
Linux - Server: improved UDT data transfer speeds for Linux.
We tweaked some parameters in our .Net Core Udt implementation, and got a 300% performance increase when running on high latency connections. In our tests we downloaded 250 mb of data from a server in Singapore to a client in Paris.
We also found you can considerably boost udt download rates by increasing your udp receive buffer size, using the following command:
$ sysctl -w net.core.rmem_max=26214400
This helps to eliminate packet loss, which can slow down the transfer.
With that setting, we achieved transfer rates of 600 mbps using udt, compared with 70 mbps using tcp over the same connection.
Bug
We fixed a race condition in the Code Review Wind…
Windows - Plastic: We fixed a race condition in the Code Review Window.
If you open a branch code review that contains a really large number of changes and/or changesets and quickly selected "Review branch", you could see sometimes that the branch diffs vanished and were replaced by the first changeset diffs. It's now solved!
Credentials asked twice on first installation of…
All platforms - Gluon, Plastic: Credentials asked twice on first installation of Cloud Edition.
There was a bug introduced in the previous releases that forced to enter creds twice during Cloud Edition installation. Now it is fixed.
This is part of the transition to cloud2, and we had a loose end here :) Sorry.
fixed occasional "File not found" error in the di…
Windows - Plastic: fixed occasional "File not found" error in the diff view
Following a contrived sequence of steps including editing a file in the Pending changes diff window, saving the edit but then making another edit, cancelling the dialog asking if you want to Save changes, switching to another application and back to Plastic with the edit still not saved, with "auto refresh" enabled on the Pending changes view, resulted in a mysterious "File not found" error dialog because a temp file got deleted when it was still required. Now it does not.
The log files were not generated in the expected…
All platforms - Devops: The log files were not generated in the expected folder.
The server wasn't writting the log files of built-in mergebots and plugs to the "$server/devops/logs" folder. This could happen when the server is installed in a path that contains whitespaces. Fixed.
Fixed an obfuscation issue in the PlasticMethods…
All platforms - Server (.NET Core flavor): Fixed an obfuscation issue in the PlasticMethods enum.
This obfuscation issue made the ChannelCall log useless in the .NET Core flavor of our server, as it was impossible to identify the methods without the obfuscation mappings.
We fixed an obfuscation issue that affected merge…
All platforms - Server (.NET Core flavor): We fixed an obfuscation issue that affected merge rules.
The WebAdmin didn't properly write the merge rules to file when you saved them in your browser. It's fixed now!
fixed trigger script hangs.
All platforms - Server: fixed trigger script hangs.
If your trigger script produced so much output that it would fill the StandardOutput buffer, the script process would hang.
We fixed that.
Btw, the output buffer is only 4096 bytes.
9.0.16.4266
Public | 2020-05-26
Bug
the mergerules don't work in this version.
All platforms - Server (.NET Core flavor): the mergerules don't work in this version.
If you use the .NET Core flavor of the Plastic SCM server, please be aware that currently the mergerules do NOT work. It will get fixed ASAP, so if you depend on them, please abstain from upgrading your .NET Core server.
The regular server is not affected by this issue. Sorry for the inconvenience!
The "before-mkbranch" trigger correctly handles b…
All platforms - Server: The "before-mkbranch" trigger correctly handles branch filters.
We corrected a branch filter matching issue for the "before-mkbranch" trigger. It was an issue for child branches.
For example, if you created this trigger
c:/mcga/trigger>cm trigger create before-mkbranch Mytrigger c:/triggers/beforemkbranch.bat --filter='rep:trigger,/main/*'
Trigger created on position 1.
Then, creating branch "/main/task" would not trigger the associated script. But now it does!
"after-mkbranch" did not have the same issue.
We fixed a typo in the credentials dialog.
Windows - Plastic: We fixed a typo in the credentials dialog.
We were asking for "pasword" instead of "password" in the Cloud credentials dialog!
We fixed an issue when linking issue tracker item…
All platforms - Plastic: We fixed an issue when linking issue tracker items using the checkin comment.
If you have an issue tracking system setup, it is possible to link a checkin to task by setting the task id into the checkin comment, prefixed with a #. For example "#TASK-7: my comment".
This feature was temporarily broken, but we fixed it.
9.0.16.4255
Public | 2020-05-21
New
New htop command for plasticd shell.
All platforms - Server: New htop command for plasticd shell.
Just run plasticd shell in your server, then htop and a beautiful console based UI as follows will show up:
It is also possible to analyze specific requests and filter:
"checkout" command can recurse into piped directo…
All platforms - Command line client: "checkout" command can recurse into piped directory arguments.
Previously "checkout" would ignore the recursive flag when arguments were piped in from standard input, but now we do the recursion.
Example:
Directory of c:/mcga/pipe
11/05/2020 19:48 <DIR> .
11/05/2020 19:48 <DIR> ..
11/05/2020 17:57 <DIR> dir
11/05/2020 19:46 <DIR> dir2
11/05/2020 19:47 12 dirlist
1 File(s) 12 bytes
4 Dir(s) 23,714,631,680 bytes free
c:/mcga/pipe>type dirlist
dir
dir2
c:/mcga/pipe>type dirlist | cm partial co -r -
The selected items are about to be checked out. Please wait ...
Item c:/mcga/pipe/dir was correctly checked out
Item c:/mcga/pipe/dir/file was correctly checked out
Item c:/mcga/pipe/dir2 was correctly checked out
Item c:/mcga/pipe/dir2/file2 was correctly checked out
Now multiple servers can run in the same port.
Linux - Server: Now multiple servers can run in the same port.
network.conf learns to do ReuseAddress. This is only valid for multi-instance setups on Linux at this point, something we're using for our cloud2 efforts.
override for LDAP user filter.
All platforms - Server: override for LDAP user filter.
To support LDAP setups that are not compatible with our default LDAP user search filters, we have added a limited ability to override the filter with a user specified filter.
Warning: this should be considered an expert level feature, and only used if you really know what you are doing, and ideally after consultation with our Support team.
The filter override is specified in the server.conf file by adding the following xml fragment inside the ServerConfigData element:
<LdapSettings>
<MemberNameFilterOverride>_user_filter_</MemberNameFilterOverride>
</LdapSettings>
For example, LDAP setups without the "uid" attribute can use the following filter:
(|(sAMAccountName={user})(cn={user}))
Now Cloud 2 supports webtriggers!
Cloud 2: Now Cloud 2 supports webtriggers!
Cloud 2 is the new Cloud that you'll be using soon (did the "2" in the name gave it away?)
Some of you are already using it, and it now supports webtriggers.
As an example:
> cm trigger create before-mkrep SampleWebTrigger "webtrigger http://www.mocky.io/v2/5ec257c42f00002a00c351ab"
..creates a web trigger. If the webtrigger fails, the operation won't finish. In this case, the repository won't be created.
If you write an error message in the response, the error message will pass down to the user.
You can learn more about webtriggers in the documentation.
Refactored the way to parse servers.
All platforms - Server, Command line client, GUI: Refactored the way to parse servers.
Each "server:port" is parsed by a class called PlasticServer. We refactored and cleaned up the code and removed a bunch of singletons.
Bug
Fixed an error undoing changes in a merge result.
All platforms - Command line client, Plastic: Fixed an error undoing changes in a merge result.
Performing the Undo Changes operation on some merge result changes sometimes failed, displaying an error message like: "Unable to move file '/wk/art/global/water.tif' back to '/wk/art/level1/water.tif': Could not find a part of the path."
.
This happened only if some of your workspace items were cloaked, the merge moved a file from under a cloaked directory, and said merge also deleted the cloaked directory. Now it's fixed!
Fixed an issue in checkin that could cause data l…
All platforms - Gluon: Fixed an issue in checkin that could cause data loss.
We were chasing an elusive bug in Gluon that happened very, very rarely during checkin. It happened both in on-premises servers and Cloud.
On-premises: The following error could happen "The checkin operation could not be completed because an internal error occurred transferring the data. Please retry the checkin operation" and the checkin would be aborted.
Cloud: No error message but the recently checked in file would disappear. It only happened during concurrent checkins (many checking in to the same branch to cloud and only during certain moments of the checkin).
Both issues now fixed!
fixed clconfigureclient --clientconf option when…
All platforms - clconfigureclient: fixed clconfigureclient --clientconf option when the default client.conf is missing.
clconfigureclient
would fail when you used the --clientconf
option to create a new config file if the default client.conf file was missing.
It now handles this case.
9.0.16.4228
Public | 2020-05-13
New
secure LDAP connections now supported on port 636.
All platforms - Server: secure LDAP connections now supported on port 636.
We added support to the Plastic server for SSL connections to your LDAP server. Configure your server (using the "plasticd configure" command, or the web based administration tool) to switch the LDAP port from 389 to 636 to take advantage of a secure connection to LDAP, assuming your LDAP server is configured to support this.
partial update and partial switch errors now outp…
All platforms - Command line client: partial update and partial switch errors now output to standard error.
We used to write the errors for these commands to standard output but, after several C-level internal meetings and public consultations, decided to write the errors to standard error, like we do for other commands.
optionally specify (alternative) configuration fi…
All platforms - clconfigureclient: optionally specify (alternative) configuration file path.
We have added an optional argument to "clconfigureclient" which lets you specify an alternative configuration file location.
The argument can be a full path, a filename or a directory.
Examples:
# Specified path will be used for client configuration
--clientconf=c:/path/to/myclient.conf
# File myclient.conf inside default config directory will be used
--clientconf=myclient.conf
# Default filename, client.conf, in specified directory will be used
--clientconf=c:/exisitingDirectory
9.0.16.4224
Public | 2020-05-12
New
new adminpwd subcommand added to plasticd!
All platforms - Server: new adminpwd subcommand added to plasticd!
To set the Plastic server administrator password you can now run the following command:
> plasticd adminpwd --pwd=<new_password>
This replaces the previous method:
> adminconsolepwd --pwd=<new_password>
Implemented Cloud organization region server reso…
All platforms – All clients and servers: Implemented Cloud organization region server resolution.
We're getting ready for the new cloud2, a greatly improved version of Plastic Cloud!
The new version will feature an entire constellation of servers around the world, not just storage places like in the current cloud.
This means when you try to connect your_org@cloud it won't automatically resolve to server cloud.plasticscm.com but it will retrieve the right server for your region.
We implemented that resolution to get ready for the new Cloud.
Now the Jet backend allows configuring the max am…
All platforms - Server: Now the Jet backend allows configuring the max amount of memory used by caches.
When the process reaches the memory limit, it starts to clean the caches of the least recently used repositories. The server will clean the configured percentage of the total number of caches.
By default, there is no memory size limit. You need to configure it to enable this functionality. In that case, the default percentage to free will be 25% (not used unless a size limit is set). You can configure both values can be in jet.conf, using the following settings:
maxcachessizeingb=2
maxcachessizefreepercent=30
Bear in mind that the memory will not be released until the GC runs the next full collection.
Bug
Fixed an obfuscation issue that affected the log.
All platforms - Server (.NET Core flavor): Fixed an obfuscation issue that affected the log.
Our custom appender was obfuscated in the .NET Core flavor of the server. This prevented log4net from being able to find it. Now that's fixed!
Fixed a broken checkin to encrypted repos if a fr…
All platforms - Plastic, Gluon, Command line: Fixed a broken checkin to encrypted repos if a fragment was bigger than 4MB.
It only happened on encrypted repos (typically Plastic Cloud) and only when a big file compressed in chunks of 4MB had one of the compressed fragments growing beyond 4MB due to the encryption. We never seen that before and it happened to us internally doing a simple checkin of an Excel.
We fixed the issue and should work fine now.
9.0.16.4205
Public | 2020-05-06
New
We reduced the memory used in caches by up to 50%…
All platforms - .NET Core Server: We reduced the memory used in caches by up to 50% for big repositories.
In servers like ours -with several repositories hoarding more than 1 million revisions each- you can save more than 1GB of memory.
Now you can limit the number of repositories that…
All platforms - Server: Now you can limit the number of repositories that have the Jet caches enabled.
By default, when using the Jet backend, the server keeps caches for 500 repositories. The server selects 10% of the least recently used repositories and cleans their caches when it reaches the 500 repos limit.
MNow you can change both values in the jet.conf
configuration file using the following settings:
maxcachedrepos=500
maxcachedreposfreepercent=10
The 'CodeBeamer' extension now is 'codeBeamer', w…
All platforms - Issue tracker extensions (codeBeamer): The 'CodeBeamer' extension now is 'codeBeamer', which is the correct name.
We now include a default config file for codeBeam…
All platforms - Issue tracker extensions (codeBeamer): We now include a default config file for codeBeamer.
This default codebeamer.conf
file will help you to configure the codeBeamer extension.
You will find it alongside your client binaries, under extensions/config_samples/
.
By default, client binaries are in:
Windows: %PROGRAMFILES%\PlasticSCM5\client
macOS: /Applications/PlasticSCM.app/Contents/MonoBundle/
Linux: /opt/plasticscm5/client
Now the UDT protocol is available for everyone, r…
All Platforms - UDT protocol: Now the UDT protocol is available for everyone, regardless of your OS!
Users behind high latency networks will find this especially useful. Keep reading!
We have had the option to go with UDT for our Windows users for a long time.
Now, all users will be able to use it as we replaced the existing UDT implementation with our own fully .NET compatible version.
There is a caveat: right now UDT is only available when using 'remoting' as the network protocol. This means that the new .NET Core based server, which only uses PlasticProtocol, can't take advantage of this yet.
UDT also doesn't allow secure connections (SSL), but we have plans to add it for PlasticProtocol too, making it much more usable.
By the way, we decided to share our work with the Open Source community. UdtSharp, as we named it, is available under the MIT licence.
Now, the plugin considers local project packages…
Unity plugin: Now, the plugin considers local project packages for versioning.
This means their folders and contents will appear in the 'Pending changes' view of 'Version Control' window in Unity when they contain any change.
This feature is available for Unity 2019.3 or later.
Bug
We fixed a small issue that could wrongly show he…
All platforms - Plastic, Gluon: We fixed a small issue that could wrongly show help panels in the first hours of the day.
Dates of help panels "last seen" info are stored locally to avoid bugging you if you already saw the help. Dates are stored in UTC, but the code was not using UTC, which means during the first hours of the day they could be wrongly displayed.
Here's some trivia for your: we found this issue because of an automated test always failing just after midnight!
We improved UDT speed on Linux.
Server - Linux: We improved UDT speed on Linux.
We found and corrected an issue in our home grown implementation of UDT which made it run really, really slow on Linux.
9.0.16.4182
Public | 2020-04-28
New
Backup prototype.
All platforms - Server: Backup prototype.
We're working on a new version of Plastic Cloud, code named cloud2, and we've created a way to backup repositories to cloud, that will be soon available in any on-premises server too, as long as you configure a certain cloud bucket to contain the backup. It supports Amazon, Azure, and soon Google Cloud Storage.
It will work this way. I hope you find it interesting!
We implemented a smart scheduling algorithm for b…
All platforms - Server: We implemented a smart scheduling algorithm for backups.
Now that on-premise servers will be able to do cloud-based backups, it would be nice that backups executed automatically, wouldn't it? The issue is that you can't back up a file somebody is writing to at the same time. So backups block repository write operations.
But what happens if you are using your repository, and the Plastic SCM server blocks write access to it? I'll bet you would be sad. Even angry!
We implemented an somehow intelligent system to decide the best time to execute a backup. It is based on the write activity for the last seven days. If you and your team are regular human beings, the backups will probably be scheduled at night time, but if you are night owls, backups will be scheduled to execute at day time. Good enough to get out of your way!
connection strings and keys now obfuscated in log…
All platforms - Server: connection strings and keys now obfuscated in logs.
We now obfuscate your Amazon S3 connection keys and Azure connection strings before we write the database configuration settings to the log file. This means you can safely share your logs with our Support Team without divulging this private data!
no need to set port when configuring cloud server…
All platforms - clconfigureclient: no need to set port when configuring cloud servers.
When validating the command line arguments for clconfigureclient, we would return failure if the port was not specified, even for cloud servers. The port is not required for cloud servers, so now we don't require the port argument in this case.
for LDAP users, Plastic now functions correctly w…
All platforms - Server: for LDAP users, Plastic now functions correctly when the LogonWorkstations parameter has been set on the AD server.
Now, the local project packages are considered fo…
Unity plugin: Now, the local project packages are considered for versioning. This feature is available for Unity 2019.3 or later.
This means their folders and contents will appear in the 'Pending changes' view of 'Version Control' window in Unity when they contain any change.
Bug
JIRA extension didn't list issues.
All platforms - Plastic: JIRA extension didn't list issues.
JIRA platform was unable to list issues when creating a new Plastic branch. Now it's fixed.
9.0.16.4164
Public | 2020-04-20
New
We improved how the 'getworkspacefrompath' comman…
All platforms - CLI: We improved how the 'getworkspacefrompath' command works!
Now, the getworkspacefrompath
automation command returns a failure result if the specified path is not in a workspace. It used to always return success, which made catching problems when scripting more difficult than it should have been. Sorry about that!
We changed the default filename format of the dai…
All platforms - Logging: We changed the default filename format of the daily rolling file appender.
It was "yyyy-MM-dd-{filename}" but now it's "{filename}.yyyyMMdd". This way we think it is easier to navigate these files using a shell with autocompletion.
We also added the option to preserve the file extension. You'll probably want to use this on Windows so that, for example, if your base filename is "logfile.txt", the generated log files will be like "logfile.yyyyMMdd.txt" instead of "logfile.txt.yyyyMMdd".
To configure this log appender, add something like the following to your "log.conf" file.
<appender name="DebugAppender" type="Codice.LogWrapper.DailyRollingFileAppender">
<file value="cm.debug.log.txt" />
<maxFileCount value="3" />
<preserveLogFileNameExtension value="true" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %thread %property{TransactionID} %property{ClientMachine} %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="DebugAppender" />
</root>
This will generate files like: cm.debug.log.20200227.txt
, cm.debug.log.20200228.txt
and so on.
The maxFileCount
property is the maximum number of files to keep on disk. The system removes the oldest files once the number of log files exceeds maxFileCount
.
The preserveLogFileNameExtension
property should be true if you want to preserve the extension, as discussed before.
Bug
We fixed two errors in the 'undo' operation.
All platforms - Command line client, Plastic: We fixed two errors in the 'undo' operation.
The first one is that undoing changes could fail with a null error. This happened very rarely and only when the pending changes contained a duplicated change.
The second one is that undoing changes could also fail with the error message "An error occurred processing the request. No more information is available...". This happened when a merge operation deleted a cloaked directory.
Both are now fixed!
We fixed an error in the move operation.
All platforms - Command line client, Plastic: We fixed an error in the move operation.
Moving items around in a controlled manner could fail with the error "Can't add an entry with the same name. Duplicated child...". This happened when you moved a Copied or Added item to a directory that contained another workspace change with the same name. Now it's fixed!
We fixed a bug after upgrading servers using a ZI…
Linux - Watchdog: We fixed a bug after upgrading servers using a ZIP.
The watchdog removed write permissions to the plasticd binary after an upgrade. This caused consequent upgrades to fail, as the watchdog could not override the plasticd file. Fixed!
For now we don't distribute the Plastic SCM Watchdog, but if you think you could benefit from it, don't hesitate to contact us at support at codicesoftware dot com
.
9.0.16.4146
Public | 2020-04-07
Bug
We fixed an unexpected error in the Code Review w…
Windows - Plastic: We fixed an unexpected error in the Code Review window.
When you resolve a change request, the Code Review window displays a clickable link in the change requests list panel. It allows the reviewer (or anyone, actually) to navigate to the changeset in which the change request was applied.
However, these links should only work for code reviews of branches. If you created a code review for a single changeset, you got the aforementioned error when you clicked the change request resolution link.
We changed the UI so those links don't appear if the displayed code review was created for a changeset.
The Code Review failed to show diffs when selecti…
Windows - Plastic: The Code Review failed to show diffs when selecting a comment.
Sometimes, when navigating to a change, question or comment, due to concurrency issues, the diff viewer did not display the diff content. Now it's fixed.
9.0.16.4140
Public | 2020-04-03
Bug
The fast-import command will now use the correct…
All platforms - Command line client: The fast-import command will now use the correct server.
Before, the command always used the server configured in the client instead of the server specified in the command.
This was because it ignored the server specified in the repository spec that the command received . So, when running the command...
> cm fast-import fastimporttest@test@cloud fast-export.dat
...it tried to do the import in the server configured in the client (i.e: localhost:8087
) instead of doing the import in the test@cloud
organization.
Now that's fixed!
We fixed an issue when redimensioning the "Mergel…
macOS - Plastic: We fixed an issue when redimensioning the "Mergelink description" panel in the Pending Changes view after a merge.
Do you remember the "Check/clear all" button in the Pending Changes view? It didn't have a fixed height. This caused an issue redimensioning the "Mergelink description" panel - the Pending Changes' file tree went down with the splitter, and you couldn't see the list of files.
Under some circumstances (hundreds of files pending to checkin) this issue could also even lead to the application crashing. But that's now fixed!
9.0.16.4127
Public | 2020-03-30
New
Improved the way 'cm partial update' works for it…
All platforms - Gluon: Improved the way 'cm partial update' works for items under a Xlink.
If all the specified paths in the 'cm partial update' are inside the same Xlink and you use the --changeset
flag, then Plastic searches the changes to update in the specified changeset of the xlinked repository instead of using the top-level one.
This is how it worked before for files. But now it also supports directories!
9.0.16.4121
Public | 2020-03-26
New
New .NET Core-based Proxy.
Linux - Proxy: New .NET Core-based Proxy.
Good news! We bundled a new Linux package to distribute our Proxy server, this time using the .NET Core runtime. You can install it by targeting the package plasticscm-proxy-server-netcore
. It's incompatible with the .NET Framework version plasticscm-proxy-server
but you can install it alongside a Plastic SCM server. Enjoy!
Detailed the reason why a file cannot be commente…
Windows, macOS - Plastic: Detailed the reason why a file cannot be commented in the Code Review.
The Code Review system does not support adding comments in some scenarios:
When the selected file belongs to a different repository.
When it's an xlink.
When it's an unsupported file type (image diff, directory diff, ...).
In all scenarios we were always displaying the same informative message: "Review comments are not yet supported for this file type", which was confusing. Now we display a suitable message for each scenario.
Bug
We fixed credential input for commands with anima…
All platforms - Command line client: We fixed credential input for commands with animated progress.
Previously, sometimes the cursor would stick to the start of the line when entering credentials for those commands. It affected the following commands: switch, update, setselector, checkin and replication (push & pull).
Fixed a bug with when merging.
All platforms - Plastic, Command line client: Fixed a bug with when merging.
The merge operation sometimes failed with the error message "The merge operation was failing '{path}'". This happened when the merge workspace contained a cloaked, out-of-date empty file. It's fixed now!
9.0.16.4111
Public | 2020-03-24
New
new PKG installer for our .NET Core server.
macOS - Server: new PKG installer for our .NET Core server.
A new pkg installer is now available! It contains our brand new Plastic SCM .NET Core server for macOS.
We strongly recommend to upgrade to this new product if you are running servers on macOS. We will deprecate the old server soon.
Bear in mind, the current installer just supports Team and Enterprise editions. It doesn't support Cloud Edition yet - which is bundled with the client anyway.
Upgrading to this new version preserves the already existing server configuration and license files.
New "webadmin" subcommand for plasticd.
All platforms - Server: New "webadmin" subcommand for plasticd.
We added a new subcommand: plasticd webadmin
. It opens the webadmin homepage in your browser! For it to work your server needs to be already running - as it servers the webpage!
Bug
We fixed a visual bug in the Pending Changes list.
Windows - Plastic, Gluon: We fixed a visual bug in the Pending Changes list.
You could encounter the bug by deleting some files from disk, and then, checking-in the deletions from the Pending Changes view. When the checkin operation finished... the deleted items were still present in the changes list!
It was just a visual issue - the checkin worked fine and the deletions were already checked in. However, seeing the files still there could cause dismay. Worry not! The issue is now fixed.
9.0.16.4107
Public | 2020-03-22
Bug
We fixed possible duplicated entries in recentser…
Windows - Plastic: We fixed possible duplicated entries in recentservers.conf config file.
If you sometimes used uppercase chars and sometimes used lowercase chars on your Plastic server in the repositories view, you could end up having duplicate entries in the recentservers.conf file. Now it's fixed!
some of our application icons didn't look OK in s…
Linux - Plastic, Gluon, Server: some of our application icons didn't look OK in some GNU/Linux distros. We fixed them!
9.0.16.4101
Public | 2020-03-19
New
We improved the look & feel of the 'Check all' ch…
Windows - Gluon: We improved the look & feel of the 'Check all' checkbox.
Some time ago we added a 'Check all/clear all' checkbox in the checkin view. We added a border around the checkbox to improve the group feeling.
Bug
We improved the checkin progress.
Windows - Plastic: We improved the checkin progress.
When performing a checkin in a fast network, or uploading a bunch of small (or empty) files to a fast server, the checkin progress sometimes displayed the message "0 blocks in parallel was displayed". Now it's fixed.
9.0.16.4097
Public | 2020-03-19
Bug
We fixed some errors in the Incoming Changes view…
Windows - Plastic: We fixed some errors in the Incoming Changes view, that could happen after experiencing an error.
These errors were:
A dialog with the message "
an error occurred processing your request
" appeared when refreshing some views.When closing the GUI, it failed to save the
guivisualstate.xml
configuration file.
We fixed an error calculating the status.
Windows - Gluon: We fixed an error calculating the status.
Under some circumstances, Gluon was unable to correctly display the status if working with corrupt workspace metadata. But now Gluon is stronger and it is able to handle this situation!
The Workspace Explorer could sometimes freeze aft…
Windows - Plastic: The Workspace Explorer could sometimes freeze after a search.
You could reproduce this freeze as follows: type a search term in the Workspace Explorer, and quicly press the 'Enter' key to go to the first result. But now it's fixed!
We made the new daily rolling log file appender w…
Window - Plastic: We made the new daily rolling log file appender work in Plastic (adding to cm and the server).
Reminder: the daily rolling file appender writes one day's logs per file, and lets you set a maximum number of files to keep on disk. Configure it by adding something like this to your plastic.log.conf:
<appender name="DebugAppender" type="Codice.LogWrapper.DailyRollingFileAppender">
<file value="plastic.debug.log.txt" />
<maxFileCount value="3" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %thread %property{TransactionID} %property{ClientMachine} %-5level %logger - %message%newline" />
</layout>
</appender>
9.0.16.4087
Public | 2020-03-17
Bug
We fixed an issue when selecting text in the Code…
Windows - Plastic: We fixed an issue when selecting text in the Code Review window.
You could reproduce the issue by moving your cursor out of the bounds of the textbox when selecting text from the diff's right revision. But now it's fixed!
The JIRA extension didn't filter assigned tasks c…
Windows - Plastic: The JIRA extension didn't filter assigned tasks correctly.
Using the JIRA extension, the "Create branch" dialog allows you to create a branch from a given JIRA task. There is a checkbox in that dialog called "Display pending tasks from all users". It's unchecked by default, so you should only see tasks assigned to you. Unfortunately, a bug caused the dialog to display tasks from all users instead. Now it's fixed!
9.0.16.4083
Public | 2020-03-16
Bug
We fixed a "Cannot access a disposed object" erro…
Windows - Gluon: We fixed a "Cannot access a disposed object" error.
Sometimes you could encounter this error after switching the workspace, when the help panel appears. But now it's fixed!
9.0.16.4078
Public | 2020-03-13
New
We implemented checkins with symlinks.
macOS, Linux - Gluon: We implemented checkins with symlinks.
The cm partial ci
command allows the [/code]--symlink[/code] option like the cm ci
does.
With this --symlink
option, Plastic SCM checkins the symlink instead of the target. Please note this only works in UNIX-like OSs such as GNU/Linux based distros and macOS.
> cm partial checkin link --symlink
We protected the connection collector thread.
All platforms - Server: We protected the connection collector thread.
First, some background: a lost connection is a connection that stays too long doing nothing, normally because of a network issue.
So, the connection collector thread is a thread that collects these lost connections to purge them. See the importance of keeping the collector thread alive?
The issue was that, when debugging our server, we caused an exception that killed said thread. The only way to recover from this was restarting the server. We now protected this scenario - which was already very very unlikely to happen to you!
Bug
We protected socket "begin receive async" code.
All platforms - Server: We protected socket "begin receive async" code.
Connections could stay alive forever if the client closed it when the server was invoking said receive. Now it is fixed!
We fixed a memory leak during LZ4 negotiation.
All platforms - Server: We fixed a memory leak during LZ4 negotiation.
Don't worry - LZ4 is not mainstream yet. It is almost impossible you were hit by this one! But we had a memory leak during the LZ4 negotiation. We detected it in our internal production server, 2MB buffers grew too much.
We fixed the leak and also improved how we log buffer's sizes. Now there is no change of an overflow if the buffer size gets too big!
We fixed some duplicated entries in repository co…
All platforms - Plastic: We fixed some duplicated entries in repository comboboxes.
This issue could appear when creating a workspace from the Welcome dialog (this is, the first steps with the application).
The combo to select a Plastic SCM repository could have duplicated entries if your organization's name has any uppercase character. Now it's fixed!
9.0.16.4068
Public | 2020-03-11
New
We improved the log details. Now all requests wil…
All platforms - Proxy: We improved the log details. Now all requests will include these in each line:
*A request Id to identify all the messages that are part of a given call
*The name of the user who performs the call
*The client address of the caller
See an example:
2020-03-06 18:09:11,658 W-12 1 tester@codicesoftware.com CRONUS DEBUG Proxy - Written 2 objects to disk 16 ms. 0.00 Mb
2020-03-06 18:09:11,669 W-12 1 tester@codicesoftware.com CRONUS DEBUG Proxy - Thread 12 notifying data arrived and pulsing sleepers
2020-03-06 18:09:11,674 W-12 1 tester@codicesoftware.com CRONUS INFO Proxy - Type: downl. Files requested: 2. Cache misses: 2. Total time: 906 ms. Downloaded: 0.00 Mb from 1@myorg@cloud. Total returned: 0.00 Mb.
2020-03-06 18:09:11,674 W-12 1 tester@codicesoftware.com CRONUS DEBUG DataPacket - 0.00 Mb in 906 ms. Total sent 0.00 Mb
2020-03-06 18:09:11,682 W-12 1 tester@codicesoftware.com CRONUS INFO ChannelCall - conn: 1 protocol:plasticproto sec:none recb: 224|rect: 0|sentb: 940|sendt: 0|queuedt: 0|prt: 932|th: 12|dest: 4|mt: 904|sert: 2|zip: 0|cpu: 140| 127.0.0.1|user:tester@codicesoftware.com|GetObjectsDataFromCacheHandler
You need to update your plasticcached.log.conf file with the default one provided with the installer.
We don't distribute the Leap Motion libraries for…
Windows - Plastic: We don't distribute the Leap Motion libraries for licensing issues. If someone wants to use it, please get the Leap Motion SDK, and copy the following files to the Plastic SCM client installation:
Leap.dll
LeapCsharp.dll
LeapCharp.NET4.0.dll
Jet can store blobs to different paths.
All platforms - Server: Jet can store blobs to different paths.
We added a new setting to jet.conf to allow storing blobs and metadata in different paths.
Example:
basepath=/mnt/metadata
blobspath=/mnt/blobs
maxcachedtrees=50
datafilesize=4
This way it is now possible to put metadata in faster storage, and blobs in slightly slower one.
Bug
The proxy incorrectly cleaned recently used data…
All platforms - Proxy: The proxy incorrectly cleaned recently used data to free space. It always targeted data downloaded from the Plastic Cloud server as the best option to purge. It's fixed now.
We have re-enabled logging for the proxy, using […
All platforms - Server: We have re-enabled logging for the proxy, using plasticcached.log.conf
, after accidentally disabling it back in release 8.0.16.4035. Sorry about that!
9.0.16.4057
Public | 2020-03-10
New
Plastic SCM becomes 9.0!
Plastic SCM becomes 9.0!
As every year, we jump to a new number, 9.0 this time. For all of you using subscriptions it will be transparent.
If your team uses an "unlimited license", remember to request a new license where "major version supported" is updated to 9.
We no longer release major huge new versions anymore. We don't wait to package tons of new features. We simply keep releasing at least once a week, and making new features available version after version. That's how we ended up in version 9.0.16.4057, the one we converted to 9 today.
If you subscribe to Plastic, or you purchase support+updates, it means you will receive a constant flow of updates.
This initial 9.0 won't be a lot different to the latest 8.0, but in a few months 9.0 will be very different, week after week.
These are some of the things we are cooking:
.NET Core based server – we already previewed it, but it will turn official in the months to come. It means faster operation and a more stable core specially on Linux and macOS.
We'll keep improving the Code Review system.
We are working on a new Plastic Cloud that will run circles around the current one.
We'll update the current GUI look and feel as we teased here.
And many, many more to come.