Documentation

Unity Version Control

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

Note
Public | 2016-12-22

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

Note
Public | 2016-12-20

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

Note
Public | 2016-12-14

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

Note
Public | 2016-12-09

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
C:\Users\your-user-name\AppData\Local\plastic4
) or alternatively in the same directory as the executable, and it has to contain three key-value pairs:
  • server
    : the target CodeCollaborator URI
  • login
    : the user name to be used to authenticate
  • password
    : the password to be used to authenticate
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

Note
Public | 2016-12-02

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

Note
Public | 2016-11-30

New

Server

Server: Now it is possible to customize ldap requests timeout. To do that, add a new entry in the
server.conf
file as follows:
<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

Note
Public | 2016-11-28

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
plastic --configure
(Windows),
macplastic --configure
(Mac OS) or
gtkplastic --configure
(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.
Since 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
    plasticdrive.conf
    .Example of
    plasticdrive.conf
    file contents:
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

Note
Public | 2016-11-18

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
cm changeset
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:
cm changeset move
and
cm changeset remove
.
  • cm changeset remove <changeset-spec>
    deletes a changeset from the repository. Please have in mind that the target changeset must fulfill some requirements. See command help (
    cm changeset remove --help
    ) for further detail.
  • cm changeset move <changeset-spec> <branch-spec>
    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 --help
    ) for further detail.
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

Note
Public | 2016-11-14

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

Note
Public | 2016-11-04

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:
  1. Select the first text chunk from a 'diff viewer' textbox (pending changes view, diff window, merge window...).
  2. Choose 'Add diff selection' option in the context menu.
  3. 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
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

Note
Public | 2016-10-26

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

Note
Private | 2016-10-25

New

