5.x release notes for 2016
Review the 2016 release notes for version 5 of Unity Version Control.
Read time 91 minutesLast updated 6 days ago
This page contains the Unity Version Control 5.x releases published in 2016, organized from newest to oldest. For other years, refer to 5.x release notes.
5.4.16.802
New
Linux packages upgrade to Mono 4.6.2.7
Linux packages upgrade to Mono 4.6.2.7!
We have just upgraded our Mono distro to 4.6.2.7. This means both Linux clients and servers benefit from a newer and faster runtime.
We have been performing extensive testing of the new 4.6.2.7 after finding a crash with the previous Mono 4.3 under heavy load conditions.
We ran load tests on the new 4.6 (100 concurrent clients doing non-stop operations – means way much bigger load than a setup with 1000 developers) and weren’t able to reproduce any crashes. The performance under heavy load is also much better (response times were 10 times faster on average on our load test scenario).
We also stress tested the GTK client running for +10 hours non-stop with automated testing (UI automation) and we didn’t find any issues.
5.4.16.801
New
ForceBuildNumberMatch flag in server.conf now mea…
ForceBuildNumberMatch flag in server.conf now means the client build number must be greater or equal than the server. Before it just meant 'equal' but this gives more flexibility to force users to upgrade to newer versions.
5.4.16.800
New
TeamCity plugin
TeamCity plugin: The branch name couldn't be set to a variable because it was required to start with the '/' character. This restriction has been removed. Also, Plastic changesets will be identified just by their changeset ID numbers instead of using a complex string ('cs: (guid:').
Bug
Gluon
Gluon: There was an issue in Gluon preventing users to create repositories on Cloud during the configuration of the tool. Fixed.
5.4.16.799
New
CodeCollaborator
CodeCollaborator: A CLI client to send Plastic SCM differences to CodeCollaborator has been implemented for Windows. It can be found in the Plastic SCM client directory: codecollaboratorclient.exe. Diffs from branches, changesets or changeset intervals can be used.
A configuration file named ccollabclient.conf needs to be placed in the regular client configuration directory (typically ) or alternatively in the same directory as the executable, and it has to contain three key-value pairs:
C:\Users\your-user-name\AppData\Local\plastic4-
: the target CodeCollaborator URI
server -
: the user name to be used to authenticate
login -
: the password to be used to authenticate
password
This is how the file might look like:
server=https://mycodecollab.server.com login=user password=mypwd
This file can be created through the 'configure' CLI parameter, which will prompt the user for each of these three values. The password value will be encrypted to prevent it from being stored in plain text.
WARNING: There's still a limitation regarding the deleted revision diffs. The diff viewer doesn't display the deleted file contents. We're working to solve that issue as soon as possible.
This is the command syntax:
Usage: codecollaboratorclient <brSpec|csetSpec|csetRange> [--title <reviewTitle>] [--id <reviewID>] codecollaboratorclient configure codecollaboratorclient -h|--helpExamples:Create a review of branch /main/task1346 in repository myrep@myserver:8084 : codecollaboratorclient br:/main/task1346@myrep@myserver:8084Create a review of changeset 8947 with title "My review": codecollaboratorclient cs:8947 --title "My Review"Add the difference between changesets (536, 539] to the review with ID 6473: codecollaboratorclient cs:536-cs:539 --id 6473
Bug
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: under some circumstances, browsing the repository list of a remote repository server could end up mismatching the credentials of the local server, making following operations from the GUI fail until it was manually restarted. Fixed.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: The diff on the "Pending changes" view was showing, for certain types of image files, the binary content of the file, instead of the relevant properties of the revisions (changeset, size, created by, and modified date). Fixed.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: When there are checked out files in the workspace, the so-called 'checkout changeset' that appears in the 'Branch Explorer' view (the changeset with dotted border and a 'home' icon) was not navigable using the keyboard. Now it's fixed.
Mac OS GUI
Mac OS GUI: the 'Open with...' dialog was not showing up correctly on the newest versions of Mac OS. Fixed.
5.4.16.798
New
Server
Server: The ldap connection is rebooted every 1000 requests to avoid memory leaks of the Novell.Directory.Ldap library.
5.4.16.796
New
Server
Server: Now it is possible to customize ldap requests timeout. To do that, add a new entry in the file as follows:
server.conf<LdapTimeoutSeconds>10</LdapTimeoutSeconds>
Server
Server: Improvements in ServerStats log: cache counters are now printed, GC info is formatted for easier grepping.
Server
Server: Improved thread id and user information in the log to ease debugging.
-
Threads have been cataloged in types so it is easier to debug complex heavy load scenarios. See thread types below.
-
Every DEBUG line in the log will now print the cataloged thread id (a prefix + the managed thread id).
-
UserId will be now printed on each DEBUG call by default (current users will need to update their loader.log.conf).
-
The channelcall log now includes user information so it is now easier to group calls (not only IP like before).
The new ThreadId property in the log is formed as follows: a prefix + the managed thread id (before the %thread% property was printed, which printed the OS thread id, which made debugging harder).
The prefixes are defined as follows:
W- Worker thread: Plastic threadpool threads attenting method calls. NetworkThread- Single thread to launch all socket receive async operations. A- Async thread: system threadpool thread attending socket receive async operations. Main- Main process thread. Audit- Audit log thread. ActivityScheduler- ActivityScheduler thread. AutoDiscovery- AutoDiscovery service thread. InitServices- Thread used to start up the system in Windows service and Unix daemon modes. Not used in Console mode. R- Replication thread: threads launched to run replicas. S- Tcp and SSL socket accept threads: there is one of this threads for each port the server listens on. Udt- Udt socket accept threads: one of this for each Udt port the server listens on. Tube- Tube server thread connecting to the remote tube server and accepting requests. ConnCollector- Single thread closing unused connections to other servers every 30 seconds. GitHttpServer- Git http server thread accepting requests. GitHttpServer- Git tcp server thread accepting requests. GitServerRequest- System threadpool thread to attend a GitServer request. GitMappings- Thread calculating object mappings for the GitServer.
5.4.16.795
New
Server
Server: The performance sorting differences has been greatly improved (up to 20x faster than before). This process takes part in several Gluon operations (check-in, update, configure workspace, status and more). All of them will take advantage of this improvement.
Windows, Mac OS and Linux installers
Windows, Mac OS and Linux installers: Now, installing a Cloud edition over a Team edition will be gracefully handled during the installation / upgrade process. Plastic will detect such scenarios, and client & server configuration tools will be automatically launched to finish the required configuration changes.
The same happens when installing a Team edition over a Cloud edition.
REMARKS: Upgrading from Team Edition prior to 5.4.16.795 to Cloud Edition 5.4.16.795 (or higher) will still require to manually run (Windows), (Mac OS) or (Linux) to complete the configuration process. The same happens upgrading from Cloud Edition prior to 5.4.16.795 to Team Edition 5.4.16.795 or higher.
plastic --configuremacplastic --configuregtkplastic --configureSince versions equal or higher than 5.4.16.795, this step won't be required.
Mac OS GUI and Mac OS Mergetool
Mac OS GUI and Mac OS Mergetool: The 'Find' action is now available for all (text)file viewers: the 'Differences' panel in the pending changes view, the 'Differences' window for branches and changesets, and the 'diff/merge' panels in Mergetool.
JIRA extension
JIRA extension: A new parameter named 'Issue query limit' has been added to the extension configuration parameters. It is used to manually tune the maximum number of returned results in the 'create branch' dialog. Its default value is 50, and it can be set to any positive number.
Windows GUI
Windows GUI: PlasticDrive (a virtual drive for Windows to mount changesets and be able to browse them using regular tools): The revisions cache path used by PasticDrive to store temporary files can now be configured (two different options):
- Specifying a new configuration file, named .Example of
plasticdrive.conffile contents:plasticdrive.conf
cachepath=C:\tmp\plasticdrivecache
- Mounting a plastic changeset by using the command line. Example of execution:
plasticdrive.exe cs:1@default@localhost:8084 --cachepath c:\tmp\plasticdrivecache -g
Bug
Gluon
Gluon: The filter textbox of 'Changesets' view appeared empty when Gluon application was restarted, but the previous filtered text was being applied indeed. Now it's fixed, and the filtered text is remembered between application restarts.
TeamCity plugin
TeamCity plugin: Leaving the 'branch spec' field empty resulted in a null pointer exception. Fixed.
5.4.16.793
New
Move changesets to a different branch
Move changesets to a different branch!
The top UserVoice request has been released: Move changesets to different branch
It helps in a very common scenario: you checkin to the wrong branch by mistake. Now you can move these changesets to the branch were they belong.
The feature is supported both from the command line and the 3 GUIs (Windows, Linux, Mac OS X).
Command Line Client: the command has been refactored to support the new feature and provide a more consistent way to perform advanced changeset actions. It now includes two subcommands: and .
cm changesetcm changeset movecm changeset remove-
deletes a changeset from the repository. Please have in mind that the target changeset must fulfill some requirements. See command help (
cm changeset remove <changeset-spec>) for further detail.cm changeset remove --help -
moves a changeset and all its descendants in the same branch to an empty branch. If the destination branch doesn't exist it will be created in the process. See command help (
cm changeset move <changeset-spec> <branch-spec>) for further detail.cm changeset move --help
Windows, Linux and Mac OS X GUIs: the 'Branch Explorer' and 'Changesets' views now include a context menu option to move the selected changeset and its descendants in the same branch to a different branch.
Branch Explorer filters now available on Mac OS X
Branch Explorer filters now available on Mac OS X.
A new submenu called 'Branch explorer' has been added to the 'Branch Explorer' view context menu. This new submenu contains the previous 'Go to branch base' action and three new actions: 'Filter selected branches', 'Filter selected and related branches' and 'Filter pending merges for selected branches'.
Each of them will refresh the 'Branch Explorer', showing only those branches affected by the selected filter. A new 'Remove filter' button will appear. Clicking on it will clear the filter and refresh the 'Branch Explorer' view using the previous conditional filter settings (if any).
Windows, Linux (GTK) and Mac OS Mergetool
Windows, Linux (GTK) and Mac OS Mergetool: User voice: Simple diffs in a merge tool
Now it is possible to diff the three revisions involved in a merge in a separate window launched directly from the mergetool. To do that:
-
Click on the new button on the top-right section of the mergetool
-
Select the desired diff: source revision with base, destination revision with base, and source revision with destination.
Cloud
Cloud: Improved the exclusive checkout (a.k.a. distributed lock) performance (30% faster than before).
Gluon
Gluon: The 'Update report' dialog has been refurbished. The error message for each update conflict has been moved to a dynamic text area on the right hand side of the dialog and errors can be update forced from now on.
Server (Linux)
Server (Linux): The server will now run as the 'plasticscm' user, instead of 'root'.
Bug
Gluon
Gluon: After deleting or renaming a file in the 'workspace explorer' view, the item position (the scroll position) was unexpectedly changed. Fixed.
Mac OS Mergetool
Mac OS Mergetool: Fixed some aesthetical issues
-
The margin colors were not correctly updated in the result text view when conflicts were edited.
-
Sometimes the scroll position was wrong on application startup.
-
Fixed clipped text in 'Mark as resolved' button.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: The message 'Can't edit the xlink root' appeared when trying to edit partial read-only xlinks. Fixed.
Mac OS GUI
Mac OS GUI: Wrong height and bottom margins in the filter field on 'Available Plastic SCM Branches', 'Server explorer' and 'Changeset selection' dialogs. Fixed.
Linux (GTK) GUI
Linux (GTK) GUI: under some circumstances, the GUI could throw an unexpected error. For example, while diffing an item that has no previous revision. Fixed.
5.4.16.792
New
Gluon
Gluon: The 'Checkin changes' view now shows a warning message when no changeset is created after a check-in operation. This can happen when files are just checked-out and then checked-in without changing their contents.
Bug
Gluon
Gluon: Starting Gluon configuration tool when there is no previous user configuration caused an error when selecting a repository. Fixed.
Gluon
Gluon: An error appeared when adding a file on an empty workspace when the workspace was created from Gluon configuration tool. Fixed.
Gluon
Gluon: Some panels in the details area were hidden when maximizing / restoring the window size. Now all panels have a minimum size.
Also, the 'details' panel preserve the proportion.
Windows GUI
Windows GUI: Diff branch/changeset: When clicking the 'analyze refactors' button while a Java file is being loaded in the diff viewer, the following error was shown: 'There was a problem parsing the source file'. Now it's fixed.
Server
Server: If the user authentication method is set to 'LDAP' (Oracle LDAP server) and the LDAP tree is very big, the server could not run certain operations sometimes (cm find, cm lrep, cm mkrep...). Fixed.
5.4.16.791
New
Branch Explorer multi-selection improvements with…
Branch Explorer multi-selection improvements with search. (Applies to Windows, Mac OS X, Linux).
-
Now it is possible to select a changeset, find another one using the search, CTRL-click it and do a "diff selected changesets". It is very useful to diff distant changesets.
-
Multi-selection and search also works for branches.
-
The colors of the selections have been modified so that now it is very clear when you are doing multi-selection (colors are subject to change in coming releases because we are still testing combinations).
Previously it was not possible because selection was lost after searching.
Server
Server: The active/inactive users aren't reloaded each hour anymore, improving performance on servers with huge work load.
Gluon
Gluon: New context menu options in search dialog
New options have been added to the context menu of 'search for files' dialog when right-clicking matched items:
-
Checkin
-
Checkout
-
Undo checkout
-
Undo changes
-
Update
-
Open
-
Open with
-
Open in explorer
Linux (GTK) GUI
Linux (GTK) GUI: The size and position of the application windows are now preserved between application restarts (main application window, 'Switch workspace' window and 'Differences' window).
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Improved look & feel for several dialogs, adjusting them to an unified style, and reviewed some texts (titles and explanations).
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Now it is possible to diff selected chunks of text. To do that:
-
Select the first text chunk from a 'diff viewer' textbox (pending changes view, diff window, merge window...).
-
Choose 'Add diff selection' option in the context menu.
-
Select another chunk of text and choose 'Diff with previous selection' option in the context menu.
An external diff tool will raise showing the diffs of the selected text chunks.
Diff & Merge tools
Diff & Merge tools: Diff line highlight
User voice request: Highlighting of a new line in diffs.
Added / deleted lines are now highlighted with a darker color. This way it is easier to distinguish what was really changed, especially for long lines. (Applies to Windows, Mac OS, and Linux GUIs).
Eclipse plugin
Eclipse plugin: Improved overall performance when there is no connection with the Plastic SCM server.
Bug
Server
Server: The replication process was stopped due to a LDAP exception (LOCAL_ERROR) when trying to resolve an user that doesn't exists anymore in the AD server.
Mac OS GUI
Mac OS GUI: The preferences window wasn't being shown in the Cloud Edition. Fixed.
Mac OS GUI and CLI
Linux (GTK) GUI, Mac OS GUI, and Command Line Interface for Linux and Mac OS: some special characters were not supported for file and directory names, resulting on an error when handling them from Plastic SCM. Fixed.
Please have in mind that there are some unsupported characters on Windows filesystem that Linux and Mac OS filesystems support, and there could be some files added to Plastic SCM from Linux and Mac that might not be available for Windows workspaces. This is not a Plastic SCM related issue, but the way NTFS and Windows handle paths.
Windows GUI
Windows GUI: The 'comment' field of the changesets on the 'Explore changesets on this branch' window was clipped on its bottom edge. Fixed.
Windows GUI
Windows GUI: The 'help' icon was missing in several views. Fixed.
5.4.16.789
New
Server
Server: The active/inactive users aren't reloaded each hour anymore, improving performance on servers with huge work load.
5.4.16.788
New
Fifth internal release with Jet backend (filesyst…
Fifth internal release with Jet backend (filesystem-based backend)
5.4.16.787
New
Command Line Client
Command Line Client: Command line checkin progress has been improved and now a proper ASCII progress bar is displayed.
Checkin operation
Checkin operation: The number of concurrent readers used on the checkin operation can be configured using the 'UploadReadPoolSize' setting in the file. By default a single reader is used. For example: to use 5 readers, add the following entry in the file:
client.confclient.conf<UploadReadPoolSize>5</UploadReadPoolSize>
Using multiple readers on SSD disks improves the upload phase performance significantly.
Mac OS GUI
Mac OS GUI: New look and feel for the workspace switcher window. It shows workspaces and repositories views inside a Tab control.
P4 sync
P4 sync: Prevent from losing the status of last synced changeset in case the sync process is abruptly stopped ( is issued, power failure, etc.).
cm sync p4Ctrl + CBug
P4 sync
P4 sync: Upgraded P4 API used by command. With this new API version, the number of TCP connections to P4 server decreases massively.
cm sync p4New P4 API version: 2016.1.140.7015
Windows GUI
Windows GUI: The branch explorer generated for the 'Show pending merges for selected branches' option was showing child branches that were already merged indirectly. Fixed.
Linux (Mono)
Linux (Mono): A bug was detected in our bundled mono version. It was preventing child processes to be notified of the closure of their standard input streams. Fixed.
5.4.16.784
New
Server
Server: MySQL database connector has been upgraded in order to improve connections handling.
Bug
Error "The channel 'normal' is already registered…
Error "The channel 'normal' is already registered" will no longer happen. Initialization of the remoting layer was not correctly protected and under some circumstances 2 threads could end up initializing it concurrently, leading to this error.
5.4.16.783
New
TeamCity plugin
TeamCity plugin: The TeamCity's Plastic SCM plugin now allows to track & build changes on multiple branches (a.k.a. 'Feature branches').
TeamCity plugin
TeamCity plugin: The 'Configure VCS root' step has been simplified. Instead of requiring a selector, the VCS root will ask for a server, repository and default branch name to track.
Also, the 'cm' executable path is no longer required (TeamCity plugin will assume the executable 'cm' is in the PATH environment variable.
REMARKS:
-
Existing projects configured with Plastic SCM VCS roots will need to be reconfigured.
-
There's an issue involving the diff of moved + changed files due to limitations on TeamCity API, pending to be adressed.
TeamCity plugin
TeamCity plugin: Server-side workspaces are no longer required. This will improve 'checkout from VCS' step and changes detection performance.
Mac OS GUI
Mac OS GUI: Now, every table on macplastic will save and restore your preferences about column ordering and sizing between application restarts.
Also, the position of the splitters on each view are saved and resored between restarts.
Bug
Mac OS GUI
Mac OS GUI: some windows were not correctly remembering their frame (size and position) between application restarts. Fixed.
(Note that some windows such as the preferences window, and all of the dialogs, will still appear centered and with their default sizes).
Windows GUI
Windows GUI: The diff window wasn't allowing to edit revision contents on 'text diff' mode when the revision was marked as 'Editable' (it's the same revision as the one loaded in the workspace). Fixed.
(Remarks: Edition in 'Semantic diff' mode is still unavailable).
5.4.16.782
New
Windows GUI
Windows GUI: The 'Diff' window, the 'Pending changes' view, and the '2D revision tree' view are now able to show image diffs/contents. The following image formats are supported:
bmp, gif, jpg, jpeg, jpe, jif, jfif, jfi, png, tiff, tifThe Image diff viewer allows to show diffs in four different modes:
-
Side by side: View both images on two panels (left and right).
-
Onion skin: The images are blended. A slider allows to show left or right image.
-
Differences: A single image shows the differences between them. This option is only enabled when the size of both images are the same.
-
Swipe: View portions of each image moving an slider.
The Image diff also shows differences in the image properties.
Windows GUI
Windows GUI: Added spell checking when entering comments on 'Pending changes' view and 'Create branch' dialog. Spell check enablement and language preferences can be changed by right-clicking in the comments textbox and using the displayed context menu.
REMARKS: In order to enable spell check for a specific language, the windows language pack for that language must be installed.
Eclipse
Eclipse: Added a new action that allows 'diff with other label' in the branch explorer's 'label' context menu.
Mac OS Mergetool
Mac OS Mergetool: app shortcut will be added to . This way, macmergetool is likely to be included in the default $PATH environment variable.
macmergetool/usr/local/binBug
Mac OS GUI
Mac OS GUI: Syntax highlight engine crashed when running 'macplastic' under an account with no admin privileges. Now it's fixed.
Mac OS GUI
Mac OS GUI: Fixed a crash loading the preferences dialog in 'Cloud Edition' installer.
Mac OS GUI
Mac OS GUI: The parameters configured by default on fresh installs where wrong, resulting in a 'Invalid length' error when diffing two revisions. Fixed.
macmergetoolIf you are already experiencing this issue, the fix is the following: go to 'Preferences' > 'Diff tools' and remove the default diff tool from the list. Then, add it again by clicking on 'Add' and selecting the 'Default' one from the list. Finally, click on 'Save' button.
5.4.16.781
New
Gluon
Gluon: Improved the way the 'Configure workspace' handles the case-sensitive renamings: the update operation is now able to apply case-sensitive renames in the workspace. See the example below:
Given the following repository structure:
/ /src /src/Foo.c
Before this release, if another user renames the file to , the configure view would show both items:
/src/Foo.c/src/foo.c/ /src /src/Foo.c /src/foo.c
Now, a single entry for the item will be shown. Furthermore, the update operation will correctly perform the update from to .
foo.c/src/Foo.c/src/foo.cGluon
Gluon: If another user moves a file on the repository, the 'Configure workspace' operation could lead to parent folders of the moved file not to download newly added items on these folders anymore. See the sample below:
Given the following repository structure:
/ /src /src/foo.c /src/bar.c /doc /doc/map.c
-
I have my workspace up-to-date with the described structure.
-
Another user renamesto
/src/foo.c/src/qux.c -
Now, my 'Configure workspace' view will show the following configuration:
/ (/) /src (/) /src/foo.c (X) /src/bar.c (X) /src/qux.c /doc (X) /doc/map.c (X)
Before this release, clicking the 'Apply' button without changing anything, and folders won't download newly added items anymore.
//srcAlso, before this release, changing any configuration of a not involved item in the move operation, such as , the result will be the same: and its parent folders won't download newly added items anymore.
/doc/srcNow, both scenarios changes their behavior: and its parents folders will download newly added items after the move operation.
/srcWindows GUI
Windows GUI: Improved the look and feel of the diff image viewer. Added Ctrl + wheel support for zooming.
Bug
Gluon
Gluon: The 'Configure workspace' operation seemed stuck when there were lot of items ( more than 30K items) involved to load. Fixed.
Known issue
Known issue: the 'About' dialog of this release has a typo in the code name: the release name should show 'Diamonds' instead of misspelled 'Diamons'.
5.4.16.779
New
Server
Server: Now it is possible to override the ACID isolation level setting for the configured database backend through server's config file.
db.confTo do that, edit the file and add an entry like this:
db.conf<IsolationLevel>RepeatableRead</IsolationLevel>
Possible values for isolation level are the following:
ChaosReadCommittedReadUncommittedRepeatableReadSerializableSnapshot
IMPORTANT REMARK: Plastic SCM server already sets the ACID level for the underlying database backend that best performs for each DDBB. We recommend not to touch this setting on your own. For further info, ask Plastic SCM support at "support@codicesoftware.com".
5.4.16.777
New
Mac OS GUI
Mac OS GUI: Added support for Mac OS X Sierra
Remarks: Some aesthetical UI glitches are still pending to be addressed.
Issue trackers
Issue trackers: Polarion: Added support for distributed scenarios (linked revisions will use changeset GUID instead of changeset ID (integer number)).
However, changeset info (such as changeset comment) and its WebUI visualization URI won't be available until the changeset is replicated to the configured Plastic SCM server in Polarion.
Remarks:
-
This update is backwards compatible, so all the linked revisions already added to Polarion using the changeset id will still be browsable.
-
The following components should be updated at the same time: Polarion's Plastic SCM extension (the one installed on your Polarion server), and Plastic SCM's WebUI (if you use it alongside Polarion).
Linux (GTK) GUI
Linux (GTK) GUI: Now, the collapsed nodes of the 'workspace explorer' tree are not re-opened between refresh operations if a child node is expanded. The behavior of the items tree is now exactly the same as in the Plastic GUI for Windows and Mac. When a node is collapsed, all its expanded children are collapsed too.
Linux (GTK) Mergetool and Mac OS Mergetool
Linux (GTK) Mergetool and Mac OS Mergetool: Now the Mergetool remembers window size between application restarts, correctly saving and restoring the diff window and the merge window position and size.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Implemented 'Go to source changeset' and 'Go to destination changeset' menu options on Branch Explorer merge links.
Command line configuration tools
Command line configuration tools: Some enhancements in and utilities have been made:
clconfigureclientclconfigureserver-
clconfigureserver: Now it is possible to configure the database backend from this tool.
-
clconfigureclient: Now it auto-detects the server's user authentication mode to automatically ask for the correct credentials. Also, it allows to specify server's SSL port and Plastic SCM proxy server location.
WebUI
WebUI: In order to keep compatibility with Polarion's issue tracker extension last update, changeset contents can now be browsed using both a changeset ID or changeset GUID in the URI.
Bug
Gluon
Gluon: Fixed a navigation problem in the 'Explore workspace' view. When the layout is set to 'list mode' (Right click on the 'Explore workspace' panel > 'View as list'), after double clicking a directory on the right side list, the directory item was not correctly selected. Fixed.
Mac OS GUI
Mac OS GUI: Several aesthetic fixes
-
The 'differences' navigation control is now automatically resized to prevent its text from cutting out the navigation buttons.
-
The 'History' view now has a progress indicator while downloading two revisions of a file to perform a diff operation.
Linux (GTK) GUI
Linux (GTK) GUI: The 'History' view now has a progress indicator while downloading two revisions of a file to perform a diff operation.
Mac OS Mergetool
Mac OS Mergetool: Now, if there are pending unsaved changes, the application will ask the user whether save changes or not before closing.
5.4.16.775
New
Mac OS GUI
Mac OS GUI: Enable syntax highlight and line numbers for text files in text editors (diff, merge and plastic tools). These are the supported languages:
-
Plain text
-
ActionScript
-
ASP.NET (aspx, ascx)
-
ASP.NET (ashx, asmx, asix)
-
Boo
-
C
-
Cg
-
Changelog
-
C++
-
CSS
-
C#
-
Diff
-
F#
-
HTML
-
IL
-
JSON
-
Java,
-
JavaScript
-
Jay
-
Less
-
Lua
-
Makefile
-
Python2 v2.x
-
Python3 v3.x
-
Razor
-
Ruby
-
ShellScript
-
Strings
-
Typescript
-
Vala
-
VisualBasic
-
XAML
-
XML
Remarks about configuration: The language is automatically selected based on the file extension. To override/extend the language extensions, create a file as follows (example):
"/Users/<the_user_name>/.plastic4/syntaxhighlight/languages.conf"This is a sample file, commented lines starts with <pre>#</pre> symbol:<pre>#syntax language definition by file extension#example:#.js:JavaScript.custom:XML.txt:Plain text</pre>
Mac OS GUI
Mac OS GUI: The changeset/branch/label comment is now selectable in the diff view.
Bug
Windows GUI
Windows GUI: The visual diff of the analyze refactors functionality from the diff window was broken since version 5.4.16.771. Fixed.
5.4.16.772
New
Mac OS GUI
Mac OS GUI: Improved look and feel for outline and table views (items, pending changes, branches, labels, etc.).
Now, the selected rows are highlighted in white color, so the text is more readable.
Also, the icon for the selected row in the left sidebar is highlighted in white color.
Windows GUI
Windows GUI: When launching the 'Diff...' dialog from an item that is not loaded in your current workspace (Example: the 'Diff...' dialog was launched from 'Browse repository on this branch/changeset' view), the 'Second revision' section didn't allow to select any changeset to compare with. Fixed: now you can choose which changesets or branches you'll be diffing.
Bug
Windows GUI
Windows GUI: When the GUI was configured to use a theme different than the 'default' theme, after showing differences for a file that had no changes, a 'Stack overflow' exception appeared. Now it's fixed.
Windows GUI
Windows GUI: Diff navigation keyboard shortcuts (Ctrl+N and Ctrl+M) were broken since version 5.4.16.771. Fixed.
Windows GUI
Windows GUI: Fixed aesthetical issues in 'Create label', 'Update workspace' and 'Switch to label' dialogs.
Windows GUI
Windows GUI: Windows 10 users: The dialog that warns about pending changes on the workspace before a switch operation had the 'Don't ask me again' option hidden. Fixed.
Gluon
Gluon: Fixed aesthetical issues in 'connect to server' dialog: if the server name was very long, the ok/cancel buttons were clipped. Fixed.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: 'Branch Explorer' view: When selecting a branch that has sub-branches, and the click was done in the sub-branch area, the branch was not selected. Now it's fixed.
Windows Mergetool
Windows Mergetool: replacing a selection of text on the result box just before a 'deleted' section using paste command instead of keyboard input resulted in a wrong painting of differences. Fixed.
5.4.16.771
New
Gluon CLI
Gluon CLI: command now accepts a new flag: . With this flag, the command ignores casing on specified paths. Example:
cm partial configure--ignorecase- If the user types the following command: , the command will work for loading
cm partial configure --ignorecase +/data/teXtures./Data/Textures
Command Line Interface
Command Line Interface: command now accepts a new flag: . With this flag, the command ignores casing on serverpath specs. Example:
cm listlocks--ignorecase- If the user types the following command: , the command will work for listing locks on
cm listlocks --ignorecase serverpath:/conFIG/enViRonMENt.cnF#cs:499, if any. (It is supposed the /Config/Environment.cnf file exists in changeset tree cs:499)./Config/Environment.cnf
Gluon
Gluon: 'Configuration mode' is now able to automatically unload files from their old location when they need to be loaded in a new location. This is useful when there are files that are checked to be loaded in their new location but they were already loaded in the workspace in an old location.
(Before this release, an 'item already loaded' error was shown to the user).
Windows, Linux and Mac OS GUIs
Windows, Linux and Mac OS GUIs: Added telemetry to Plastic SCM to track exceptions and useful info that will help on troubleshooting issues.
Mac OS GUI
Mac OS GUI: Several aesthetical fixes were made in branch explorer properties viewer, configuration dialogs and pending changes view. Some dynamic texts did not fit inside some labels.
Mac OS GUI
Mac OS GUI: Added shortcut in the 'Items' view to focus the search textbox.
Cmd + FLinux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Fixed progress message in 'Checkin to another branch' dialog. The name of the newly created branch was not shown.
Check in
Check in: The initial step of the 'checkin' operation (generating data to submit) has been improved. On Linux-based OS is 4x times faster. Windows it's 13% faster.
Bug
Server
Server: The 'change revision type' command was unnecessarily cleaning the server caches. Fixed.
Gluon
Gluon: the check in operation for a moved item with the source parent deleted was failing when the deleted parent was processed before the moved item. Example:
* move /src/lib/foo.c -> /foo.c* rm /src/lib* cm checkin
If the operation was processed before the , the check in could fail. But now this issue has been fixed.
rmmove5.4.16.769
New
GitSync & GitServer
GitSync & GitServer: The Plastic '/main' branch is mapped to Git 'master' branch. Now this mapping is also considered for the children branches of '/main' on Plastic, so '/main/task1' is converted to 'master-task1' instead of 'main-task1'.
Plastic branches are converted into Git branches by removing the hierarchy and replacing the '/' with '-'. For example: /main -> master & /main/task1 -> master-task1
From now on, every time a Git branch is converted into a Plastic branch, the '-' character is used to recreate the hierarchy in Plastic by keeping in mind the already converted branches. Example: master -> /main & master-task1 -> /main/task1.
The '-' character is also allowed as part of the branch name like the following example: master -> /main, master-fix-5.0 -> /main/fix-5.0 & master-fix-5.0-task1 -> /main/fix-5.0/task1
Gluon CLI
Gluon CLI: The behavior of the option of the command has been improved.
--ignorefailedcm partial checkinSetting that option will now force the checkin operation to discard any changes that cannot be checked in, so the operation will finish without them.
Previously, this option was only affecting to changes in conflict. Now, it also discard changes that cannot be submitted due to lack of permissions, locked files, etc.
Bug
Gluon
Gluon: 'Update' operation from item context menu: The 'move' operations were only applied when updating the whole workspace. But now, if the source and destination of the move are selected, the move operation is correctly applied in the workspace from the context menu's 'Update' operation too.
5.4.16.768
New
Windows GUI
Windows GUI: Preserve custom Branch Explorer tabs
Now, 'Custom Branch Explorer' tabs are preserved when closing the Plastic SCM GUI.
Checkin
Checkin: The data validation step of the checkin operation has been improved. Now it's much faster than before this release.
Tested with 315K items in a SSD disk:
-
Before this release: 45875 ms
-
With this release: 1750 ms
Windows GUI, Linux (GTK) GUI and Mac OS GUI
Windows GUI, Linux (GTK) GUI and Mac OS GUI: Configuration dialogs now shows more user-friendly authentication modes:
* NameWorkingMode -> "User name from the computer"* NameIdWorkingMode -> "Name + user ID"* ADWorkingMode -> "Active Directory"* LDAPWorkingMode -> "LDAP"* UPWorkingMode -> "Built-in user and password"
Bug
Jenkins plugin
Jenkins plugin: The use of relative paths in cm shell commands was causing Jenkins to crash on Mac OS X. The CI system is setting the current directory to invalid (out-of-workspace) paths. Fixed.
Fixed an issue in protocol auto-detection that en…
Fixed an issue in protocol auto-detection that ended up in a hanged server combined with clients having wrong LDAP passwords massively.
5.4.16.766
New
Gluon
Gluon: Added a 'comments' panel below the history panel. This panel will show the comment of the selected revision, or the comment of the loaded revision in the workspace if no revision from the history panel is selected.
Bug
Windows GUI
Windows GUI: The automatic comments were duplicated after closing and reopening the pending changes view. Fixed.
Mac OS GUI
Mac OS GUI: Wrong window title in the configuration window. The title was: 'Welcome to PlasticSCM Cloud Edition' when the installed version wasn't the Cloud Edition at all. Fixed.
Mac OS Server Installer
Mac OS Server Installer: Fresh install from scratch wasn't generating a trial license, causing the server to do not startup automatically. Fixed.
5.4.16.765
New
Plastic network protocol released
Plastic network protocol released
This release includes official support for the new 'Plastic network protocol' (a.k.a. 'plasticproto').
The protocol is not yet enabled by default, and to take advantage of it, a file named must be created (details below).
plasticpipeprotocol.confThe main features of plasticproto are:
-
Improved API compatibility. Our intention from now on is to keep all clients and servers compatible (from this release onwards). It means we get rid of breaking compatibility on major releases as we did in the past. All of this will greatly simplify deployment, especially on big teams. Users will be able to upgrade to a newer major release even if not the team members upgrade at the same time. Compatibility checks now happen on a per method basis. Methods can be versioned independently, which helps us evolving the API faster while not forcing all users to upgrade.
-
Reduced call overhead: the protocol is much more compact than before, because it is lower level and designed ad-hoc for Plastic. As an example: a simple "cm lrep" request (just the request, not including the answer) was about 400 bytes before. Now it is about 50 bytes when a new socket connection is opened, and only 2 bytes if a connection is reused.
-
Increased portability. The new plasticproto makes it simpler to port to new frameworks like .NET Core and implement native clients on mobile devices. This is because it doesn't rely on complex RPC like before, but just on plain sockets.
-
Better performance: the lighter API helps during both performance and scalability tests. While the initial version is not dramatically faster than the older on LAN, the plan is to use it to greatly improve data transfer.
A little bit of history:
-
For years, communications between Plastic client and servers (including communications between servers) happened through .NET/Mono Remoting.
-
In fact, it was a heavily customized remoting layer, improved for scalability, performance, memory reduction and faster serialization, among others.
-
It allowed us to run circles around other version controls (more here) but it had issues regarding major version compatibility.
-
We had to freeze the API to keep it compatible, and per-method versioning was not easily doable.
How to enable plasticproto:
-
The 5.4 client and server will still default to "remoting" protocol except if file namedis created in the client binaries folder (and another one in the same place as the server binaries to enable plasticproto to be used during replicas among plastic servers).
plasticpipeprotocol.conf -
The format of the file is as follows:
plasticprotocol myserver:8080 superserver:8085 ssl://myserver:8084remotingprotocol otherserver:4040defaultprotocol remotingprotocol // it can also be ‘plasticprotocol’
-
You can specify how to connect to each server.
-
If you install this new version on client and server and you want to give plasticproto a try, the followingfile will do:
plasticpipeprotocol.conf
defaultprotocol plasticprotocol
(This file is meant to be temporary and as soon as we enable protocol autodetection, it will no longer be used).
5.4.16.762
New
Server - User Authentication
Server - User Authentication: From now on, Plastic SCM supports LDAP user authentication without anonymous access enabled.
Windows GUI
Windows GUI: The 'branch explorer' view now allows to navigate to mergelink's source/destination changesets even if the target changeset is visible on the screen.
Windows GUI
Windows GUI: Explore changesets on branch: Added "Changeset Guid" field to the changeset list. And from now on, all the displayed fields (datetime, owner, cset guid, cset id and comments) can be copied to the clipboard.
All Platforms
All Platforms: Remember comments in Pending Changes view
'Pending changes' view comments are now remembered when closing/reopening the view.
Windows GUI, Linux (GTK) GUI and Mac OS GUI
Windows GUI, Linux (GTK) GUI and Mac OS GUI: Always display branch comment in Branch Explorer
User Voice request: always display branch comment in Branch explorer (not only from issuetracker)
The branch info is now displayed as follows in 'branch explorer' diagram:
-
If an issue tracker is configured in "Task on Branch" mode, the associated task info (if any) from the issue tracker is displayed.
-
Otherwise, the branch comment is used to display the branch task info.
Bug
Linux (GTK) GUI
Linux (GTK) GUI: The undo changes operation were wrongly cleaning the checkbox status (checked) of the selected items if the operation was not actually performed (the user refused to confirm it). Fixed.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: The locking status was not checked when checking in 'changed' items from the 'Pending Changes View'.
Gluon
Gluon: Update operation from a directory's context menu: If there are fully checked directories to be updated under the selected elements, the new added items were not downloaded to the workspace. Fixed.
5.4.16.761
New
Add operation
Add operation: The 'add' operation has been improved, up to 2x faster than previous release.
Cloud
Cloud: The perfomance of 'differences' operation has been reviewed and improved.
License reload has been improved. Auto-renewal li…
License reload has been improved. Auto-renewal licences installed with token were not reloaded on server startup. It means that if you added 3 users to your Team Edition, you had to wait a few hours for the server to reload the new lic. Now the server detects the change on startup, so a quick server restart will enable the 3 new users to start working.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Added context menu for 'checkout changeset' on 'branch explorer' view (dotted line changesets).
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: The 'pending changes' view now allows multiple items to be checked/unchecked by clicking one of the checkboxes in the selected rows.
Linux (GTK) GUI
Linux (GTK) GUI: The 'pending changes' view now allows the space bar to be used to activate/deactivate all the checkboxes in the selected rows.
Linux (GTK) GUI
Linux (GTK) GUI: The 'Workspace Explorer' view now allows multiple items to be opened at once by selecting several rows and hitting the 'Enter' key.
Security
Security: Update-merge failed with checkouts (co/add/rm/mv) under a path where the user lost "read" permission. Now the case is better handled and the following error is returned: "The merge cannot be done because some local changes cannot be processed. Most likely, you don't have the proper permissions to make changes in some of the paths involved. Check the server log for more information."
Remarks:
-
It happens when you download code to /src/project, and then later the admin revokes access to this directory but you already had checkouts inside.
-
Update-merge happens when you are on a branch, you have checkouts, you update to latest, and your checkouts are simply moved to latest using a merge under the hood.
-
Previously the error message was something like "item 12386 could not be found in the tree. The new tree cannot be built").
Bug
Cloud
Cloud: When a user is member of multiple organizations, the groups membership for that user were wrongly calculated. Fixed.
5.4.16.760
New
Changes in Team Edition and Cloud Edition to simp…
Changes in Team Edition and Cloud Edition to simplify the evaluation process. We have redesigned the initial installation and configuration steps to make it much easier and intuitive for users evaluating Plastic SCM.
Changes start in the installer and then continue in the initial tool configuration (server selection, credentials and so on) and finally new dialogs help the user creating a new repo or joining an existing project.
Summary of installer changes:
-
Windows Installer: Gluon or Plastic will be started on Windows at the end of the installation, instead of simply finishing and waiting for the user to start the right tool.
-
Windows Installer: initial tool configuration happens with non-elevated user now. During installation you're asked for "elevation" (admin rights on Windows) to be able to copy the files under "Program Files". Once the installation is finished, the elevation is reverted so that initial tool configuration happens on the unprivileged user account and not admin's. This worked fine for user in the admin's group, but not for regular users. We finally got it fixed.
-
Linux: after configuring with gtkplastic running the first time, the tool was closed and you had to rerun. This has been finally fixed so it is much simpler now.
Summary of changes in Cloud Edition:
-
All platforms: Cloud Edition credentials dialog: first time you run Cloud Edition client you are prompted to enter your Plastic Cloud credentials. The dialog has been redesigned to make it simpler.
-
All platforms: Cloud Edition first steps dialog. Once you enter your credentials, you have to create a new workspace, new repo and so on. Now a new dialog helps you doing all that. It is capable of creating a new Cloud project with a local repo to push/pull changes, join an existing one or simply create a workspace (which is the option for users who are already familiar with Plastic and just want to do some quick operation). We made this change after listening to evaluators of Cloud Edition struggling to complete the first steps. The dialog is even capable of creating a new Sync View to synchronize the local and Cloud repos.
Summary of changes in Team Edition:
-
All platforms: Team Edition server configuration dialog: first time you run Team Edition client you have to configure your server and enter your credentials. During evaluations it is very common that users install a server on their own machine. Now the configuration detects it and directly shows the "localhost:8087" as default server. The dialog has been redesigned too in Mac OS X, Linux and Windows.
-
All platforms: Team Edition first steps dialog. Similar to what we did for Cloud Edition. Once you configure your server and enter your credentials, a new dialog guides your steps creating a new "project" (new repo indeed) or joining an existing one, and creating the associated workspace.
General evaluation improvements:
- Once you start the Plastic GUIs (Windows/Linux/OS X) for the first time, there are a few hint panels explaining what you can do. It will not be useful for experts, obviously, but we think it can save newcomers a lot of time.
General Cloud improvements:
-
We have created a new Cloud view. It is just a "repositories view", connected to Plastic Cloud. For Cloud Edition users it will simply list the repos on their cloud organization. For Team Edition users, it will show them that Cloud is there to help, and of course will show the repos in their Cloud organization as soon as they get one. The operations here were all previously doable from the regular "repositories view", but introducing this Cloud button on the GUIs we think we make it much more obvious to use, more visible and easy.
-
New "create sync view" option has been added to the "repositories view" and the new "Cloud view". We just make it easier to create a sync view to synchronize a pair of repos (local and Cloud).
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Allow undo unchanged
'Undo unchanged' option is now available on the 'Pending changes' view. It is located in the 'Advanced' button on the right side of the main actions toolbar. ('Shelve' option has been moved to the 'Advanced' options on both GUIs).
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: 'Branch Explorer' view: 'zoom' buttons are now available. They are located next to the 'Home' button.
Gluon
Gluon: Added a 'Show update report' button on the 'Workspace explorer' view in order to show a list of updated, loaded or unloaded items when an 'update' or 'apply configuration' operation is performed.
(The button will remain hidden until the first operation is performed).
Windows Installer
Windows Installer: Prior to this release, when a standard user was installing Plastic SCM and the installer asked the user for 'admin' privileges, the Plastic SCM client configuration tool launched at the end of the install process was taking the 'admin' user instead of the standard user that originally launched the installer. This windows limitation was preventing the standard user from being configured to use Plastic SCM indeed. Now, this limitation has been workarounded starting the client configuration tool with the "explorer.exe" process.
Windows installer
Windows installer: Now it is possible to choose whether start Plastic SCM classic GUI or Plastic Gluon before the install process finishes.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Allow checking in to a different branch
Added 'Checkin to a different branch' feature to the 'Pending changes' view (the new option is located in the 'Advanced' button). The changes can be checked in into a new branch or to an existing empty branch (in both cases the branch base will be the current changeset).
The changes can be checked in into the selected branch or just moved without checking in them.
Global configuration files
Global configuration files: The location for the following config files: 'ignore.conf', 'cloaked.conf', 'hidden_changes.conf', 'writable.conf', 'readonly.conf' and 'filetypes.conf' in Plastic SCM's global configuration repository has changed.
Although we still support the previous configurations, now you need to commit the configuration files in the "plastic-global-config" repository following the next folder structure:
- Example for MyRepo:
/MyRepo/ignore.conf
- Example for allrepos
/allrepos/ignored.conf
Bug
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: When creating an xlink using the CLI's command, the xlink's default expansion rule is not created, causing an exception when editing the target changeset using the GUI. Fixed.
cm xlinkLinux (GTK) GUI
Linux (GTK) GUI: When a controlled file was locally moved, the items view didn't render the deleted file correctly. Fixed.
Windows Mergetool
Windows Mergetool: Several aesthetical improvements
Several aesthetical improvements have been made:
-
Fixed maximize / restore contributor buttons tooltips. All contributors were showing de same tooltip messages ('Maximize src contributor' / 'Restore src contributor') instead of using each own contributor name.
-
The 'merge info' panel was not properly closed when the splitter was moved. Fixed.
-
Aesthetical improvements on the 'XMerge' wizard.
Windows GUI and Windows Mergetool
Windows GUI and Windows Mergetool: The colored 'diff' regions bars were overlapping the 'search' bar sometimes. Fixed.
Mac OS GUI
Mac OS GUI: The 'progress wheel' in the 'dynamic pending changes' view was not properly centered. Fixed.
Eclipse plugin
Eclipse plugin: Fixed a NullReference exception when trying to decorate the text in the 'WorkspaceRoot' resource.
Command line client
Command line client: Undelete command: Since release 5.4.16.748 the command stopped supporting revision specs by revision id (Example: ). Now it's supported again.
cm undeleterevid:7455.4.16.756
New
Windows GUI - PlasticDrive
Windows GUI - PlasticDrive: Upgrade to Dokan 0.7.4
Dokan 0.7.4 is now required to get PlasticDrive working properly.
Core
Core: 'add' operation: The 'add' operation performance has been improved.
Our internal benchmark states that initial adding of 51K files and 3.4K folders, the 'add' operation is six times faster than before this release.
Bug
Core
Core: 'status' operation: In some circumstances, undoing a move produces other pending changes to dissapear from the list (but their contents aren't undone) in the workspace. Example:
/|_ src |_ lib |_ foo.c (mv-dst) |_ foo.c (mv-src)|_ doc |_ bar.c (additional-mv-src)|_ bar.c (additional-mv-dst)
In the scenario described above, when the first move was undone (), the additional move () was wrongly removed from the pending changes list. Fixed.
foo.cbar.cLinux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Merge operation: Branch cherry-pick operation was not working as expected: It was just picking the changes from the last (HEAD) changeset. Now it's fixed, and all changesets in the selected branch are considered.
5.4.16.753
New
Windows GUI
Windows GUI: Diff configuration for Office files: Updated 'diff' scripts for Office Word, Excel and Powerpoint to support newer versions of Office.
Supported versions: From Office 2007 (except Powerpoint 2007) to Office 2016.
Added a new diff script for 'Open Office Writer'. The Open Office Writer diff script is automatically configured on new installations.
If you already have diff tools configured, you can configure the diff tool by adding the following line to your 'client.conf' file in the 'DiffTools' section as follows:
<DiffToolData> <FileExtensions>.odt;.ods</FileExtensions> <Tools> <string>wscript.exe "C:/Program Files/PlasticSCM/client/diffscripts/diff-odt.vbs" "@sourcefile" "@destinationfile" //E:vbscript</string> </Tools></DiffToolData>
Remember to add it with a higher priority than the default binary diff tool. You can also configure it on the 'Diff Tools' tab in the 'Preferences' dialog form Plastic SCM GUI for Windows.
Mac OS Server Installer
Mac OS Server Installer: Updated server log configuration file. This new config file allows to classify log messages in different files according to their severity.
Linux GUI (GTK) and Mac OS GUI
Linux GUI (GTK) and Mac OS GUI: Added 'Delete changeset' context menu option to 'Changesets' and 'Branch Explorer' views. This new option is available inside 'Advanced options' submenu.
Bug
Gluon
Gluon: The 'History' panel on the 'Checkin' view was not properly refreshed when the lock of the modified file was kept after the checkin operation. Fixed.
Axosoft OnTime issue tracker
Axosoft OnTime issue tracker: Fixed connectivity issues between OnTime issue tracker extension and the OnTime API.
P4 sync
P4 sync: Improved the way the sync process calculates whether the p4 user has enough privileges to push plasticscm changesets into p4 depot. Moreover, this check is omitted if no extra privileges are required (flag is passed as argument to the command in order to write username and date on p4 changelist comments instead of their metadata fields).
--bypassmetadatatocommentcm syncWindows Mergetool
Windows Mergetool: Fixed a localization issue in the mergetool options menu.
5.4.16.750
New
Gluon
Gluon: Now it is possible to add private files inside a directory that exists on the server but it's not configured in the workspace (so, it appears as 'Private' in the workspace explorer). The folder will be automatically loaded in the check-in operation in order to allow adding the file.
Gluon
Gluon: Improved 'partial read-only xlinks' feature in Plastic Gluon workspaces where multiple xlinks pointing to the same repository are loaded.
FMOD Plugin
FMOD Plugin: The FMOD Studio plugin is now compatible with version 1.08. Please contact us at for further info.
info@codicesoftware.comSecurity
Security: Restrict 'read' access to certain paths (A.K.A. 'pruned workspace' feature, first released in version 5.4.16.746): Denying 'read' access permission to the root item was causing 'null reference' exceptions when trying to update the workspace or view repository contents. Nevertheless, this case was a known limitation.
Now, the 'read' permission can be safely revoked from the root item, which will result in receiving an empty items tree. However, we suggest users to deny access to the desired repository instead.
Windows GUI
Windows GUI: Now it is possible to show the 'Path permissions' dialog from the 'items' view context menu, even if the repository of the selected item was loaded multiple times in the workspace.
Linux (GTK) GUI
Linux (GTK) GUI: New 'Diff' options have been added to the context menu on 'Automatic merges' tab in the 'Merge' view.
Bug
Users management server tool (A.K.A. umtoolgui
)
umtoolguiUsers management server tool (A.K.A. ): The user name textbox was not filled on the 'Reset Password' dialog. Fixed.
umtoolguiGluon
Gluon: Sometimes, Plastic Gluon gets stucked in the 'Loading...' status just after opening the application. Fixed.
5.4.16.749
New
Server
Server: Introduced a new configuration setting in server.conf to be able to finely tune the different buffer pools used by the server.
The new setting has the following format:
<BufferPoolSizes>DataPacketBufferPool=10;DataPacketPool=20;TreeBufferPool=5</BufferPoolSizes>
It is helpful on multi-core servers under heavy load to reduce contention and make better use of the underlying CPU power. This way you can avoid cores to lock waiting on an available buffer, at the expense of consuming more memory.
Buffer pools are used to avoid unwanted memory allocations to manage data to be serialized and sent to the client. Continuously allocating and freeing memory is bad in terms of performance and overall memory usage.
If your server is under heavy load (teams with hundreds of developers) and you think you can benefit from this setting, please contact us first so we can help you optimize the server. The goal is to create a comprehensive server tuning guide, but it is not yet there at this point.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Now it is possible to cancel a 'process all merges' ongoing operation.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: When 'macplastic' or 'gtkplastic' applications were launched with the '--configure' option and the client configuration file didn't exist, a warning message appeared instead of opening the configuration window. Fixed.
Update operation
Update operation: Now, the 'fast-update' feature is able to load an added xlink under an added directory.
Bug
Server
Server: Fixed an issue that was able to crash a server when dealing with socket disconnections. It was very unlikely to happen (only seen it twice in a Linux server, never in all other installations). The address of the client was tried to be retrieved when the socket was no longer connected, raising an unhandled exception. Fixed now.
5.4.16.748
New
XLinks
XLinks: Added support to allow repositories containing Xlinks to be Xlinked multiple times from a single separate repository.
IMPORTANT REMARKS: The following scenarios are not allowed while upgrading to this version:
-
Merges in progress or pending to checkin: Please finish any merge in progress and checkin/undo its changes before upgrading.
-
User-defined changelists with pending changes inside an xlinked repository.
-
Please move all pending changes inside user-defined changelist to the default changelist, or checkin/undo them before upgrading.
-
Tranformer rules: Please undo any transformer rules in your workspace (or remove the workspace entirely) before upgrading.
Bug
Windows GUI
Windows GUI: 'Branches' view on tree mode was not properly showing the results when using a custom query. If parent branches of those that really match with the query aren't included in the result set of the query, the matched branches won't be shown. Fixed: now, several subtrees with all the expected branches are built and the expected branches are shown on the result view.
5.4.16.747
New
Security
Security: The performance of the secured path permissions check has been improved by 80% for big trees ( > 700K items).
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Now, you can merge a selection of files in the Merge view, instead of having to process all merges at once.
Jenkins CI plugin
Jenkins CI plugin: Updated to version 2.5. The workspace issue in cross-platform setups (workspaces were being always removed before build, regardless of the "Use update" option value) has been fixed.
Bamboo plugin
Bamboo plugin: Added compatibility with Bamboo 5.10. Warning! The Bamboo Plastic SCM plugin is now incompatible with Bamboo versions 3.x and older.
Bug
Sync View
Sync View: Very rarely the Sync View failed with a "Binary Stream '0'" error. If you were unlucky enough to see one of these, don't worry, you are safe now. It was a very rare bug, hard to reproduce, that almost nobody suffered. It has been fixed thanks to Unai Landa from Digital Legends ;-).
The wild and crazy bug has been around for about 7 years and it was a problem in the network layer. The server zips every response sent back to the client. When the compression didn't succeed (very rare) the client was eating some header bytes incorrectly, expecting compression to happen. Then the error showed up. Fortunately, it has been caught and jailed.
5.4.16.746
New
Security
Security: Now it is possible to restrict "read" access to certain paths so that some parts of the repository are not visible to certain users. It is useful in centralized setups where sensitive areas of the project must be protected in such a way they can't even be seen by some project members.
The way to secure the paths is very easy: just deny or remove the "read" permission for certain paths (what we know as "secured paths" internally).
This way the users without effective "read" permissions won't be able to download (doing update) these secured paths. These paths won't be visible in diffs or merges either.
What happens during merge? If a user needs to merge a branch and there are changes in a path he can't "read", the merge will fail notifying that the merge can't proceed due to security restrictions.
Note about effective permissions: remember that permissions on paths inherit from repository permissions and can be applied to all branches or a subset of branches.
Most relevant behavior changes:
-
The update operation will not download files and directories where the user doesn't have "read" permission.
-
The diff operation will filter out the differences. If the source of the diff can't be seen, the diff won't be visible. (Remember there is always a "src" and "dst" on diffs).
-
The merge is rejected if the user doesn't have "read" permission for any change in the source contributor.
Current known "issues": There are some issues that will be fixed in the upcoming releases, but they are present in the current version:
-
If the user doesn't have "read" permission for the root item, any try to update or view the repository content will end up in a "null exception". This is an ugly one that will be fixed soon, but it doesn't make sense to remove root "read" permission (it is better to deny access to the repo).
-
The update-merge (you know, when you are on a branch, you have checkouts, you update to latest, and your checkout is simply moved to latest using a merge under the hood) will fail with a weird message if there is a local change (co/add/rm/mv) under a location where the user doesn't have "read" permission anymore (you had permissions, you downloaded the content, and then someone remove access to this path). The message will be something as follows: "item 12386 could not be found in the tree. The new tree cannot be built". While the error is ugly, we consider it will be an uncommon case, so we decided to release and fix the issue later.
-
When you configure path permissions for an Xlink directory entry, the permissions are applied to the root path of the Xlinked repository instead of the specified path in the parent repository, which will lead to the same issues defined in the first 'known issues' point. This is something we need to get fixed soon. Example: you have=> pointing to
/src/subrepo. Well, you try to set permissions to/@cset:1320\@opengl-libbut they are set to/src/subrepoinstead, which is not what you really want to achieve. We'll fix it ASAP./@opengl-lib
Remarks:
-
GitSync & GitServer ignore any path based security.
-
You must update both clients and servers to take advantage of this new security functionality.
-
Diff will show secured paths if the user has permissions to "read" the change in the destination changeset. We still have to decide whether
-
If the user has permissions to "read" an item/path, he will have permissions to see all its revisions from the history views.
-
In distributed scenarios, enable the following setting inside server.conf: <SecuredPaths>true</SecuredPaths>. This will reject operations when the path permissions of a revision cannot be checked because its changeset was not replicated yet.
-
It is recommended to configure the path based security to protect "read access" prior to start using the repository. Otherwise, the admins must take into account that the users will have to run update operations (without local changes) to propagate the new "read" permission rules to their workspaces and avoid further issues with the fast-update, merge & update-merge operations.
XLinks
XLinks: Partial readonly Xlinks are now available
We finally added support for "partial Xlinks" (readonly) as requested on top User Voice request.
It means that from now on you can Xlink not only to the root of another repo, but also to any path inside, mounting a "subtree" on the parent repo. The reason why "writable partial Xlinks" are not supported yet is because they would overly complicate the merge (what if you have conflicts on parts you are not mounting?).
Remarks:
- At this point you need to use the command line to create Partial Xlinks. GUI support will come soon.
Restrictions:
- This restriction only applies to the Plastic Gluon client. It is not recommended to use the 'partial readonly Xlink' feature in Gluon workspaces where multiple Xlinks pointing to the same repository are loaded. The reason is that Gluon workspaces use a single cache per repository, so if there are multiple Xlinks pointing to the same path with different root paths, it can potentially lead to weird issues.
Gluon
Gluon: Improved 'switch workspace' usability. From now on, when a user switches to a new workspace, other Gluon windows + 'switch workspace' dialog will be closed.
(Nevertheless, this new behavior can be overrided by choosing to keep them open with the new option: 'open workspace in a new window').
We did this due to we had feedback from several users suggesting that having too many open windows wasn't comfortable.
Windows GUI
Windows GUI: The 'merge' view is now automatically closed after a 'merge-to' operation. Also, the dialog to enter comments has been aesthetically improved.
Bug
Cloud
Cloud: The replication operation was being silently canceled on the server side (the client operation finished without errors) when performing big push operations to the cloud server (Example: When the 'introducing data'/'data upload' steps were taking more than an hour). Fixed.
Mac OS GUI
Mac OS GUI: Under uncommon circumstances, MacPlastic GUI didn't show the 'create branch' dialog when the context menu option was clicked. Fixed.
Mac OS GUI
Mac OS GUI: The 'diff' viewer was not refreshed after undoing all changes when there were private files. Fixed.
Mac OS GUI
Mac OS GUI: Sometimes, the application was performing unnecesary server queries in a short period of time to retrieve branch information to be displayed on the 'Workspace Explorer'. Fixed.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Under uncommon circumstances, an 'item already exist' error was thrown when trying to check-in items from 'dynamic pending changes' view. Fixed.
Linux (GTK) GUI
Linux (GTK) GUI: A 'null reference' error was thrown when the 'diff' window was closed when the diffs calculation progress didn't finished. Fixed.
Client core
Client core: All Plastic SCM clients were having trouble on application startup if they had global configuration setup enabled ('plastic-global-config' repo) against a SSL server. Fixed.
Proxy Server Windows Installer
Proxy Server Windows Installer: The Proxy Server service was unable to start due to a missing file. Fixed.
Replication
Replication: 'Push' & 'Pull' operations were failing when the metadata size of a replica was bigger than 2GB. This issue was only affecting to huge replica operations. Nevertheless, the issue is now fixed.
Windows GUI
Windows GUI: SemanticSCM: When diffing a declaration from 'visual diff' feature, the newly created 'diff' window was not focused. So, pressing 'Alt + F4' was closing the 'visual diff' window instead of the 'diff declaration' window. Fixed.
5.4.16.743
New
Merge operation
Merge operation: conflicts detection on merge operation has been improved: Conflicts involving files with no changes were previously handled as automatic merge conflicts during the merge. These conflicts are now discarded on the server, so they will no longer appear in the conflict list.
Bug
Windows GUI
Windows GUI: Sometimes, the 'sync' view replication progress dialog wasn't properly handling 'retry' or 'skip' actions, leading to an infinite number of blocking error messages. Fixed.
Mac OS GUI
Mac OS GUI: 'Diff' viewer: The first difference was not focused after loading differences. Fixed.
Linux (GTK) Mergetool and Mac OS Mergetool
Linux (GTK) Mergetool and Mac OS Mergetool: Unchanged regions were wrongly painted in the textboxes and splitters as if they were a kind of difference. Also, the red color used for the splitter regions with conflicts was not correct. This bug, which happens since 5.4.16.742, has been fixed.
Visual Studio plugin
Visual Studio plugin: When moving or dragging & dropping a changed file in the 'Pending changes' view, the file was accidentally opened. Fixed: the sensitivity of the drag & drop has been decreased (now there is a 15px threshold) to prevent such mistakes.
This closes a User Voice request.
5.4.16.742
New
Windows GUI
Windows GUI: New 'Show in Branch Explorer' context menu option has been added in 'Branches', 'Changesets' and 'Labels' view. This action shows the selected branch, changeset or label in the 'Branch Explorer', scrolling to it directly (unless the object is not shown due to the current 'Display options' settings, such as date filter).
This closes a User Voice request.
FMOD Studio plugin
FMOD Studio plugin: The FMOD Studio plugin is now compatible with version 1.07 and higher. Two script files are now needed to enable Plastic SCM inside FMOD Studio: PlasticSCM.sc.js and PlasticSCM.js.
Warning! The previous 1.06 plugin script is not compatible with FMOD Studio 1.07 and higher. Please make sure you're using the appropriate scripts for your FMOD Studio version.
Gluon
Gluon: Added a new option to add files to the 'ignored list' both in 'pending changes' and 'explore workspace' views.
Windows GUI
Windows GUI: New 'owner' field added to 'Explore changesets on this branch'.
This closes a User Voice request.
From now on, all filter configuration files ('ign…
From now on, all filter configuration files ('ignore.conf', 'hidden_changes.conf', 'cloaked.conf', etc.) will check the global config as well as current workspace config and local client config files. A 'workspacetree' directory will be expected for each configured repository. Users/admins can store their config files inside it.
For instance, you can configure your 'plastic-global-config' repository to store a global cloaked configuration for all its repositories:
/allrepos/workspacetree/cloaked.conf
This closes a User Voice request.
REMARK: Starting from release 5.4.16.760, the preferred location for these files is the corresponding workspace directory, not 'workspacetree' folder. (Although 'workspacetree' folder will be still supported for backwards compatibility reasons).
Windows Mergetool
Windows Mergetool: Usability improvements
-
Diff/Merge: The deleted regions are now represented in the editors.
-
Merge: Improved solved/unsolved conflicts visualization. When the conflict is pending to solve, a red line around the conflict is displayed. Once the conflict is solved, the line turns to green color. The border line is also visible in the result textbox.
-
Merge: Added a new option in the editor options menu to allow the user to view border lines for unselected regions.
Bug
Windows Mergetool
Windows Mergetool: When using the mergetool to diff two files semantically, the diff options panel, in the lower right, was not being displayed correctly. Fixed.
This closes a support ticket.
Windows GUI
Windows GUI: Some views didn't remember user selection after refreshing the view (such as 'changesets', 'labels', 'attributes', 'shelves', 'code reviews' and 'attributes'). Fixed.
This closes a User Voice request.
Windows GUI
Windows GUI: Fixed an error that was happening after creating a repository from a 'Select Repository' dialog invoked from a 'Create Workspace' dialog.
Windows GUI
Windows GUI: The 'Select Repository' dialog wasn't being refreshed after repository creation. Fixed.
Windows GUI
Windows GUI: SemanticSCM: When clicking in the 'diff' action from the visual diff dialog, the diff window appeared hidden in background. Fixed.
5.4.16.740
New
Gluon
Gluon: directory sizes are now displayed on 'Workspace explorer' view. A new option has been added to the workspace explorer view menu which allows to include / exclude private items when calculating directory sizes.
Remarks: If private items are excluded, the size of the private files will still appear in the workspace explorer view. However, the private directory sizes will not be calculated and all private items will be discarded when calculating non-private directory sizes.
Server - User Authentication
Server - User Authentication: From now on, servers configured to use Active Directory or LDAP authentication will show more descriptive errors if a user cannot be translated during a push/pull operation due to unexpected Active Directory or LDAP server errors.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Several usability improvements regarding item selection in views have been made:
-
The 'Pending changes' view now keeps the previous row selection after refreshing the view.
-
'Repositories', 'Workspaces', 'Branches', 'Labels', 'Pending changes', 'Shelves' views now keep the selection after delete/undo operations.
Bug
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Deleting a file/directory from the command line while Plastic SCM client GUI application is running were causing certain view drawing errors. Fixed.
5.4.16.739
New
GitServer is out! The Plastic SCM server can now…
GitServer is out! The Plastic SCM server can now be configured to work as a Git server and attend push/pull operations directly from Git clients.
It means that you can use the Plastic SCM server as the central server for teams with mixed Plastic and Git users.
But even more important: GitServer works as a universal connector so that any Git compatible tool can now be connected to Plastic. Consider Continuous Integration software, code analysis, DevOps, and so on.
Learn more about GitServer here.
Issue trackers
Issue trackers: Included support for multiples repositories for Polarion ALM issue tracker extension. Now it is possible to configure this feature by unchecking the 'Default Repository' checkbox from the 'Preferences' > 'Issue Trackers' dialog.
Issue trackers
Issue trackers: Polarion ALM extension is now bundled with Linux (GTK) GUI.
Labels
Labels: Plastic SCM now allows label names to have slash ('/') characters.
Windows GUI
Windows GUI: The 'Update operation report' dialog now shows workspace-relative paths instead of absolute paths.
Windows GUI
Windows GUI: new 'Save as...' option in the 'Browse repository' window, so you can now save to disk file revisions while browsing a branch or changeset.
Proxy server
Proxy server: A whitelist feature has been implemented to automatically accept remote SSL certificates. To do so, create a file named in the proxy server binaries directory. Each line should contain a single hostname. Empty lines and lines starting with the '#' character will be ignored.
plasticcached.trustedservers.confExample:
productionserver.mydomain.compre.productionserver.mydomain.com#currently non-trusted servers:#dev.mydomain.com
Mergetool
Mergetool: New conflict resolution actions implemented for Linux, Mac and Windows mergetools:
-
Keep source contributor & exit -> selects the complete source contents as the merge result.
-
Keep base contributor & exit -> selects the complete base contents as the merge result.
-
Keep destination contributor & exit -> selects the complete destinaion contents as the merge result.
In Windows mergetool, this feature is available in the 'Save & exit' button.
In Lunux and Mac mergetools, there is a new 'Merge' button in the toolbar to select the desired option, if any.
Linux (GTK) Mergetool
Linux (GTK) Mergetool: improved 'search' feature on diff and merge windows:
-
Pressingkeys after selecting some text automatically fills the 'search' textbox with the selected text, and search matches are highlighted in the target contributor textbox in a single step.
Ctrl + F -
Pressingnavigates to the next match.
Enter -
Tooltips to the 'search' buttons added.
Bug
Mergetool
Mergetool: When merging file contents with no conflicts among them, the conflict resolution panel should not appear. Fixed.
Linux (GTK) Mergetool
Linux (GTK) Mergetool: diff window was unexpectedly increasing its size when opening a 'search' panel. Fixed.
Windows Mergetool
Windows Mergetool: The 'Info about this merge' button was not correctly toggling the 'Info' panel, so it was not possible to close it once it was opened. Fixed.
Windows Mergetool
Windows Mergetool: Non-default encodings were not properly detected in the 'Encoding' options menu. Fixed.
Mac OS Mergetool
Mac OS Mergetool: 'Split conflict blocks' menu option fixed. The 'Result' panel was not updated with the expected contents after click on this option.
Mac OS Mergetool
Mac OS Mergetool: Fixed an 'Index out of bounds' error when changing the file encoding to Unicode.
Command line client
Command line client: The 'cm find mv' command was throwing a null exception when it was executed outside a workspace. Fixed.
Windows GUI
Windows GUI: Diff window: The title of the 'Find in files' feature in the diff window was unreadable. Also, it was hard to distinguish the 'Find matches in ...' and 'Look in ...' menu options from the background. Fixed.
Windows GUI
Windows GUI: The progress icon was not being shown in the default theme and 'Montana' themes in certain windows (such as 'Merge' or the 'Branch / changeset diff' window. Fixed.
Issue trackers in Linux (GTK) GUI and Mac OS GUI
Issue trackers in Linux (GTK) GUI and Mac OS GUI: Log checkin info to the issue tracker was not working in 'TaskOnBranch' mode (Bind issues to Plastic branches). Fixed.
Linux (GTK) GUI
Linux (GTK) GUI: Dynamic 'pending changes' view (from the 'items' view window): selecting a moved item caused the changed row for the same item (if exists) to be automatically selected also, which maybe is not the desired behavior for the user. Fixed.
Now, to submit a 'moved + contents changed' item, it is neccesary to select the item in both categories ('Moved' and 'Changed').
5.4.16.738
New
Plastic SCM Cloud Edition release
Plastic SCM Cloud Edition release
Plastic Cloud Edition is the sum of the Plastic SCM software plus a Plastic Cloud server and storage all packaged together in a single pay-as-you-go subscription.
Teams can forget about managing infrastructure and licensing since this is all handled by Plastic Cloud.
Client software and local repositories are installed on the developer's computer, and then they push/pull to the cloud organization (or directly checkin to the cloud using Gluon).
Plastic Cloud Edition is designed with fully distributed teams in mind. Teams that don't want to consider running their own servers, and prefer hosting everything online.
For further info, please visit the Plastic SCM Cloud Edition page.
5.4.16.736
New
Windows GUI
Windows GUI: Now it is possible to diff selected chunks of text. To do that:
-
Select the first text chunk from a 'diff viewer' textbox (pending changes view, diff window, merge window...).
-
Choose 'Add diff selection' option in the context menu.
-
Select another chunk of text and choose 'Diff with previous selection' option in the context menu.
An external diff tool will raise showing the diffs of the selected text chunks.
Gluon
Gluon: Now, a warning message is shown if the communication with the issue tracker system detects an error when submitting the checkin data log.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: New 'Size' column added to the 'History' view. The column is only shown for file revisions.
Mergetool
Mergetool: When the merge window is displayed, the tool now navigates automatically to the first manual confict. If there are no manual conficts, the tool navigates to the first automatic confict, if any.
Mergetool Linux
Mergetool Linux: 'search' feature is now available! Just click on the 'Find...' button located at the toolbar, or press after focusing on any contributor's textbox.
Ctrl + FMac OS GUI
Mac OS GUI: The 'Pending changes' view will now display a side panel to link the new changeset to issue tracker tasks. It is required to have an issue tracker extension configured to 'bind issues to Plastic changesets' mode.
How to configure issue trackers on Linux: There are two options:
-
Using global configuration
-
Manually editing the issue tracker configuration, an example using our internal issue tracking system (please note it will be different for JIRA, but you get the idea)
The config is at
.plastic4/issuetrackers/yourserver_port/allrepos/configfile.confExample:, and the file contents are as follows:
/Users/pablo/.plastic4/issuetrackers/192.168.221.138_6060/allrepos/tts.confWorkingMode=TaskOnChangesetName=TTS host;Value=tts.com;Type=Host;IsGlobal=FalseName=User;Value=pablo;Type=User;IsGlobal=FalseName=Password;Value=|SoC|veryencrypted;Type=Password;IsGlobal=FalseName=Branch prefix;Value=scm;Type=BranchPrefix;IsGlobal=FalseName=View defect URL;Value=http://tts.com/tts/visualize.php?iddefect={0};Type=Text;IsGlobal=False
Finally, you have to edit the file to bind Plastic SCM to the configured issue tracker system. To do that, open the file and add the following contents as an example:
.plastic4/client.conf<Extensions><Extension AssemblyFile="/Applications/macplastic.app/Contents/MonoBundle/extensions/ttsextension/ttsextension.dll" /></Extensions>
Mac OS GUI
Mac OS GUI: The 'Create branch' dialog has been completely refurbished. It offers users the possibility to select a pending task from the configured issue tracker to automatically fill in the branch name and comments text fields. Additionally, a request can be sent to the issue tracker to mark the selected task as 'opened'.
Bug
JIRA extension
JIRA extension: The 'mark task as open in issue tracker' functionality is now compatible with JIRA >= 7.x.
Unity 3D plugin
Unity 3D plugin: Fixed path printing in windows when configuring the working path the first time a project is binded to Plastic SCM as VCS system.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: If Plastic was configured to use an issue tracker extension in 'Task On Changeset' mode, double clicking the tasks list to add a task to the new changeset didn't properly solve JIRA issue IDs. Fixed.
5.4.16.735
New
Linux (GTK) GUI
Linux (GTK) GUI: The 'Pending changes' view will now display a side panel to link the new changeset to issue tracker tasks. It is required to have an issue tracker extension configured to 'bind issues to Plastic changesets' mode.
How to configure issue trackers on Linux: There are two options:
-
Manually editing the issue tracker configuration, an example using our internal issue tracking system (please note it will be different for JIRA, but you get the idea)
The config is at
.plastic4/issuetrackers/yourserver_port/allrepos/configfile.confExample:, and the file contents are as follows:
/home/pablo/.plastic4/issuetrackers/192.168.221.138_6060/allrepos/tts.confWorkingMode=TaskOnChangesetName=TTS host;Value=tts.com;Type=Host;IsGlobal=FalseName=User;Value=pablo;Type=User;IsGlobal=FalseName=Password;Value=|SoC|veryencrypted;Type=Password;IsGlobal=FalseName=Branch prefix;Value=scm;Type=BranchPrefix;IsGlobal=FalseName=View defect URL;Value=http://tts.com/tts/visualize.php?iddefect={0};Type=Text;IsGlobal=False
Finally, you have to edit the file to bind Plastic SCM to the configured issue tracker system. To do that, open the file and add the following contents as an example:
.plastic4/client.conf<Extensions><Extension AssemblyFile="/opt/plasticscm5/client/extensions/ttsextension/ttsextension.dll" /></Extensions>
Linux (GTK) GUI
Linux (GTK) GUI: The 'Create branch' dialog has been completely refurbished. It offers users the possibility to select a pending task from the configured issue tracker to automatically fill in the branch name and comments text fields. Additionally, a request can be sent to the issue tracker to mark the selected task as 'opened' (*).
(*): The 'open task in issue tracker' feature won't work with JIRA versions >= 7.x. This incompatibility will be addressed soon.
5.4.16.734
New
Gluon
Gluon: Now it is possible to create a repository from 'Create new workspace' dialog.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Added 'Create XLink' and 'Edit XLink' context menu options in the items view.
Windows GUI
Windows GUI: Issue tracker task selection dialog before checking-in changes has been visually improved. Also, showed item paths are now workspace-relative paths.
Issue tracker system
Issue tracker system: Issue tracker tasks can now be linked through comment hashtags. Starting the comment with the '#' character followed by the issue key (and optionally followed by a colon) will log the checkin information in the related issue.
REMARK: This feature is only available if an issue tracker extension is configured in 'Bind issues to Plastic Changesets' mode.
Example: If Plastic SCM is configured to use JIRA, this checkin comment:
#TD-136: Added new texture files.
Will automatically add the checkin information to issue 'TD-136'.
Triggers
Triggers: A new variable named is available for the following server triggers: after-mkreview, before-editreview and after-editreview. The variable contains the identifier of the review.
PLASTIC_REVIEW_IDBug
Visual Studio plugin
Visual Studio plugin: 'Options' panel in the 'Branch explorer' view, and 'Properties' panel in other views (such as list of branches, labels, changesets ...) where not properly displayed when using the Visual Studio dark theme. Fixed.
Mac OS Installer
Mac OS Installer: The 'MacPlastic' and 'PlasticSCMServer' installers were not properly saving some configuration files during upgrade. Fixed.
Windows GUI
Windows GUI: Semantic Method History: Selecting any entry on the semantic method history changes list caused an error dialog to appear, leaving the diff control in an inconsistent state. This disturbed the user experience and prevented users from seeing the differences between two method versions. Fixed.
5.4.16.731
New
Gluon
Gluon: Update operation over a directory now recurses into its subdirectories.
Unity 3D plugin
Unity 3D plugin: Improvements in Gluon support from Unity 3D Plugin:
-
Assets VCS status now shows remote status flags, such 'Out of Sync' (there are newer changes in the repository) and 'Deleted remotely'.
-
'Get Latest' context menu option has been implemented in order to allow the user to perform update operation over single assets.
REST API Linux
REST API Linux: The Plastic SCM REST API listener app is now also available on Linux platforms! To start the API listener, type in a console terminal.
plasticapiTo get more info about the REST API, please visit the documentation page.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Now it is possible to resolve multiple conflicts in a row in the 'Merge' view.
(There is also a checkbox to allow the user to apply the same action for the next conflicts to resolve).
Bug
Windows GUI
Windows GUI: Sometimes a 'NullReference' error was displayed in the 'History 2D' view. Now it's fixed.
Windows GUI
Windows GUI: The branch explorer's re-layout mode did not work properly. Branches were not moved when pressing up/down arrow keys. Now it's fixed.
Windows GUI
Windows GUI: If the preference 'Diff and merge -> Close merge view ... when a merge is completed' is enabled, when using the 'Advanced merge - Merge from this branch to...' feature, the GUI failed with a NullReference exception after the merge was fully done. Now it's fixed.
5.4.16.729
New
Unity 3D plugin
Unity 3D plugin: Enhanced Gluon support from Unity 3D Plugin. A new button (named 'Select loaded Assets') is available in Unity's 'Versioning' tab. Clicking this button, the Gluon's 'Configure workspace' view will be show, allowing the user to select Assets to be loaded/unloaded in the workspace.
The Assets selection in Gluon automatically selects Unity's '.meta' files if they exist.
Unity 3D plugin
Unity 3D plugin: The Unity 3D plugin now show progress when downloading incoming changes (update operation).
Windows GUI
Windows GUI: SemanticSCM: Implemented a mechanism to disable Semantic Diff for certain file extensions. A file can be placed inside the Plastic SCM configuration directory: . This file will contain patterns to match the files to diff. Semantic diff will be disabled for files whose path matches any of those patterns.
semanticexcluded.conf%HOMEPATH%/AppData/Local/plastic4Example: Having the following file:
semanticexcluded.conf*.h/src/core
The semantic diff won't be displayed for the following items (server path format):
/lib/headers/core.h/kernel/kernel.h/src/core/main.cpp/src/core/modules/network.c
Pending Changes
Pending Changes: Improved performance when looking for changes (status command) on disk.
Test performed:
Having a workspace with: 330967 files and 800 Folders (60.7 GB)
Before these performance improvements, the find changes operation took 18 seconds.
Before these performance improvements, the find changes operation took 2,7 seconds.
FMOD plugin
FMOD plugin: Greatly improved plugin performance by executing commands in a background shell.
WARNING: requires FMOD Studio version <= 1.06.x
Linux
Linux: The linux packages will now sync the Mono certificates with the machine certificates during the install/upgrade, taking advantage of the command bundled with Mono 4.3.
cert-syncLinux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: When diffing a branch or changeset and there are no diffs to show, an informative message appears on the bottom message panel to inform about this fact.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Added default action for shelves view. When double clicking a shelve, a diff window is launched showing the contents of the shelve.
Bug
Windows GUI
Windows GUI: 'Diff' viewers: Fixed an 'index out of range' exception using the editable diffs in a border-case scenario: Set 'Ignore EOL and whitespaces' comparison method option and then remove a difference in the last line of the file.
Windows GUI
Windows GUI: The tab order in the 'Diff and merge' preferences page was incorrect. Now it's fixed.
Unity 3D plugin
Unity 3D plugin: Fixed a 'client authentication mode mismatch' exception during the check-in operation from a workspace that points to a different server than the one configured in the file.
client.confGluon
Gluon: The main window cannot be resized beyond the screen size. Now it's fixed.
Gluon
Gluon: The theme color of the workspace explorer's 'items' tree was not properly restored after entering in 'Configure workspace' mode and come back to the workspace explorer. Fixed.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: The cloud encryption dialog was not appearing in the replication operation. Fixed.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: The 'items' view was throwing an error when there was an unresolved xlink in the workspace. Fixed.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Several aesthetic improvements
Several aesthetic improvements have been made:
-
Missing 'Shelve' icon in the 'Shelves' view has been fixed.
-
Info displayed in the 'About' dialog has been updated.
-
Added task bar icons.
Linux (GTK) GUI
Linux (GTK) GUI: Under some circumstances, an 'argument is out of range' exception is thrown when the user changes the selection in the 'Pending changes' view. Fixed.
Mac OS GUI
Mac OS GUI: The 'Diff' viewer was not properly refreshed after undoing or checking-in all the changes in the pending changes view. Fixed.
Mac OS GUI
Mac OS GUI: Fixed wrapped lines containing tabs in the 'Diff' and 'Merge' viewers.
Linux (GTK) and Mac OS mergetools
Linux (GTK) and Mac OS mergetools: when toggling contributors on automatic conflicts, a wrong information was displayed in the conflict resolution panel. It showed that the current conflict was 'non automatic' when it was resolved by the user indeed. Fixed.
Linux (GTK) mergetool
Linux (GTK) mergetool: Several aesthetic improvements
Several aesthetic improvements have been made:
-
Fixed file names padding on diff viewer.
-
Hide notification message bar when the diff tool is launched.
Visual Studio plugin
Visual Studio plugin: using the dark theme, the 'Differences' textbox couldn't be read because of an inaccurate foreground color. Fixed.
Polarion plugin
Polarion plugin: Unable to list newly created changesets after a 'delete changeset' operation. Fixed.
5.4.16.726
New
Linux
Linux: Upgrade to Mono 4.3. Starting on release 5.4.16.726 all the Plastic SCM packages for Linux distros depend on our build of Mono 4.3.
For months we relied on Mono 3.x, but after detecting stability issues on some distros (specially OpenSUSE 13.2) leading to crashes, we decided to upgrade. The key issue was related to a given zlib packaged on some distros forcing a strange crash on the GTK GUI.
We've tested 4.3 for months and it probed to work fine on the scenarios that used to crash. That's why now we decided to upgrade all Linux packages to depend on our own Mono 4.3 custom build.
(Compiled Mono Source changeset: )
https://github.com/mono/mono;b6dfce621f70115cd16e75a743cbbdee5ac6610eWindows GUI
Windows GUI: Added a preference to automatically close the 'merge' view and open the 'pending changes' view after processing a merge.
This feature was an User Voice request finally implemented.
Visual Studio
Visual Studio: New plugin available to show current workspace selector info inside Visual Studio window title.
More info and Source code.
Bug
Windows GUI
Windows GUI: The 'Issue tracking' tab on the Preferences dialog wasn't saving some fields after modifying them. Fixed.
Mac OS GUI
Mac OS GUI: Fixed some navigation and scroll issues in the 'diff' viewer:
-
The 'diff' viewer did not navigate to the last line properly.
-
The 'current difference' was not properly highlighted when after loading the contents for the first time, or after changing the comparison method.
-
The 'diff count' labels were not being displayed correctly when the numbers have more than a digit.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: 'Branch explorer' view: When a workspace was not up-to-date, the branch explorer did not display any changeset because the scroll was not correctly set. Now, when this scenario is detected, the scroll is moved to make the last changeset visible.
ReviewBoard plugin adapted to correctly parse the…
ReviewBoard plugin adapted to correctly parse the 'cm lrep' command output.
5.4.16.725
New
Gluon
Gluon: The context menu 'Add directory tree to source control' was disabled for controlled items when right clicking on a controlled item. Now it's enabled (it adds all private items under the selected item to the source control).
Server
Server: performance improvements to support thousands of repositories on a single server:
-
When a new user is used or an existing user membership was changed, certain unrelated security info was recalculated when it wasn't neccesary. From now on, only the related security info is updated.
-
The load of active/inactive users only happens on startup now.
-
ActivityScheduler thread was locking the task list on execution. It could end up delaying system initialization if repositories failed to be upgraded. Not a big deal, but fixed.
-
The ACLs for all repositories are now loaded on server startup instead of on demand.
Server
Server: Added a new flag to config file to disable database upgrades: . It must be set as true on server.conf.
server.confDatabaseUpgradeDisabledHandle it with care! It must be removed when installing a new Plastic SCM server release. Contact the support team if you need to use it.
Bug
Linux GUI (GTK)
Linux GUI (GTK): Several issues have been fixed on the 'diff' viewer:
-
'Null reference' error was shown when closing the diff window before completing the diff calculations.
-
'Collection was modified; enumeration operation may not execute' error was shown sometimes when closing the diff window.
-
The diff search layout was broken when entering text on the search box or resizing the window.
5.4.16.724
New
Windows GUI
Windows GUI: Branch Explorer: Now it is possible to enable/disable format rules, inclusion and exclusion rules and reorder format rules.
To enable/disable a specific rule, go to the 'Filters and conditional format' tab in the 'Branch Explorer' options and just click on the checkbox located on the rule definition. Don't forget to click the 'Apply' button afterwards.
To reorder a format rule, use the button in the rule to move it up. Rules are evaluated from top to bottom order. It means, if a branch or changeset matches more than a rule, the first matching rule is applied, discarding the others.
Linux GUI (GTK)
Linux GUI (GTK): The diff tree view and the sync view tree menus now include keyboard shortcuts.
Linux GUI (GTK) and Mac GUI
Linux GUI (GTK) and Mac GUI: New informative messages added to the diff viewer: 'identical revisions', 'filesystem permissions changed' and 'encoding changed'.
Mac MergeTool
Mac MergeTool: A new options menu button has been added to select 'encoding', 'comparison method' and 'split conflict blocks'.
Mac MergeTool
Mac MergeTool: Now it is possible to diff just two text files. To launch a diff just run the mergetool application using the and parameters to define the left and right contents to be diffed.
-s=<path_to_left_file>-d=<path_to_right_file>The MacMergetool is now also available as a default diff tool for text files in MacPlastic preferences.
Eclipse plugin
Eclipse plugin: The eclipse plugin can now can import projects from a PSF file with CVS format. To use this feature, go to the 'Package explorer' and choose 'Import' -> 'Plastic SCM' -> 'Projects from a CVS team project set file'.
Bug
Server
Server: running on Mono 4.3 had some issues stopping on several Linux distros. The threadpool failed to finish correctly, raising an exception which prevented network thread and open connections to be closed. This caused the server process to remain alive even when it was asked to stop. This made upgrades end up not updating binaries correctly. It should be fixed now.
plasticdGluon
Gluon: If the workspace explorer was configured to show items as a list, items appeared as 'not on disk' (with a red icon) after restarting the app. Now it's fixed.
Eclipse plugin
Eclipse plugin: The diff viewer was throwing an error (NullReferenceException) when the diffs set had a xlink. Fixed.
Cloud
Cloud: The push operation with more than 50 labels or branches in the replication package threw an 'object reference not set' exception. Fixed.
Cloud
Cloud: Edit lock rules are failing on organizations with capital letters. Fixed.
5.4.16.721
New
Linux GUI (GTK)
Linux GUI (GTK): Now, the 'pending changes' view monitors the file system for changes detection, increasing the 'pending changes' calculation performance.
Previously, each time the user asked for 'pending changes', Plastic SCM walked the workspace directory structure looking for changes. Now, Plastic SCM takes advantage of 'INotify' (when available) to do that.
Although the workspace directory structure is walked the first time the user requests showing the 'pending changes', the next requests will only check the notified 'dirty' directories. As a result, the 'pending changes' calculation will be much faster!
Important remarks:
-
This functionality is not compatible with shared workspaces (changes done from a remote machine will not be detected).
-
'INotify' requires a 'watch handle' to be set for each directory in the workspace. Unfortunately, the default limit of watch handles (8192) may not be enough for reasonably sized workspaces, and reaching the limit will force Plastic SCM to disable the usage of this new improvement. So, it is recommended to increase the 'watches' limit to a higher value (e.g. 32768). To do that in Debian, RedHat or SuSE distros, run the following command in a terminal (root privileges required):
echo fs.inotify.max_user_watches= 32768 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
If you are running ArchLinux distros, run the following command instead:
echo fs.inotify.max_user_watches= 32768 | sudo tee /etc/sysctl.d/40-max-user-wa
- To force disabling this new feature, add the following line in the Plastic SCM's 'client.conf' config file:
<WatcherEnabled>no</WatcherEnabled>
Gluon
Gluon: Now, private items can be hidden in the 'Explore workspace' view using the context menu option 'Hide private items'.
Gluon CLI (cm partial
)
cm partialGluon CLI (): Now, only the new loaded paths specified by command are downloaded but not any other new content inside a 'fully checked' directory.
cm partialcm partial configure(Previously, the new contents inside 'fully checked' directories were always downloaded).
Windows GUI
Windows GUI: 'Add to ignore list' dialog now allows to edit rules before saving them. This option is also available for cloacked elements.
For further info about configuring ignored items, please visit our blog.
Bug
Gluon
Gluon: Trying to add + checkin files to a new repository using Gluon, failed with the following error: 'The operation can't be performed in standard workspaces'. Now it's fixed.
Cloud
Cloud: The exclusive checkout rules were not working for submodules. They were wrongly stored on their parent repositories. Fixed.
5.4.16.719
New
TeamCity plugin
TeamCity plugin: The agent's workspaces are now created in the standard build directory instead of placing them inside subdirectories.
Gluon
Gluon: From now on, the workspace path textbox in the configuration window () will be autocompleted using the selected repository name.
gluon.exe --configureGluon
Gluon: Connections to remote, non profiled servers are now supported. Gluon will prompt users for the remote server credentials if needed.
Gluon
Gluon: SSL certificates from Plastic SCM servers can now be accepted.
Linux GUI (GTK) and Mac OS GUI
Linux GUI (GTK) and Mac OS GUI: A new option has been added to the 'pending changes' view in order to enable/disable notifications of newer changes in the current working branch, and optionally apply those newer changes in the workspace.
Bug
MergeTool Windows
MergeTool Windows: Fixed an out of range exception when enabling the 'Ignore EOL and whitespaces' option.
MergeTool Windows
MergeTool Windows: Fixed an out of range exception using the XMerge feature when the replaced selection was at the end of the file.
Client core
Client core: After applying newer changes from the repository from the current working branch in the workspace (a.k.a. update-merge), and the workspace revision of an item had the same content than the server revision recently applied, the workspace revision metadata was not properly updated. As a result, when a further change in that item is about to be checked-in, the checkin operation will fail with a 'The parent revision of the item X is inconsistent with the loaded one in the changeset…' error. Fixed.
MergeTool Windows
MergeTool Windows: Fixed an 'ArgumentOutOfRangeException' using the XMerge feature when the replaced selection was at the end of the file.
5.0.44.767
Bug
Fixed an issue in protocol auto-detection that en…
Fixed an issue in protocol auto-detection that ended up in a hanged server combined with clients having wrong LDAP passwords massively.
5.0.44.764
New
Plastic network protocol
Plastic network protocol
This new release of Plastic SCM 5.0 adds official support for the new 'Plastic network protocol' (a.k.a. 'plasticproto').
In short, this release makes 5.0 clients compatible with 5.4 servers.
Plastic SCM 5.0 clients upgraded to BL764 will be compatible with 5.4.16.765 servers and later.
The 5.0 client automatically detects the protocol supported by the server. It tries to connect using 'plasticproto' first, and if it fails it falls back to remoting.
The main features of plasticproto are:
-
Improved API compatibility. Our intention from now on is to keep all clients and servers compatible (from this release onwards). It means we get rid of breaking compatibility on major releases as we did in the past. All of this will greatly simplify deployment, especially on big teams. Users will be able to upgrade to a newer major release even if not the team members upgrade at the same time. Compatibility checks now happen on a per method basis. Methods can be versioned independently, which helps us evolving the API faster while not forcing all users to upgrade.
-
Reduced call overhead: the protocol is much more compact than before, because it is lower level and designed ad-hoc for Plastic. As an example: a simple "cm lrep" request (just the request, not including the answer) was about 400 bytes before. Now it is about 50 bytes when a new socket connection is opened, and only 2 bytes if a connection is reused.
-
Increased portability. The new plasticproto makes it simpler to port to new frameworks like .NET Core and implement native clients on mobile devices. This is because it doesn't rely on complex RPC like before, but just on plain sockets.
-
Better performance: the lighter API helps during both performance and scalability tests. While the initial version is not dramatically faster than the older on LAN, the plan is to use it to greatly improve data transfer.
A little bit of history:
-
For years, communications between Plastic client and servers (including communications between servers) happened through .NET/Mono Remoting.
-
In fact, it was a heavily customized remoting layer, improved for scalability, performance, memory reduction and faster serialization, among others.
-
It allowed us to run circles around other version controls (more here) but it had issues regarding major version compatibility.
-
We had to freeze the API to keep it compatible, and per-method versioning was not easily doable.
How to enable plasticproto:
Simply install a new 5.4 server on release 5.4.16.765 and you will see how you can cleanly connect from a 5.0.44.764 client in 5.0.
Remarks: 5.0 clients do NOT need file unlike 5.4 clients.
plasticpipeprotocol.conf