Windows - Visual Studio Plugin: Plastic SCM now supports new Visual Studio 2022!!!
Installer now shows a new plugin for Visual Studio 2022 and above. As the IDE turned 64 bits, it required a new version of our plugin, which by the way can coexist with the old one, just in case you want to keep both Visual Studio 2019 and 2022 installed in your system.
As usual, if Visual Studio 2022 is present in the system, the extension will be suggested to be installed by default.
macOS, Linux - Plastic SCM API: The Plastic SCM API is now embedded in the CLI!
We created a new cm api command that starts the Plastic SCM API. It allows the same arguments as the old plasticapi.exe application. See more usage details here
Warning: this command is only available in macOS and Linux, as those platforms run our new .NET Core CLI client. We removed plasticapi.exe from all installers, so the Plastic SCM API is temporarily unsupported in Windows. It will be back as soon as we distribute our .NET Core CLI client in the Windows installers.
All platforms - Server: The Jet storage backend is now faster when reading files.
We changed the way we access the Jet backend files for reading. This change decreases the time needed for just reading content, making the overall time of reading calls to the server lower.
All platforms - All clients: The status operation performance has been improved by changing how the stats times are tracked.
This is only noticeable in super-huge workspaces.
The overall time of the status operation is a 17% faster in a workspace with 1M of directories and 5M of files.
All platforms - server: more detailed information in the relevant log and shell's 'htop' regarding internal and Web UI method calls.
Previously, every internal method call was tagged as "Internal", both for the server stats (relevant log) and shell's htop command. Now these calls are more qualified displaying the name of the method in execution. It has been also fixed on "ChannelCall" log where these calls are no longer tagged as "WebUI" but as "webui-Method'sName"
For example: on shell's htop, after executing a long-enough-lasting task (for instance a huge merge to) it should display "MergeTo" under Active requests or "webui-MergeTo", relying on the source of the method call. Remember that if the call is executed too fast, htop might not be updated in between and therefore not displaying any method at all.
All platforms - CLI: Checkout CLI command (co) now supports --machinereadable
We added the possibility of using --machinereadable parameter to the checkout command. Now it will be possible to specify --machinereadable argument to configure special chars which will be inserted where needed:
"--machinereadable" -> Outputs the result in an easy-to-parse format.
"--startlineseparator" -> Used with the '--machinereadable' flag, specifies how the lines should start.
"--endlineseparator" -> Used with the '--machinereadable' flag, specifies how the lines should end.
"--fieldseparator" -> Used with the '--machinereadable' flag, specifies how the fields should be separated.
cm co . --machinereadable --startlineseparator=">" The selected items are about to be checked out. Please wait ... >XXXXXXXXXX Item XXXXXXXXXXXX was correctly checked out CommandResult 0
(Checkouts the current directory, and prints the result in a simplified, easier-to-parse format, starting the lines with the specified strings.)
All platforms - Client: cm partial configure now supports a machine readable format
To obtain an easily parseable output, just use the "--machinereadable" option:
$ cm partial configure --machinereadable +/file.txt STAGE Plastic is updating your workspace. Wait a moment, please... STAGE Calculating... STAGE Updated 0 bytes of 13.89 MB (0 of 1 files to download / 0 of 1 operations to apply) STAGE Updated 13.89 MB of 13.89 MB (0 of 1 files to download / 0 of 1 operations to apply):/file1.txt
Remember you can override the default separators by using formatting options. You might need to double quote them depending on your shell:
$ cm partial configure --machinereadable "--startlineseparator=[" "--endlineseparator=]" "--fieldseparator=:" +/file.txt [STAGE:Plastic is updating your workspace. Wait a moment, please...] [STAGE:Calculating...] [STAGE:Updated 0 bytes of 13.89 MB (0 of 1 files to download / 0 of 1 operations to apply)] [STAGE:Updated 13.89 MB of 13.89 MB (0 of 1 files to download / 0 of 1 operations to apply):/file1.txt]
All platforms - Plastic: Alpha new and Alpha bug release notes in help panels
We added two new categories to the release notes: Alpha new, and Alpha bug. They already appeared in the web (https://www.plasticscm.com/download/releasenotes), but now you will also see them in the plastic client, inside the new version notification. Check it out:
All Platforms - Command line client: PLASTIC_INITIAL_CHANGESET and PLASTIC_FINAL_CHANGESET environment variables are now properly set.
For before/after update triggers, PLASTIC_INITIAL_CHANGESET and PLASTIC_FINAL_CHANGESET environment variables were swapped, considering the final changeset as the origin and vice versa.
Now it is fixed.
Windows - Plastic, Gluon: Fixed preview of unsupported image formats
There are some image formats that cannot be directly previewed or diffed inside Plastic. To diff two PSD images, for example, you need an external tool like ImageMagick to convert the images, and then perform the diff.
Although you could diff these kinds of images on a separate window by clicking "Diff with previous revision", the preview that appears in the pending changes view was not working:
We fixed this issue, and now you can diff these kinds of images without opening any external programs.
Windows - SemanticMerge tool: body method call wrongly renamed on edge case.
The problematic scenario is explained better with the following snapshot:
There is a "changed+renamed - changed" conflict on Upload method. And, there is also a method call to DirectoryUploader.Upload in the body (enclosed in a red rectangle), altough it wasn't modified by any contributor.
But the declaration "renamer" mechanism of SemanticMerge is not handling fine this edge case where the method call name in the body matches with the conflicting method (Upload in this case),
and it's applying the rename of the conflicting method to the method call in the body too (from Upload to UploadForClientTests) in the resulting file (also enclosed in a red rectangle).
Now it's fixed, and the method call in the body remains untouched, since it wasn't modified by any contributor at all.
macOS - Gluon: Fixed a performance issue opening a workspace with lots of files
The GUI hanged trying to open a workspace, when the root item has lots of children (>20000 items). Now it's fixed.
Windows - Installers: removed linux binary from the windows installer
The windows installers erroneously included a 120 MB binary file, "linplasticx", which is only required on linux. We removed it. Enjoy the extra disk space! (Note, you can safely delete this file from your current windows client install directly should you wish to do so).
All platforms - PlasticX: Try our new Plastic SCM cross-platform GUI!
We invite you to try our new Plastic SCM cross-platform GUI, code-named PlasticX (alpha)! This will also give you access to our new dark theme!How to get started with PlasticX (alpha)
PlasticX is packaged silently with every Plastic SCM release moving forward.
Download and install the latest Plastic SCM release.
* Windows: Run this command from the Windows console: C:\Program Files\PlasticSCM5\client\winplasticx.exe
* macOS: Open a terminal and run the following command: /Applications/PlasticSCM.app/Contents/Applications/plasticxscm.app
* Linux: Run this command from the terminal: /opt/plasticscm5/client/linplasticx
How to provide feedback:
* You can join our PlasticX forum here if you have any questions or feedback. Our dev team is actively monitoring this forum.
All platforms - PlasticX: launch internal image diff by default
If you have the default binary diff tool configured (or have no binary diff tool configured), image diffs will launch in a new PlasticX window.
All platforms - PlasticX: Save the last used workspace.
When switching the workspace from the top-left workspace selector, now the last used workspace is remembered when you close and reopen PlasticX.
All platforms - PlasticX: Support lines longer than 10.000 characters in diff and annotate views.
Prior to this fix, AvaloniaEdit (the text editor we use to display differences and annotate), didn't support displaying lines longer than 10.000 characters. We created this PR to fix it https://github.com/AvaloniaUI/AvaloniaEdit/pull/172
All platforms - PlasticX: Added support for diff and code review Plastic Links
Plastic Links are a great way to share content from your plastic repositories with your colleagues. You can easily share diffs, links to files and links to code reviews using Plastic Links.
* What is a plastic link? A plastic link is a URL that looks something like:
* How do I open it?
Just click on the link in the normal way and Plastic or Gluon will launch (if not already running) automatically and show you the content specified in the link.
Note: On Windows and MacOS, while PlasticX is in alpha, you will be asked whether you want to open links in Plastic (official release) or in PlasticX (alpha). You can change this setting at any time in Preferences -> Other options. On Linux, plastic links will always be opened in PlasticX.
* How do I create a link to share with my colleagues?
From within Plastic, you can share diffs from any diff view by clicking on the Plastic Link icon in the top right corner. This copies the link into your clipboard, ready to paste into a message. You can also share code reviews by clicking the Plastic Link icon in the top right of the code review window.
Plastic link icon:
From within Gluon, you can get links to specific files by clicking the Copy button in the Details panel:
All platforms - PlasticX: The "home" icon sometimes was not drawn on a newly created branch.
In certain machines under some concurrency scenarios, when creating a new branch and selecting the "Switch workspace to this branch" caused that the new branch is created but the home icon is not in the right place. Now it's fixed.
All platforms - PlasticX: Removed separator from the notification bar
In the bottom status bar, we sometimes show notification messages. To separate those messages we use a vertical line, which should only be visible when there is more than one message. We were always showing this line, even when there were no notifications to show:
Linux - PlasticX: Fixed hang when closing application
Sometimes when closing the workspace window in Linux, the application got frozen and it never ended. We fixed this issue
All platforms - PlasticX: Fixed an error that appeared after opening and closing the preferences window.
When opening and closing the preferences window, PlasticX displayed an exception. Now it's fixed.
All platforms - PlasticX: Removed latency when toggling "Only relevant" button
When clicking on the "Only relevant" button in the branch explorer, there was a latency that made the GUI freeze for some seconds. This was because of an operation that should be running in the background but instead was blocking the whole application. We fixed this call and now the branch explorer updates immediately
Also, now after refreshing the branch explorer view, if there are new branches or changesets that match the text in the search box, they will be highlighted