Fifth internal release with Jet backend (filesyst…

Fifth internal release with Jet backend (filesystem-based backend)

5.4.16.787

Note
Public | 2016-10-19

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
client.conf
file. By default a single reader is used. For example: to use 5 readers, add the following entry in the
client.conf
file:
<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
cm sync p4
from losing the status of last synced changeset in case the sync process is abruptly stopped (
Ctrl + C
is issued, power failure, etc.).

Bug

P4 sync

P4 sync: Upgraded P4 API used by
cm sync p4
command. With this new API version, the number of TCP connections to P4 server decreases massively.
New 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

Note
Public | 2016-10-08

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

Note
Private | 2016-10-07

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

Note
Public | 2016-10-05

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, tif
The 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:
macmergetool
app shortcut will be added to
/usr/local/bin
. This way, macmergetool is likely to be included in the default $PATH environment variable.

Bug

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
macmergetool
parameters configured by default on fresh installs where wrong, resulting in a 'Invalid length' error when diffing two revisions. Fixed.
If 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

Note
Public | 2016-10-03

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
/src/Foo.c
file to
/src/foo.c
, the configure view would show both items:
/ /src /src/Foo.c /src/foo.c
Now, a single entry for the
foo.c
item will be shown. Furthermore, the update operation will correctly perform the update from
/src/Foo.c
to
/src/foo.c
.

Gluon

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 renames
    /src/foo.c
    to
    /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
/src
folders won't download newly added items anymore.
Also, before this release, changing any configuration of a not involved item in the move operation, such as
/doc
, the result will be the same:
/src
and its parent folders won't download newly added items anymore.
Now, both scenarios changes their behavior:
/src
and its parents folders will download newly added items after the move operation.

Windows 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

Note
Public | 2016-09-25

New

Server

Server: Now it is possible to override the ACID isolation level setting for the configured database backend through server's
db.conf
config file.
To do that, edit the
db.conf
file and add an entry like this:
<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

Note
Public | 2016-09-22

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
clconfigureclient
and
clconfigureserver
utilities have been made:
  • 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

Note
Public | 2016-09-07

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
"/Users/<the_user_name>/.plastic4/syntaxhighlight/languages.conf"
as follows (example):
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

Note
Public | 2016-08-31

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

Note
Public | 2016-08-12

New

Gluon CLI

Gluon CLI:
cm partial configure
command now accepts a new flag:
--ignorecase
. With this flag, the command ignores casing on specified paths. Example:
  • If the user types the following command:
    cm partial configure --ignorecase +/data/teXtures
    , the command will work for loading
    /Data/Textures
    .

Command Line Interface

Command Line Interface:
cm listlocks
command now accepts a new flag:
--ignorecase
. With this flag, the command ignores casing on serverpath specs. Example:
  • If the user types the following command:
    cm listlocks --ignorecase serverpath:/conFIG/enViRonMENt.cnF#cs:499
    , the command will work for listing locks on
    /Config/Environment.cnf
    , if any. (It is supposed the /Config/Environment.cnf file exists in changeset tree cs:499).

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
Cmd + F
shortcut in the 'Items' view to focus the search textbox.

Linux (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
rm
operation was processed before the
move
, the check in could fail. But now this issue has been fixed.

5.4.16.769

Note
Public | 2016-08-09

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
--ignorefailed
option of the
cm partial checkin
command has been improved.
Setting 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

Note
Public | 2016-08-03

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

Note
Public | 2016-07-22

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

Note
Public | 2016-07-15

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
plasticpipeprotocol.conf
must be created (details below).
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:
  • The 5.4 client and server will still default to "remoting" protocol except if file named
    plasticpipeprotocol.conf
    is 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).
  • 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 following
    plasticpipeprotocol.conf
    file will do:
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

Note
Public | 2016-07-11

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
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

Note
Public | 2016-07-05

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

Note
Public | 2016-06-24

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
cm xlink
command, the xlink's default expansion rule is not created, causing an exception when editing the target changeset using the GUI. Fixed.

Linux (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
cm undelete
command stopped supporting revision specs by revision id (Example:
revid:745
). Now it's supported again.

5.4.16.756

Note
Public | 2016-06-14

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 (
foo.c
), the additional move (
bar.c
) was wrongly removed from the pending changes list. Fixed.

Linux (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

Note
Public | 2016-06-02

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
--bypassmetadatatocomment
is passed as argument to the
cm sync
command in order to write username and date on p4 changelist comments instead of their metadata fields).

Windows Mergetool

Windows Mergetool: Fixed a localization issue in the mergetool options menu.

5.4.16.750

Note
Public | 2016-05-18

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
info@codicesoftware.com
for further info.

Security

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
)

Users management server tool (A.K.A.
umtoolgui
): The user name textbox was not filled on the 'Reset Password' dialog. Fixed.

Gluon

Gluon: Sometimes, Plastic Gluon gets stucked in the 'Loading...' status just after opening the application. Fixed.

5.4.16.749

Note
Public | 2016-05-16

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

Note
Public | 2016-05-09

New

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

Note
Public | 2016-05-05

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

Note
Public | 2016-04-25

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
    /src/subrepo
    => pointing to
    /@cset:1320\@opengl-lib
    . Well, you try to set permissions to
    /src/subrepo
    but they are set to
    /@opengl-lib
    instead, which is not what you really want to achieve. We'll fix it ASAP.
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: 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

Note
Public | 2016-04-14

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

Note
Public | 2016-04-11

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

Note
Public | 2016-04-01

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

Note
Public | 2016-03-30

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
plasticcached.trustedservers.conf
in the proxy server binaries directory. Each line should contain a single hostname. Empty lines and lines starting with the '#' character will be ignored.
Example:
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:
  • Pressing
    Ctrl + F
    keys 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.
  • Pressing
    Enter
    navigates to the next match.
  • 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

Note
Public | 2016-03-23

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

Note
Public | 2016-03-10

New

Windows GUI

Windows GUI: Now it is possible to diff selected chunks of text. To do that:
  1. Select the first text chunk from a 'diff viewer' textbox (pending changes view, diff window, merge window...).
  2. Choose 'Add diff selection' option in the context menu.
  3. 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
Ctrl + F
after focusing on any contributor's textbox.

Mac 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:
  1. 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.conf
Example:
/Users/pablo/.plastic4/issuetrackers/192.168.221.138_6060/allrepos/tts.conf
, and the file contents are as follows:
WorkingMode=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
.plastic4/client.conf
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:
<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

Note
Public | 2016-03-08

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:
  1. 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.conf
Example:
/home/pablo/.plastic4/issuetrackers/192.168.221.138_6060/allrepos/tts.conf
, and the file contents are as follows:
WorkingMode=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
.plastic4/client.conf
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:
<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

Note
Public | 2016-03-03

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
PLASTIC_REVIEW_ID
is available for the following server triggers: after-mkreview, before-editreview and after-editreview. The variable contains the identifier of the review.

Bug

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

Note
Public | 2016-02-23

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
plasticapi
in a console terminal.
To 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

Note
Public | 2016-02-16

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
semanticexcluded.conf
file can be placed inside the Plastic SCM configuration directory:
%HOMEPATH%/AppData/Local/plastic4
. 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.
Example: Having the following
semanticexcluded.conf
file:
*.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
cert-sync
command bundled with Mono 4.3.

Linux (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
client.conf
file.

Gluon

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

Note
Public | 2016-02-09

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;b6dfce621f70115cd16e75a743cbbdee5ac6610e
)

Windows 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.

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

Note
Public | 2016-02-04

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
server.conf
config file to disable database upgrades:
DatabaseUpgradeDisabled
. It must be set as true on server.conf.
Handle 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

Note
Public | 2016-02-02

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
-s=<path_to_left_file>
and
-d=<path_to_right_file>
parameters to define the left and right contents to be diffed.
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:
plasticd
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.

Gluon

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

Note
Public | 2016-01-20

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
)

Gluon CLI (
cm partial
): Now, only the new loaded paths specified by
cm partial configure
command are downloaded but not any other new content inside a 'fully checked' directory.
(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

Note
Public | 2016-01-15

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 (
gluon.exe --configure
) will be autocompleted using the selected repository name.

Gluon

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

Note
Public | 2016-07-28

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

Note
Public | 2016-07-15

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
plasticpipeprotocol.conf
file unlike 5.4 clients.