Documentation

Support

Unity Version Control

5.x release notes

Review release notes for version 5 of Unity Version Control.
Read time 203 minutesLast updated 13 days ago

This document contains all release notes for Unity Version Control major version 5.x, organized from newest to oldest.

5.4.16.918

Bug

Cloud Edition

Cloud Edition: credentials were asked incorrectly during setup. Fixed.

Sync View

Sync View: Under certain circumstances, the sync replication view could fail with the following error: 'An item with the same key has already been added'. This error could happen since 5.4.16.809 on 5.4 versions and since 6.0.16.804 on 6.0 versions. Now it's fixed.

Cloud Server

Cloud Server: When the encryption keys were incorrectly set, the decryption process was failing with the following misleading error message: 'Padding is invalid and cannot be removed'. From now on, a more descriptive message will be shown: 'Data cannot be decrypted, please ensure your encryption key password is correct'.

5.4.16.867

New

Eclipse plugin

Eclipse plugin: Added support to find locally moved, renamed and deleted files. You can find these options by clicking the "options" button in the pending changes view.

Windows GUI

Windows GUI: Added links to the documentation in all views (items, branches, changesets, ...). When you click the "information" button in the toolbar, a new "learn more" links to the online documentation.

Bug

Server

Server: An error message containing "The object is currently locked. Try later." was shown every time two users tried to perform an exclusive checkout on the same branch at the same time. Fixed.

Mac OS GUI

Mac OS GUI: The diff view in the pending changes view was collapsed (not visible) sometimes after closing and reopening the UI. Now it's fixed.

Mac OS GUI

Mac OS GUI: When right clicking an item in any view (items, branches, changesets) the selection did not change. Some users requested to change this behavior. Now, when you right click an item in a view, the selection is changed, and then its context menu is displayed.

5.4.16.814

Bug

Mac OS GUI

Mac OS GUI: Macplastic crashes if the server throws an 'user unknown' exception. Fixed.

5.4.16.809

New

Plastic server can now abort running methods if t…

Plastic server can now abort running methods if the client closed the connection. Suppose the server is running a long method and then the user does
CTRL-C
on the command line and closes the socket. Previously, the method would continue running on the server. Now the server is able to abort the thread running the method.
This improvement is expected to make the server more stable under really heavy load. In the "channelcall" log, the aborted methods are seen as follows:
2016-11-03 17:32:25,004 INFO ChannelCall - protocol:plasticproto recb: 29|rect: 0
|sentb: 0|sendt: 0|queuedt: 0|prt: 5703|th: 12|dest: 0|mt: 0|sert: 0|zip: 0
|cpu: 2921| 127.0.0.1|ExecuteSimpleQuery aborted - client conn closed

Small performance improvements in URL parsing to…

Small performance improvements in URL parsing to avoid doing string operations again and again.

Optimization during connection creation

Optimization during connection creation: now connections are cached by server and not by full url. It means that whether you invoke the "branch handler" or the "item handler" you can still reuse the same connection.

Linux (GTK) GUI

Linux (GTK) GUI: Now, when the user closes the main window, if there is a background operation running (an update, a switch, a merge...) the user will be asked for confirmation, instead of closing the window, effectively canceling the ongoing operation. This matches the Mac OS GUI behavior.

TeamCity plugin

TeamCity plugin: The server-side checkout will now set up a workspace to download the first patch contents.

Bug

TeamCity plugin

TeamCity plugin: The agent-side checkout failed if the previous build had left changed files in the workspace.

Windows GUI

Windows GUI: The 'find in files' search results were not visible in the diff window when the user moved the top splitter before performing the search. Now it's fixed.

Gluon

Gluon: The history view disappeared from the details panel after performing a check-in operation (and then closing the check-in view) from the Workspace Explorer. Now it's fixed.

Linux (GTK) GUI

Linux (GTK) GUI: now, the GUI will not throw an exception if an icon is not found. This can happen if the theme directory is not correctly located.

5.4.16.806

New

The server can now force a given minimum client b…

The server can now force a given minimum client build number, so that sysadmins can better handle upgrades and make sure their users are updated to at least a given build number. The 'server.conf' flag can now be configured not only with "true" and "false" but also with a given build number as follows:
<ForceBuildNumberMatch>800</ForceBuildNumberMatch>
Remark: this check forces both clients and other servers connecting to this one, to be at least upgraded to a given build number.

Plastic Tube Windows GUI improvements

Plastic Tube Windows GUI improvements. Implemented a number of improvements in the Tube GUI:
  • When editing the access to a repo you are sharing with someone, the button to apply changes now says "Apply" instead of "Edit" which was confusing.
  • Each time you share a repo with a new user, or remove a user, or edit his access, the selection of the repo is kept.
  • If a server is not reachable, the process continues. Before it failed, which made it hard to use.
  • Much better progress for remote servers: now the GUI shows which remote server (tube) and repo is accessing, instead of just being silent as before.
  • Now it is easy to see if a remote user is connected or not. Connected users are displayed first and a different icon is used.

Mac OS server

Mac OS server: opening the server application bundle (by double-clicking on its icon or otherwise) will now open a descriptive website detailing the available administration/configuration actions on Mac.

UserVoice

UserVoice: Keyboard shortcuts in the diff viewer don't always work. Now it's fixed.

Bug

Windows GUI

Windows GUI: Diff window: The branch name was overlapping the branch GUID when the name was too long. Fixed.

ImageDiff

ImageDiff: The "differences" button was not correctly enabled sometimes when showing image differences in the pending changes view or the diff view. Fixed.

Linux (GTK) Mergetool

Linux (GTK) Mergetool: Sometimes the application got stuck when exiting. Fixed.

Windows GUI

Windows GUI: Version tree 2D was showing a null reference error when clicking on a branch and the differences panel was visible. Fixed.

Windows GUI

Windows GUI: Fixed an error when launching annotations from the diff viewer.

5.4.16.803

New

TeamCity plugin

TeamCity plugin: The repository revisions needed to build a server-side checkout patch will be retrieved using a single call from now on.

Command line configuration tools

Command line configuration tools: The
clconfigureclient
command line utility can now be used to configure your Plastic SCM client with a Cloud server.

Command Line Interface

Command Line Interface: The
cm cat
command will request revision information in block in a single server-call if revision ID-based specs are provided.

Mac OS GUI

Mac OS GUI: The focus and the scroll position is now kept after checking out, renaming and moving files in the 'Items' view.

Mac OS GUI

Mac OS GUI: Dynamic views sizes (such as 'history', 'shelves', 'changesets',... ) are now preserved among application restarts.

plasticlogstats server utility gets a 'concurrenc…

plasticlogstats server utility gets a 'concurrency' subcommand to calculate the number of concurrent calls inside the server at a given moment. The new command implements an interactive mode that:
  • Allows you to list the call segments with concurrency (periods with 1 or more calls in the server).
  • Sort the segments by max concurrent calls, date, or segment length.
  • Quickly identify slow (>500ms) and super slow (>1sec) calls.
  • Navigate the calls inside each segment.
  • Group the segment by minute and navigate segments in the minute.
Additionally, parsing logs is about 40% faster now, which not only helps with this feature but with regular plasticlogstats sessions.

plasticlogstats is now able to export to XML and…

plasticlogstats is now able to export to XML and CSV for easy Excel analysis of channel call files. Example: grep ChannelCall of several files and analyze them all together:
grep -a -h ChannelCall plastic.debug.log.txt.20161124 plastic.debug.log.txt.20161125 | plasticlogstats.exeexport --csv=201611-analysis.csv

plasticlogstats gains a new 'analyzer' mode. It l…

plasticlogstats gains a new 'analyzer' mode. It lets you easily and quickly analyze ChannelCall logs to find hot spots, slow calls and more. It is a text based GUI, fully interactive, that basically replaces the analysis we used to do with Excel and pivot tables. plasticlogstats uses less RAM and is much, much faster. Features:
  • Group all calls by day.
  • Group by hour.
  • Group by method.
  • See methods inside each group - and regroup from here in days and hours.
It calculates interesting params like average milliseconds per call, which give you a very good understanding of how fast your Plastic SCM server is responding. It also calculates the % of fast (
<500ms
), slow (
500-1000ms
) and super-slow (
>1000ms
) calls.
Just invoke it as follows:
plasticlogstats.exe analyzer --file=allchannelcall.txt

Bug

Eclipse plugin

Eclipse plugin: Sometimes, the content of revisions when diffing two changesets/labels was not correct. Fixed.

TeamCity plugin

TeamCity plugin: the server-side checkout was skipping all xlinked contents in the first build. Fixed.

ImageDiff

ImageDiff: The image diff viewer displayed an incorrect background color in the properties viewer. Now it's fixed.

Mac OS GUI

Mac OS GUI: The 'Branch Explorer' view drawing was incorrect after changing the zoom level. Fixed.

When a Plastic client can't reach a server, it tr…

When a Plastic client can't reach a server, it tries to use the
serveralias.conf
file to connect to an alternative one. But the code handling the "unreachable server" socket error was not correctly considering the "timeout" error. So, if a server IP was no longer reachable (server moved to a different network, for instance) the code was not using the aliases because the timeout was not in the list of errors to trigger the server switch. It is now fixed.

Windows GUI

Windows GUI: When editing differences (pending changes view or diff view), the tab key was not accepted. Now it's fixed.

5.4.16.802

New

Linux packages upgrade to Mono 4.6.2.7

Linux packages upgrade to Mono 4.6.2.7! We have just upgraded our Mono distro to 4.6.2.7. This means both Linux clients and servers benefit from a newer and faster runtime. We have been performing extensive testing of the new 4.6.2.7 after finding a crash with the previous Mono 4.3 under heavy load conditions. We ran load tests on the new 4.6 (100 concurrent clients doing non-stop operations – means way much bigger load than a setup with 1000 developers) and weren’t able to reproduce any crashes. The performance under heavy load is also much better (response times were 10 times faster on average on our load test scenario). We also stress tested the GTK client running for +10 hours non-stop with automated testing (UI automation) and we didn’t find any issues.

5.4.16.801

New

ForceBuildNumberMatch flag in server.conf now mea…

ForceBuildNumberMatch flag in server.conf now means the client build number must be greater or equal than the server. Before it just meant 'equal' but this gives more flexibility to force users to upgrade to newer versions.

5.4.16.800

New

TeamCity plugin

TeamCity plugin: The branch name couldn't be set to a variable because it was required to start with the '/' character. This restriction has been removed. Also, Plastic changesets will be identified just by their changeset ID numbers instead of using a complex string ('cs: (guid:').

Bug

Gluon

Gluon: There was an issue in Gluon preventing users to create repositories on Cloud during the configuration of the tool. Fixed.

5.4.16.799

New

CodeCollaborator

CodeCollaborator: A CLI client to send Plastic SCM differences to CodeCollaborator has been implemented for Windows. It can be found in the Plastic SCM client directory: codecollaboratorclient.exe. Diffs from branches, changesets or changeset intervals can be used. A configuration file named ccollabclient.conf needs to be placed in the regular client configuration directory (typically
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.comlogin=userpassword=mypwd
This file can be created through the 'configure' CLI parameter, which will prompt the user for each of these three values. The password value will be encrypted to prevent it from being stored in plain text. WARNING: There's still a limitation regarding the deleted revision diffs. The diff viewer doesn't display the deleted file contents. We're working to solve that issue as soon as possible. This is the command syntax:
Usage: codecollaboratorclient <brSpec|csetSpec|csetRange> [--title <reviewTitle>] [--id <reviewID>] codecollaboratorclient configure codecollaboratorclient -h|--helpExamples:Create a review of branch /main/task1346 in repository myrep@myserver:8084 : codecollaboratorclient br:/main/task1346@myrep@myserver:8084Create a review of changeset 8947 with title "My review": codecollaboratorclient cs:8947 --title "My Review"Add the difference between changesets (536, 539] to the review with ID 6473: codecollaboratorclient cs:536-cs:539 --id 6473

Bug

Linux (GTK) GUI and Mac OS GUI

Linux (GTK) GUI and Mac OS GUI: under some circumstances, browsing the repository list of a remote repository server could end up mismatching the credentials of the local server, making following operations from the GUI fail until it was manually restarted. Fixed.

Linux (GTK) GUI and Mac OS GUI

Linux (GTK) GUI and Mac OS GUI: The diff on the "Pending changes" view was showing, for certain types of image files, the binary content of the file, instead of the relevant properties of the revisions (changeset, size, created by, and modified date). Fixed.

Linux (GTK) GUI and Mac OS GUI

Linux (GTK) GUI and Mac OS GUI: When there are checked out files in the workspace, the so-called 'checkout changeset' that appears in the 'Branch Explorer' view (the changeset with dotted border and a 'home' icon) was not navigable using the keyboard. Now it's fixed.

Mac OS GUI

Mac OS GUI: the 'Open with...' dialog was not showing up correctly on the newest versions of Mac OS. Fixed.

5.4.16.798

New

Server

Server: The ldap connection is rebooted every 1000 requests to avoid memory leaks of the Novell.Directory.Ldap library.

5.4.16.796

New

Server

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

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

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

New

Gluon

Gluon: The 'Checkin changes' view now shows a warning message when no changeset is created after a check-in operation. This can happen when files are just checked-out and then checked-in without changing their contents.

Bug

Gluon

Gluon: Starting Gluon configuration tool when there is no previous user configuration caused an error when selecting a repository. Fixed.

Gluon

Gluon: An error appeared when adding a file on an empty workspace when the workspace was created from Gluon configuration tool. Fixed.

Gluon

Gluon: Some panels in the details area were hidden when maximizing / restoring the window size. Now all panels have a minimum size. Also, the 'details' panel preserve the proportion.

Windows GUI

Windows GUI: Diff branch/changeset: When clicking the 'analyze refactors' button while a Java file is being loaded in the diff viewer, the following error was shown: 'There was a problem parsing the source file'. Now it's fixed.

Server

Server: If the user authentication method is set to 'LDAP' (Oracle LDAP server) and the LDAP tree is very big, the server could not run certain operations sometimes (cm find, cm lrep, cm mkrep...). Fixed.

5.4.16.791

New

Branch Explorer multi-selection improvements with…

Branch Explorer multi-selection improvements with search. (Applies to Windows, Mac OS X, Linux).
  • Now it is possible to select a changeset, find another one using the search, CTRL-click it and do a "diff selected changesets". It is very useful to diff distant changesets.
  • Multi-selection and search also works for branches.
  • The colors of the selections have been modified so that now it is very clear when you are doing multi-selection (colors are subject to change in coming releases because we are still testing combinations).
Previously it was not possible because selection was lost after searching.

Server

Server: The active/inactive users aren't reloaded each hour anymore, improving performance on servers with huge work load.

Gluon

Gluon: New context menu options in search dialog New options have been added to the context menu of 'search for files' dialog when right-clicking matched items:
  • Checkin
  • Checkout
  • Undo checkout
  • Undo changes
  • Update
  • Open
  • Open with
  • Open in explorer

Linux (GTK) GUI

Linux (GTK) GUI: The size and position of the application windows are now preserved between application restarts (main application window, 'Switch workspace' window and 'Differences' window).

Linux (GTK) GUI and Mac OS GUI

Linux (GTK) GUI and Mac OS GUI: Improved look & feel for several dialogs, adjusting them to an unified style, and reviewed some texts (titles and explanations).

Linux (GTK) GUI and Mac OS GUI

Linux (GTK) GUI and Mac OS GUI: Now it is possible to diff selected chunks of text. To do that:
  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 User voice request: Highlighting of a new line in diffs. Added / deleted lines are now highlighted with a darker color. This way it is easier to distinguish what was really changed, especially for long lines. (Applies to Windows, Mac OS, and Linux GUIs).

Eclipse plugin

Eclipse plugin: Improved overall performance when there is no connection with the Plastic SCM server.

Bug

Server

Server: The replication process was stopped due to a LDAP exception (LOCAL_ERROR) when trying to resolve an user that doesn't exists anymore in the AD server.

Mac OS GUI

Mac OS GUI: The preferences window wasn't being shown in the Cloud Edition. Fixed.

Mac OS GUI and CLI

Linux (GTK) GUI, Mac OS GUI, and Command Line Interface for Linux and Mac OS: some special characters were not supported for file and directory names, resulting on an error when handling them from Plastic SCM. Fixed. Please have in mind that there are some unsupported characters on Windows filesystem that Linux and Mac OS filesystems support, and there could be some files added to Plastic SCM from Linux and Mac that might not be available for Windows workspaces. This is not a Plastic SCM related issue, but the way NTFS and Windows handle paths.

Windows GUI

Windows GUI: The 'comment' field of the changesets on the 'Explore changesets on this branch' window was clipped on its bottom edge. Fixed.

Windows GUI

Windows GUI: The 'help' icon was missing in several views. Fixed.

5.4.16.789

New

Server

Server: The active/inactive users aren't reloaded each hour anymore, improving performance on servers with huge work load.

5.4.16.788

New

Fifth internal release with Jet backend (filesyst…

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

5.4.16.787

New

Command Line Client

Command Line Client: Command line checkin progress has been improved and now a proper ASCII progress bar is displayed.

Checkin operation

Checkin operation: The number of concurrent readers used on the checkin operation can be configured using the 'UploadReadPoolSize' setting in the
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

New

Server

Server: MySQL database connector has been upgraded in order to improve connections handling.

Bug

Error "The channel 'normal' is already registered…

Error "The channel 'normal' is already registered" will no longer happen. Initialization of the remoting layer was not correctly protected and under some circumstances 2 threads could end up initializing it concurrently, leading to this error.

5.4.16.783

New

TeamCity plugin

TeamCity plugin: The TeamCity's Plastic SCM plugin now allows to track & build changes on multiple branches (a.k.a. 'Feature branches').

TeamCity plugin

TeamCity plugin: The 'Configure VCS root' step has been simplified. Instead of requiring a selector, the VCS root will ask for a server, repository and default branch name to track. Also, the 'cm' executable path is no longer required (TeamCity plugin will assume the executable 'cm' is in the PATH environment variable. REMARKS:
  • Existing projects configured with Plastic SCM VCS roots will need to be reconfigured.
  • There's an issue involving the diff of moved + changed files due to limitations on TeamCity API, pending to be adressed.

TeamCity plugin

TeamCity plugin: Server-side workspaces are no longer required. This will improve 'checkout from VCS' step and changes detection performance.

Mac OS GUI

Mac OS GUI: Now, every table on macplastic will save and restore your preferences about column ordering and sizing between application restarts. Also, the position of the splitters on each view are saved and resored between restarts.

Bug

Mac OS GUI

Mac OS GUI: some windows were not correctly remembering their frame (size and position) between application restarts. Fixed. (Note that some windows such as the preferences window, and all of the dialogs, will still appear centered and with their default sizes).

Windows GUI

Windows GUI: The diff window wasn't allowing to edit revision contents on 'text diff' mode when the revision was marked as 'Editable' (it's the same revision as the one loaded in the workspace). Fixed. (Remarks: Edition in 'Semantic diff' mode is still unavailable).

5.4.16.782

New

Windows GUI

Windows GUI: The 'Diff' window, the 'Pending changes' view, and the '2D revision tree' view are now able to show image diffs/contents. The following image formats are supported:
bmp, gif, jpg, jpeg, jpe, jif, jfif, jfi, png, tiff, 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

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

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

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

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

New

Mac OS GUI

Mac OS GUI: Improved look and feel for outline and table views (items, pending changes, branches, labels, etc.). Now, the selected rows are highlighted in white color, so the text is more readable. Also, the icon for the selected row in the left sidebar is highlighted in white color.

Windows GUI

Windows GUI: When launching the 'Diff...' dialog from an item that is not loaded in your current workspace (Example: the 'Diff...' dialog was launched from 'Browse repository on this branch/changeset' view), the 'Second revision' section didn't allow to select any changeset to compare with. Fixed: now you can choose which changesets or branches you'll be diffing.

Bug

Windows GUI

Windows GUI: When the GUI was configured to use a theme different than the 'default' theme, after showing differences for a file that had no changes, a 'Stack overflow' exception appeared. Now it's fixed.

Windows GUI

Windows GUI: Diff navigation keyboard shortcuts (Ctrl+N and Ctrl+M) were broken since version 5.4.16.771. Fixed.

Windows GUI

Windows GUI: Fixed aesthetical issues in 'Create label', 'Update workspace' and 'Switch to label' dialogs.

Windows GUI

Windows GUI: Windows 10 users: The dialog that warns about pending changes on the workspace before a switch operation had the 'Don't ask me again' option hidden. Fixed.

Gluon

Gluon: Fixed aesthetical issues in 'connect to server' dialog: if the server name was very long, the ok/cancel buttons were clipped. Fixed.

Linux (GTK) GUI and Mac OS GUI

Linux (GTK) GUI and Mac OS GUI: 'Branch Explorer' view: When selecting a branch that has sub-branches, and the click was done in the sub-branch area, the branch was not selected. Now it's fixed.

Windows Mergetool

Windows Mergetool: replacing a selection of text on the result box just before a 'deleted' section using paste command instead of keyboard input resulted in a wrong painting of differences. Fixed.

5.4.16.771

New

Gluon CLI

Gluon CLI:
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

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

New

Windows GUI

Windows GUI: Preserve custom Branch Explorer tabs User voice: Re-open custom branch explorers when restarting GUI Now, 'Custom Branch Explorer' tabs are preserved when closing the Plastic SCM GUI.

Checkin

Checkin: The data validation step of the checkin operation has been improved. Now it's much faster than before this release. Tested with 315K items in a SSD disk:
  • Before this release: 45875 ms
  • With this release: 1750 ms

Windows GUI, Linux (GTK) GUI and Mac OS GUI

Windows GUI, Linux (GTK) GUI and Mac OS GUI: Configuration dialogs now shows more user-friendly authentication modes:
* NameWorkingMode -> "User name from the computer"* NameIdWorkingMode -> "Name + user ID"* ADWorkingMode -> "Active Directory"* LDAPWorkingMode -> "LDAP"* UPWorkingMode -> "Built-in user and password"

Bug

Jenkins plugin

Jenkins plugin: The use of relative paths in cm shell commands was causing Jenkins to crash on Mac OS X. The CI system is setting the current directory to invalid (out-of-workspace) paths. Fixed.

Fixed an issue in protocol auto-detection that en…

Fixed an issue in protocol auto-detection that ended up in a hanged server combined with clients having wrong LDAP passwords massively.

5.4.16.766

New

Gluon

Gluon: Added a 'comments' panel below the history panel. This panel will show the comment of the selected revision, or the comment of the loaded revision in the workspace if no revision from the history panel is selected.

Bug

Windows GUI

Windows GUI: The automatic comments were duplicated after closing and reopening the pending changes view. Fixed.

Mac OS GUI

Mac OS GUI: Wrong window title in the configuration window. The title was: 'Welcome to PlasticSCM Cloud Edition' when the installed version wasn't the Cloud Edition at all. Fixed.

Mac OS Server Installer

Mac OS Server Installer: Fresh install from scratch wasn't generating a trial license, causing the server to do not startup automatically. Fixed.

5.4.16.765

New

Plastic network protocol released

Plastic network protocol released This release includes official support for the new 'Plastic network protocol' (a.k.a. 'plasticproto'). The protocol is not yet enabled by default, and to take advantage of it, a file named
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

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 User Voice: preserve pending changes comments when closing the view 'Pending changes' view comments are now remembered when closing/reopening the view.

Windows GUI, Linux (GTK) GUI and Mac OS GUI

Windows GUI, Linux (GTK) GUI and Mac OS GUI: Always display branch comment in Branch Explorer User Voice request: always display branch comment in Branch explorer (not only from issuetracker) The branch info is now displayed as follows in 'branch explorer' diagram:
  • If an issue tracker is configured in "Task on Branch" mode, the associated task info (if any) from the issue tracker is displayed.
  • Otherwise, the branch comment is used to display the branch task info.

Bug

Linux (GTK) GUI

Linux (GTK) GUI: The undo changes operation were wrongly cleaning the checkbox status (checked) of the selected items if the operation was not actually performed (the user refused to confirm it). Fixed.

Linux (GTK) GUI and Mac OS GUI

Linux (GTK) GUI and Mac OS GUI: The locking status was not checked when checking in 'changed' items from the 'Pending Changes View'.

Gluon

Gluon: Update operation from a directory's context menu: If there are fully checked directories to be updated under the selected elements, the new added items were not downloaded to the workspace. Fixed.

5.4.16.761

New

Add operation

Add operation: The 'add' operation has been improved, up to 2x faster than previous release.

Cloud

Cloud: The perfomance of 'differences' operation has been reviewed and improved.

License reload has been improved. Auto-renewal li…

License reload has been improved. Auto-renewal licences installed with token were not reloaded on server startup. It means that if you added 3 users to your Team Edition, you had to wait a few hours for the server to reload the new lic. Now the server detects the change on startup, so a quick server restart will enable the 3 new users to start working.

Linux (GTK) GUI and Mac OS GUI

Linux (GTK) GUI and Mac OS GUI: Added context menu for 'checkout changeset' on 'branch explorer' view (dotted line changesets).

Linux (GTK) GUI and Mac OS GUI

Linux (GTK) GUI and Mac OS GUI: The 'pending changes' view now allows multiple items to be checked/unchecked by clicking one of the checkboxes in the selected rows.

Linux (GTK) GUI

Linux (GTK) GUI: The 'pending changes' view now allows the space bar to be used to activate/deactivate all the checkboxes in the selected rows.

Linux (GTK) GUI

Linux (GTK) GUI: The 'Workspace Explorer' view now allows multiple items to be opened at once by selecting several rows and hitting the 'Enter' key.

Security

Security: Update-merge failed with checkouts (co/add/rm/mv) under a path where the user lost "read" permission. Now the case is better handled and the following error is returned: "The merge cannot be done because some local changes cannot be processed. Most likely, you don't have the proper permissions to make changes in some of the paths involved. Check the server log for more information." Remarks:
  • It happens when you download code to /src/project, and then later the admin revokes access to this directory but you already had checkouts inside.
  • Update-merge happens when you are on a branch, you have checkouts, you update to latest, and your checkouts are simply moved to latest using a merge under the hood.
  • Previously the error message was something like "item 12386 could not be found in the tree. The new tree cannot be built").

Bug

Cloud

Cloud: When a user is member of multiple organizations, the groups membership for that user were wrongly calculated. Fixed.

5.4.16.760

New

Changes in Team Edition and Cloud Edition to simp…

Changes in Team Edition and Cloud Edition to simplify the evaluation process. We have redesigned the initial installation and configuration steps to make it much easier and intuitive for users evaluating Plastic SCM. Changes start in the installer and then continue in the initial tool configuration (server selection, credentials and so on) and finally new dialogs help the user creating a new repo or joining an existing project. Summary of installer changes:
  • Windows Installer: Gluon or Plastic will be started on Windows at the end of the installation, instead of simply finishing and waiting for the user to start the right tool.
  • Windows Installer: initial tool configuration happens with non-elevated user now. During installation you're asked for "elevation" (admin rights on Windows) to be able to copy the files under "Program Files". Once the installation is finished, the elevation is reverted so that initial tool configuration happens on the unprivileged user account and not admin's. This worked fine for user in the admin's group, but not for regular users. We finally got it fixed.
  • Linux: after configuring with gtkplastic running the first time, the tool was closed and you had to rerun. This has been finally fixed so it is much simpler now.
Summary of changes in Cloud Edition:
  • All platforms: Cloud Edition credentials dialog: first time you run Cloud Edition client you are prompted to enter your Plastic Cloud credentials. The dialog has been redesigned to make it simpler.
  • All platforms: Cloud Edition first steps dialog. Once you enter your credentials, you have to create a new workspace, new repo and so on. Now a new dialog helps you doing all that. It is capable of creating a new Cloud project with a local repo to push/pull changes, join an existing one or simply create a workspace (which is the option for users who are already familiar with Plastic and just want to do some quick operation). We made this change after listening to evaluators of Cloud Edition struggling to complete the first steps. The dialog is even capable of creating a new Sync View to synchronize the local and Cloud repos.
Summary of changes in Team Edition:
  • All platforms: Team Edition server configuration dialog: first time you run Team Edition client you have to configure your server and enter your credentials. During evaluations it is very common that users install a server on their own machine. Now the configuration detects it and directly shows the "localhost:8087" as default server. The dialog has been redesigned too in Mac OS X, Linux and Windows.
  • All platforms: Team Edition first steps dialog. Similar to what we did for Cloud Edition. Once you configure your server and enter your credentials, a new dialog guides your steps creating a new "project" (new repo indeed) or joining an existing one, and creating the associated workspace.
General evaluation improvements:
  • Once you start the Plastic GUIs (Windows/Linux/OS X) for the first time, there are a few hint panels explaining what you can do. It will not be useful for experts, obviously, but we think it can save newcomers a lot of time.
General Cloud improvements:
  • We have created a new Cloud view. It is just a "repositories view", connected to Plastic Cloud. For Cloud Edition users it will simply list the repos on their cloud organization. For Team Edition users, it will show them that Cloud is there to help, and of course will show the repos in their Cloud organization as soon as they get one. The operations here were all previously doable from the regular "repositories view", but introducing this Cloud button on the GUIs we think we make it much more obvious to use, more visible and easy.
  • New "create sync view" option has been added to the "repositories view" and the new "Cloud view". We just make it easier to create a sync view to synchronize a pair of repos (local and Cloud).

Linux (GTK) GUI and Mac OS GUI

Linux (GTK) GUI and Mac OS GUI: Allow undo unchanged User Voice: 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 User voice: add checkin to a new branch to MacPlastic and GtkPlastic 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

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

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

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

New

Server

Server: Introduced a new configuration setting in server.conf to be able to finely tune the different buffer pools used by the server. The new setting has the following format:
<BufferPoolSizes>DataPacketBufferPool=10;DataPacketPool=20;TreeBufferPool=5</BufferPoolSizes>
It is helpful on multi-core servers under heavy load to reduce contention and make better use of the underlying CPU power. This way you can avoid cores to lock waiting on an available buffer, at the expense of consuming more memory. Buffer pools are used to avoid unwanted memory allocations to manage data to be serialized and sent to the client. Continuously allocating and freeing memory is bad in terms of performance and overall memory usage. If your server is under heavy load (teams with hundreds of developers) and you think you can benefit from this setting, please contact us first so we can help you optimize the server. The goal is to create a comprehensive server tuning guide, but it is not yet there at this point.

Linux (GTK) GUI and Mac OS GUI

Linux (GTK) GUI and Mac OS GUI: Now it is possible to cancel a 'process all merges' ongoing operation.

Linux (GTK) GUI and Mac OS GUI

Linux (GTK) GUI and Mac OS GUI: When 'macplastic' or 'gtkplastic' applications were launched with the '--configure' option and the client configuration file didn't exist, a warning message appeared instead of opening the configuration window. Fixed.

Update operation

Update operation: Now, the 'fast-update' feature is able to load an added xlink under an added directory.

Bug

Server

Server: Fixed an issue that was able to crash a server when dealing with socket disconnections. It was very unlikely to happen (only seen it twice in a Linux server, never in all other installations). The address of the client was tried to be retrieved when the socket was no longer connected, raising an unhandled exception. Fixed now.

5.4.16.748

New

XLinks

XLinks: Added support to allow repositories containing Xlinks to be Xlinked multiple times from a single separate repository. IMPORTANT REMARKS: The following scenarios are not allowed while upgrading to this version:
  • Merges in progress or pending to checkin: Please finish any merge in progress and checkin/undo its changes before upgrading.
  • User-defined changelists with pending changes inside an xlinked repository.
  • Please move all pending changes inside user-defined changelist to the default changelist, or checkin/undo them before upgrading.
  • Tranformer rules: Please undo any transformer rules in your workspace (or remove the workspace entirely) before upgrading.

Bug

Windows GUI

Windows GUI: 'Branches' view on tree mode was not properly showing the results when using a custom query. If parent branches of those that really match with the query aren't included in the result set of the query, the matched branches won't be shown. Fixed: now, several subtrees with all the expected branches are built and the expected branches are shown on the result view.

5.4.16.747

New

Security

Security: The performance of the secured path permissions check has been improved by 80% for big trees ( > 700K items).

Linux (GTK) GUI and Mac OS GUI

Linux (GTK) GUI and Mac OS GUI: Now, you can merge a selection of files in the Merge view, instead of having to process all merges at once.

Jenkins CI plugin

Jenkins CI plugin: Updated to version 2.5. The workspace issue in cross-platform setups (workspaces were being always removed before build, regardless of the "Use update" option value) has been fixed.

Bamboo plugin

Bamboo plugin: Added compatibility with Bamboo 5.10. Warning! The Bamboo Plastic SCM plugin is now incompatible with Bamboo versions 3.x and older.

Bug

Sync View

Sync View: Very rarely the Sync View failed with a "Binary Stream '0'" error. If you were unlucky enough to see one of these, don't worry, you are safe now. It was a very rare bug, hard to reproduce, that almost nobody suffered. It has been fixed thanks to Unai Landa from Digital Legends ;-). The wild and crazy bug has been around for about 7 years and it was a problem in the network layer. The server zips every response sent back to the client. When the compression didn't succeed (very rare) the client was eating some header bytes incorrectly, expecting compression to happen. Then the error showed up. Fortunately, it has been caught and jailed.

5.4.16.746

New

Security

Security: Now it is possible to restrict "read" access to certain paths so that some parts of the repository are not visible to certain users. It is useful in centralized setups where sensitive areas of the project must be protected in such a way they can't even be seen by some project members. The way to secure the paths is very easy: just deny or remove the "read" permission for certain paths (what we know as "secured paths" internally). This way the users without effective "read" permissions won't be able to download (doing update) these secured paths. These paths won't be visible in diffs or merges either. What happens during merge? If a user needs to merge a branch and there are changes in a path he can't "read", the merge will fail notifying that the merge can't proceed due to security restrictions. Note about effective permissions: remember that permissions on paths inherit from repository permissions and can be applied to all branches or a subset of branches. Most relevant behavior changes:
  • The update operation will not download files and directories where the user doesn't have "read" permission.
  • The diff operation will filter out the differences. If the source of the diff can't be seen, the diff won't be visible. (Remember there is always a "src" and "dst" on diffs).
  • The merge is rejected if the user doesn't have "read" permission for any change in the source contributor.
Current known "issues": There are some issues that will be fixed in the upcoming releases, but they are present in the current version:
  • If the user doesn't have "read" permission for the root item, any try to update or view the repository content will end up in a "null exception". This is an ugly one that will be fixed soon, but it doesn't make sense to remove root "read" permission (it is better to deny access to the repo).
  • The update-merge (you know, when you are on a branch, you have checkouts, you update to latest, and your checkout is simply moved to latest using a merge under the hood) will fail with a weird message if there is a local change (co/add/rm/mv) under a location where the user doesn't have "read" permission anymore (you had permissions, you downloaded the content, and then someone remove access to this path). The message will be something as follows: "item 12386 could not be found in the tree. The new tree cannot be built". While the error is ugly, we consider it will be an uncommon case, so we decided to release and fix the issue later.
  • When you configure path permissions for an Xlink directory entry, the permissions are applied to the root path of the Xlinked repository instead of the specified path in the parent repository, which will lead to the same issues defined in the first 'known issues' point. This is something we need to get fixed soon. Example: you have
    /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

XLinks: Partial readonly Xlinks are now available We finally added support for "partial Xlinks" (readonly) as requested on top User Voice request. It means that from now on you can Xlink not only to the root of another repo, but also to any path inside, mounting a "subtree" on the parent repo. The reason why "writable partial Xlinks" are not supported yet is because they would overly complicate the merge (what if you have conflicts on parts you are not mounting?). Remarks:
  • At this point you need to use the command line to create Partial Xlinks. GUI support will come soon.
Restrictions:
  • This restriction only applies to the Plastic Gluon client. It is not recommended to use the 'partial readonly Xlink' feature in Gluon workspaces where multiple Xlinks pointing to the same repository are loaded. The reason is that Gluon workspaces use a single cache per repository, so if there are multiple Xlinks pointing to the same path with different root paths, it can potentially lead to weird issues.

Gluon

Gluon: Improved 'switch workspace' usability. From now on, when a user switches to a new workspace, other Gluon windows + 'switch workspace' dialog will be closed. (Nevertheless, this new behavior can be overrided by choosing to keep them open with the new option: 'open workspace in a new window'). We did this due to we had feedback from several users suggesting that having too many open windows wasn't comfortable.

Windows GUI

Windows GUI: The 'merge' view is now automatically closed after a 'merge-to' operation. Also, the dialog to enter comments has been aesthetically improved.

Bug

Cloud

Cloud: The replication operation was being silently canceled on the server side (the client operation finished without errors) when performing big push operations to the cloud server (Example: When the 'introducing data'/'data upload' steps were taking more than an hour). Fixed.

Mac OS GUI

Mac OS GUI: Under uncommon circumstances, MacPlastic GUI didn't show the 'create branch' dialog when the context menu option was clicked. Fixed.

Mac OS GUI

Mac OS GUI: The 'diff' viewer was not refreshed after undoing all changes when there were private files. Fixed.

Mac OS GUI

Mac OS GUI: Sometimes, the application was performing unnecesary server queries in a short period of time to retrieve branch information to be displayed on the 'Workspace Explorer'. Fixed.

Linux (GTK) GUI and Mac OS GUI

Linux (GTK) GUI and Mac OS GUI: Under uncommon circumstances, an 'item already exist' error was thrown when trying to check-in items from 'dynamic pending changes' view. Fixed.

Linux (GTK) GUI

Linux (GTK) GUI: A 'null reference' error was thrown when the 'diff' window was closed when the diffs calculation progress didn't finished. Fixed.

Client core

Client core: All Plastic SCM clients were having trouble on application startup if they had global configuration setup enabled ('plastic-global-config' repo) against a SSL server. Fixed.

Proxy Server Windows Installer

Proxy Server Windows Installer: The Proxy Server service was unable to start due to a missing file. Fixed.

Replication

Replication: 'Push' & 'Pull' operations were failing when the metadata size of a replica was bigger than 2GB. This issue was only affecting to huge replica operations. Nevertheless, the issue is now fixed.

Windows GUI

Windows GUI: SemanticSCM: When diffing a declaration from 'visual diff' feature, the newly created 'diff' window was not focused. So, pressing 'Alt + F4' was closing the 'visual diff' window instead of the 'diff declaration' window. Fixed.

5.4.16.743

New

Merge operation

Merge operation: conflicts detection on merge operation has been improved: Conflicts involving files with no changes were previously handled as automatic merge conflicts during the merge. These conflicts are now discarded on the server, so they will no longer appear in the conflict list.

Bug

Windows GUI

Windows GUI: Sometimes, the 'sync' view replication progress dialog wasn't properly handling 'retry' or 'skip' actions, leading to an infinite number of blocking error messages. Fixed.

Mac OS GUI

Mac OS GUI: 'Diff' viewer: The first difference was not focused after loading differences. Fixed.

Linux (GTK) Mergetool and Mac OS Mergetool

Linux (GTK) Mergetool and Mac OS Mergetool: Unchanged regions were wrongly painted in the textboxes and splitters as if they were a kind of difference. Also, the red color used for the splitter regions with conflicts was not correct. This bug, which happens since 5.4.16.742, has been fixed.

Visual Studio plugin

Visual Studio plugin: When moving or dragging & dropping a changed file in the 'Pending changes' view, the file was accidentally opened. Fixed: the sensitivity of the drag & drop has been decreased (now there is a 15px threshold) to prevent such mistakes. This closes a User Voice request.

5.4.16.742

New

Windows GUI

Windows GUI: New 'Show in Branch Explorer' context menu option has been added in 'Branches', 'Changesets' and 'Labels' view. This action shows the selected branch, changeset or label in the 'Branch Explorer', scrolling to it directly (unless the object is not shown due to the current 'Display options' settings, such as date filter). This closes a User Voice request.

FMOD Studio plugin

FMOD Studio plugin: The FMOD Studio plugin is now compatible with version 1.07 and higher. Two script files are now needed to enable Plastic SCM inside FMOD Studio: PlasticSCM.sc.js and PlasticSCM.js. Warning! The previous 1.06 plugin script is not compatible with FMOD Studio 1.07 and higher. Please make sure you're using the appropriate scripts for your FMOD Studio version.

Gluon

Gluon: Added a new option to add files to the 'ignored list' both in 'pending changes' and 'explore workspace' views.

Windows GUI

Windows GUI: New 'owner' field added to 'Explore changesets on this branch'. This closes a User Voice request.

From now on, all filter configuration files ('ign…

From now on, all filter configuration files ('ignore.conf', 'hidden_changes.conf', 'cloaked.conf', etc.) will check the global config as well as current workspace config and local client config files. A 'workspacetree' directory will be expected for each configured repository. Users/admins can store their config files inside it. For instance, you can configure your 'plastic-global-config' repository to store a global cloaked configuration for all its repositories:
/allrepos/workspacetree/cloaked.conf
This closes a User Voice request. REMARK: Starting from release 5.4.16.760, the preferred location for these files is the corresponding workspace directory, not 'workspacetree' folder. (Although 'workspacetree' folder will be still supported for backwards compatibility reasons).

Windows Mergetool

Windows Mergetool: Usability improvements
  • Diff/Merge: The deleted regions are now represented in the editors.
  • Merge: Improved solved/unsolved conflicts visualization. When the conflict is pending to solve, a red line around the conflict is displayed. Once the conflict is solved, the line turns to green color. The border line is also visible in the result textbox.
  • Merge: Added a new option in the editor options menu to allow the user to view border lines for unselected regions.

Bug

Windows Mergetool

Windows Mergetool: When using the mergetool to diff two files semantically, the diff options panel, in the lower right, was not being displayed correctly. Fixed. This closes a support ticket.

Windows GUI

Windows GUI: Some views didn't remember user selection after refreshing the view (such as 'changesets', 'labels', 'attributes', 'shelves', 'code reviews' and 'attributes'). Fixed. This closes a User Voice request.

Windows GUI

Windows GUI: Fixed an error that was happening after creating a repository from a 'Select Repository' dialog invoked from a 'Create Workspace' dialog.

Windows GUI

Windows GUI: The 'Select Repository' dialog wasn't being refreshed after repository creation. Fixed.

Windows GUI

Windows GUI: SemanticSCM: When clicking in the 'diff' action from the visual diff dialog, the diff window appeared hidden in background. Fixed.

5.4.16.740

New

Gluon

Gluon: directory sizes are now displayed on 'Workspace explorer' view. A new option has been added to the workspace explorer view menu which allows to include / exclude private items when calculating directory sizes. Remarks: If private items are excluded, the size of the private files will still appear in the workspace explorer view. However, the private directory sizes will not be calculated and all private items will be discarded when calculating non-private directory sizes.

Server - User Authentication

Server - User Authentication: From now on, servers configured to use Active Directory or LDAP authentication will show more descriptive errors if a user cannot be translated during a push/pull operation due to unexpected Active Directory or LDAP server errors.

Linux (GTK) GUI and Mac OS GUI

Linux (GTK) GUI and Mac OS GUI: Several usability improvements regarding item selection in views have been made:
  • The 'Pending changes' view now keeps the previous row selection after refreshing the view.
  • 'Repositories', 'Workspaces', 'Branches', 'Labels', 'Pending changes', 'Shelves' views now keep the selection after delete/undo operations.

Bug

Linux (GTK) GUI and Mac OS GUI

Linux (GTK) GUI and Mac OS GUI: Deleting a file/directory from the command line while Plastic SCM client GUI application is running were causing certain view drawing errors. Fixed.

5.4.16.739

New

GitServer is out! The Plastic SCM server can now…

GitServer is out! The Plastic SCM server can now be configured to work as a Git server and attend push/pull operations directly from Git clients. It means that you can use the Plastic SCM server as the central server for teams with mixed Plastic and Git users. But even more important: GitServer works as a universal connector so that any Git compatible tool can now be connected to Plastic. Consider Continuous Integration software, code analysis, DevOps, and so on. Learn more about GitServer here.

Issue trackers

Issue trackers: Included support for multiples repositories for Polarion ALM issue tracker extension. Now it is possible to configure this feature by unchecking the 'Default Repository' checkbox from the 'Preferences' > 'Issue Trackers' dialog.

Issue trackers

Issue trackers: Polarion ALM extension is now bundled with Linux (GTK) GUI.

Labels

Labels: Plastic SCM now allows label names to have slash ('/') characters.

Windows GUI

Windows GUI: The 'Update operation report' dialog now shows workspace-relative paths instead of absolute paths.

Windows GUI

Windows GUI: new 'Save as...' option in the 'Browse repository' window, so you can now save to disk file revisions while browsing a branch or changeset.

Proxy server

Proxy server: A whitelist feature has been implemented to automatically accept remote SSL certificates. To do so, create a file named
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

New

Plastic SCM Cloud Edition release

Plastic SCM Cloud Edition release Plastic Cloud Edition is the sum of the Plastic SCM software plus a Plastic Cloud server and storage all packaged together in a single pay-as-you-go subscription. Teams can forget about managing infrastructure and licensing since this is all handled by Plastic Cloud. Client software and local repositories are installed on the developer's computer, and then they push/pull to the cloud organization (or directly checkin to the cloud using Gluon). Plastic Cloud Edition is designed with fully distributed teams in mind. Teams that don't want to consider running their own servers, and prefer hosting everything online. For further info, please visit the Plastic SCM Cloud Edition page.

5.4.16.736

New

Windows GUI

Windows GUI: Now it is possible to diff selected chunks of text. To do that:
  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. Using global configuration
  2. 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

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. Using global configuration
  2. 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

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

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

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

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. More info and Source code.

Bug

Windows GUI

Windows GUI: The 'Issue tracking' tab on the Preferences dialog wasn't saving some fields after modifying them. Fixed.

Mac OS GUI

Mac OS GUI: Fixed some navigation and scroll issues in the 'diff' viewer:
  • The 'diff' viewer did not navigate to the last line properly.
  • The 'current difference' was not properly highlighted when after loading the contents for the first time, or after changing the comparison method.
  • The 'diff count' labels were not being displayed correctly when the numbers have more than a digit.

Linux (GTK) GUI and Mac OS GUI

Linux (GTK) GUI and Mac OS GUI: 'Branch explorer' view: When a workspace was not up-to-date, the branch explorer did not display any changeset because the scroll was not correctly set. Now, when this scenario is detected, the scroll is moved to make the last changeset visible.

ReviewBoard plugin adapted to correctly parse the…

ReviewBoard plugin adapted to correctly parse the 'cm lrep' command output.

5.4.16.725

New

Gluon

Gluon: The context menu 'Add directory tree to source control' was disabled for controlled items when right clicking on a controlled item. Now it's enabled (it adds all private items under the selected item to the source control).

Server

Server: performance improvements to support thousands of repositories on a single server:
  • When a new user is used or an existing user membership was changed, certain unrelated security info was recalculated when it wasn't neccesary. From now on, only the related security info is updated.
  • The load of active/inactive users only happens on startup now.
  • ActivityScheduler thread was locking the task list on execution. It could end up delaying system initialization if repositories failed to be upgraded. Not a big deal, but fixed.
  • The ACLs for all repositories are now loaded on server startup instead of on demand.

Server

Server: Added a new flag to
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

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

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

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

New

MergeTool Windows

MergeTool Windows: MergeTool (xmerge!) gets a new look to get ready for 2016! We have improved the overall look and feel of the tool. Now conflicts are clearly highlighted, conflict navigation buttons change color depending on the status and in general everything looks much better. The same tool, but lots of small details changed here and there to make it better than ever.

MergeTool Mac OS

MergeTool Mac OS: Mac Mergetool is out! The native mergetool for Mac (Cocoa based) has been released! No need to continue using an external tool to deal with manual merges on Mac, you can finally switch to the familiar Plastic merge style. It is the first release of the tool and there are still things to improve, but it is already usable. The Mac MergeTool is bundled together with Mac Plastic SCM installer package, and the GUI allows to choose the new MacMergeTool as the default tool in the preferences dialog (which will be the default option on fresh installations indeed). While the new tool is fully functional, there are some small remarks and limitations to keep in mind:
  • Xmerge (tracking moved code feature) is still not available.
  • Line numbers and Syntax hightlight not available yet.
  • No shortcuts for conflicts navigation yet.
  • Some options are still missing: you can't change the comparison method or encoding. The comparison method is set to 'recognize all' by default, which means it won't ignore EOLs & whitespaces.
  • Failed to merge files with a single byte encoding that has non-ASCII characters (System.Text.DecoderFallbackException). The workaround for this issue is setting the file encoding to UTF-8. (This issue also affects to Linux GTK MergeTool).
These limitations will be addressed in new upcoming releases.

Windows GUI

Windows GUI: New Christmas greetings 'About' dialog

5.4.16.712

New

TeamCity plugin

TeamCity plugin: Automatic checkout on agent is now supported REMARK: Path-mapping checkout rules (e.g.
+:mypath => mypath/is/now/mapped
) are not currently supported!

Linux GUI (GTK) and Mac OS GUI

Linux GUI (GTK) and Mac OS GUI: Requesting encrypted data from cloud server will now prompt the user to enter the encryption key (if there is no previously configured encryption key for that server).

Eclipse plugin

Eclipse plugin: Implemented a new diff view in eclipse. This view is displayed after executing the following actions: From branch explorer:
  • right click + diff changeset (or double click in a changeset)
  • right click + diff branch (or double click in a branch)
  • select two changesets -> right click -> Diff selected changesets
From Eclipse package explorer (Note that, if the selected resource in Package Explorer is a single file resource, the 'Compare with' option just show single file differences. Otherwise, the 'Compare with' option will show selected and children resources).
  • right click on resource -> Compare with -> Previous version. This option compares the working changeset with the previous one.
  • right click on resource -> Compare with -> Changeset... This option compares the working changeset with the selected one.
  • right click on resource -> Compare with -> Label... This option compares the working changeset with the changeset the label belongs to.
IMPORTANT REMARK: The diff view view doesn't show pending changes on workspace. It just compare two server trees. In order to see changes in workspace, use the 'Pending changes' view instead.

Bug

Gluon

Gluon: The cloud encryption password was not requested to the user when the Gluon UI was started in configuration mode (first run or using the '--configure' argument). Fixed.

5.4.16.711

New

Command Line Interface

Command Line Interface:
cm shell
input was not being read when
cm
was started and fed from a Qt process, due to an incompatibility between Qt libraries and .NET >= 4.0. This incompatibility has been addressed in this release.

Gluon CLI (cm partial)

Gluon CLI (cm partial): The
--ignorefailed
option available for certain commands (such as
configure
,
checkout
and
add
) has been improved to support missing items and other path-related issues.

Bug

Linux GUI (GTK) MergeTool

Linux GUI (GTK) MergeTool: Removed lines in the result textbox are now read-only lines (they cannot be edited as they only indicate a removed line as a result of a conflict resolution). Before this fix, there were some inconsistences when editing the result textbox and there were removed lines in the edited text.

Installers

Installers: Fixed some strings in Spanish language that were wrongly displayed due to an encoding issue.

Server Database Administration tool

Server Database Administration tool: (a.k.a. 'admintool.exe') The tool was overriding certain configuration parameters when exiting the tool, which in turn caused the server wasn't unable to start. Fixed.

5.4.16.710

New

Eclipse plugin

Eclipse plugin: The 'Pending changes' view now allows to launch file diffs when double-clicking an item. Remark: Deleted items don't show differences.

REST API

REST API: Two new endpoints have been implemented to address possible URI ambiguities: a)
/api/v1/repos/:repname/branches/:branchname/contents?item=:itempath
-> It retrieves the revision metadata of
itempath
located in the last changeset of branch
branchname@repname
(This endpoind extends the already existent endpoint to retreive revision metadata:
/api/v1/repos/:repname/branches/:branchname/contents/:itempath
)
b)
/api/v1/repos/:repname/branches/:branchname/history?item=:itempath
-> It retrieves the revision history of
itempath
located in the last changeset of branch
branchname@repname
(This endpoind extends the already existent endpoint to retreive revision history:
/api/v1/repos/:repname/branches/:branchname/history/:itempath
)

Branch naming

Branch naming: The name of a new branch with any leading/trailing whitespaces will be trimmed before creating it.

Command Line Interface

Command Line Interface:
cm diff
command now accepts new output format parameters:
{date}
,
{owner}
and
{srcfsprotection}

Windows GUI and Gluon

Windows GUI and Gluon: The 'Open in Windows Explorer' menu option was opening folders using the '/root' switch. This prevented Windows Explorer navigation to parent folders of the selected item. Fixed.

Bug

Windows GUI

Windows GUI: SemanticSCM: An 'index was out of range' error was thrown when clicking the 'skip format changes' button and there were format changes in the file declaration. Fixed.

Windows GUI

Windows GUI: 'New branch' dialog: The 'Switch workspace to this branch' checkbox was disabled while the issue tracker query was still running. Fixed.

Windows GUI

Windows GUI: Sorting by size in the 'Pending changes' view was not working as expected. Fixed.

Linux GUI (GTK) and Mac OS GUI

Linux GUI (GTK) and Mac OS GUI: Reloading the 'Pending changes' view did not refresh the diff/contents panel. Fixed.

JIRA Issue tracker extension

JIRA Issue tracker extension: 'Resolved' bugs were not showing up on the 'Branches view' and 'Branch explorer' view. Fixed.

Command Line Interface

Command Line Interface:
cm diff
command was showing a cryptic error message when a changeset without a parent changeset (e.g. cs:0) was selected for diff. Fixed.

Command Line Interface

Command Line Interface:
cm diff
command was always using the repository of the current workspace for branch diffs, instead of parsing the branch spec. Fixed.

Triggers

Triggers: The
TriggerVariables
settings were wrongly removed from the client configuration when the Plastic SCM GUI was restarted. Fixed.

Installers

Installers: Fixed some typos in the installer's text fields REMARK: Some strings in Spanish are still wrongly displayed due to an encoding issue, which will be fixed in the next Plastic SCM release.

Server configuration tool

Server configuration tool: During the upgrade of the Plastic SCM server, the license could be wrongly overridden. Fixed.

Server configuration tool

Server configuration tool: The tool wasn't loading & saving the configuration parameters properly (such as server ports and user authentication mode). Fixed. IMPORTANT REMARK: The Database Administration tool (a.k.a. 'admintool.exe') is still affected by this issue. It could lead to miss some server configuration parameters, so its usage is not recommended until the next Plastic SCM release.

5.4.16.707

New

Linux native Merge Tool available in preview mode

Linux native Merge Tool available in preview mode: The new Linux native 3-way mergetool (a.k.a. 'gtkmergetool') is available and it is installed as the default tool on new installations. For existing installations remember to go to preferences and choose the "default" merge tool to use the new software. While the new tool is fully functional there are some small remarks and limitations to keep in mind. They do not prevent users to start testing the new tool and providing feedback though:
  • The tool doesn't remember the size yet. It always shows up with the same size regardless of the last one you set. It will be fixed on the next release.
  • Xmerge is still not available. We'll be adding these soon. Remember, we refer to the technology capable of tracking moved code based on a text-based similarity algorithms.

Linux GUI (GTK) and Mac OS GUI

Linux GUI (GTK) and Mac OS GUI: New context menu options on the 'Branch Explorer' view have been added. Now it is possible to navigate to the branch's base changeset, and changesets allow navigating to their parent changeset.

Gluon GUI and Windows GUI

Gluon GUI and Windows GUI: Image preview has been greatly improved. Now, thumbnails are created in higher quality, and the preview panel can be resized to better see the picture details. Also, small icons are displayed at its real size, instead of zoomed.

Gluon

Gluon: Selected item in checkin view is preserved (if possible) after refresh, checkin and undo operations. Also, after deleting an item in the checkin view, its parent or a suitable item is selected.

Usability improvement

Usability improvement: when you do your first push or push to Plastic Cloud and need to configure encryption settings, the replica is retried after entering the password instead of failing and letting the user do the retry.

JIRA extension

JIRA extension: The checkin data log in JIRA will now show a warning message if the communication with the issue tracker system detects an error.

Unity plugin

Unity plugin: the 'Gluon mode' configuration parameter is now an optional parameter. By default, the 'Gluon mode' parameter is set to 'false'.

Mac OS Installer

Mac OS Installer: Added
clconfigureclient
application shorcut to
/usr/local/bin
, so it can be launched from any working directory.

Mac OS Command Line Interface

Mac OS Command Line Interface: The
cm
command line client application can now be run in Mac OS El Capitan. Prior to this version, the
cm
application was not calculating properly the working directory used for relative paths arguments.

Windows GUI

Windows GUI: Added shortcuts to navigate first/previous/next/last file in diff and code review dialogs.
  • Ctrl + Shift + '-' : Go to the first file.
  • Ctrl + Shift + '+' : Go to the last file.
  • Ctrl + '-' : Go to the previous file.
  • Ctrl + '+' : Go to the next file.

Command Line Client

Command Line Client:
cm fast-import
command: lightweight tags (using the 'reset' + 'from' keywords) are now supported.

All GUI clients

All GUI clients: 'Size' columns now appear aligned to the right on all Plastic SCM GUIs.

Bug

Linux GUI (GTK)

Linux GUI (GTK): Excluding branches in the sync view was taking an unacceptable amount of time when a large number of branches (more than 50) were selected. Fixed.

Gluon

Gluon: private read-only items couldn't be deleted. An error 'Access to the path is denied' was thrown. Fixed.

Gluon

Gluon: The 'Esc' key was not cancelling the 'undo changes' operation in the confirmation dialog. Now it's fixed.

Windows Merge Tool

Windows Merge Tool: In some circumstances, the regions of the contributors in the result textbox are not correctly updated when the result is edited. Fixed. Also, the removed lines in the result textbox (which are drawn with crossed lines), were not correctly updated when the user was editing the result (these lines should be read-only indeed). Fixed.

Server configuration tools

Server configuration tools: The
configureserver
and
admintool
applications were unable to retrieve licensing info on auto-renewal setup. Fixed.
Also, the user authentication method wizard was not properly disabling unallowed auth modes for non-enterprise licenses. Fixed.

5.4.16.704

New

Command Line Interface

Command Line Interface: The
cm add
and the
cm partial add
(gluon CLI) commands now accept a new parameter:
--ignorefailed
. This new parameter allows to skip items that cannot be added without rejecting the whole add operation.
REMARK: If a directory cannot be added, none of its inner items will be added either.

Server

Server: Security checks for 'Branch Explorer' view and
cm find
command (used also by all views in the GUIs) have been greatly improved with Plastic Cloud in mind, but it will be a big plus for regular servers too.

Bug

Linux GUI (GTK)

Linux GUI (GTK): Fixed several error messages that were dumped on the console:
- Gtk-CRITICAL **: IA__gtk_widget_add_accelerator: assertion `GTK_IS_ACCEL_GROUP (accel_group)' failed- Gtk-CRITICAL **: IA__gtk_text_layout_get_iter_location: assertion `GTK_IS_TEXT_LAYOUT (layout)' failed- Gtk-CRITICAL **: _gtk_accel_group_attach: assertion 'g_slist_find (accel_group->acceleratables, object) == NULL' failed

Mergetool (Windows)

Mergetool (Windows): When the user clicked on the Windows's 'X' button to close the dialog, the Mergetool didn't ask the user for saving changes. Now it's fixed.

Command Line Interface

Command Line Interface: The
cm find
command used with
on repository
option was incorrectly listing all repos even when it was not needed. It caused a perf impact under heavy load. Fixed.

5.4.16.701

New

Linux GUI (GTK)

Linux GUI (GTK): Improved 'Diff' window performance when there are a large number of rows. Loading, sorting and filtering now perform faster.

Linux GUI (GTK)

Linux GUI (GTK): 'Diff' window: The 'Filesystem permission changes' category has been added to the 'Diff' categories.

Linux GUI (GTK)

Linux GUI (GTK): Changed the mouse wheel behavior in 'Branch Explorer' view. Now, the Linux GUI has the same bahavior as the Windows GUI:
  • "Mouse wheel" -> horizontal scroll.
  • "Ctrl + mouse wheel" -> zoom.
  • "Shift + mouse wheel" -> vertical scroll.

Linux GUI (GTK) and Mac OS GUI

Linux GUI (GTK) and Mac OS GUI: New 'Options' button added to the embedded 'Diff' views. New supported actions are the following:
  • change the comparison method (Ignore EOL's, whitespaces or recognize all).
  • manually set the target character encoding for each side.
  • manually set the syntax highlight (Linux GTK GUI only).

SSL channel

SSL channel: The way to accept and install SSL certificates on the Plastic server from the client side has been improved (works only for admins): 1- Now the client side accept certificate options will be available on the server: add to the store and accept without installing. 2- When a certificate is already installed on the client (manually or by a previous client execution), no user intervention will be needed to accept it on the server. 3- A concurrency issue has been fixed: the same server certificate accepted by different clients concurrently.

Cloud Server

Cloud Server: several core improvements to increase performance in security checks when the database is on a separate server. It will also help regular setups with separate server. A full refactor of the security caches was done. Queries of branches and labels should be noticeable much faster (security check on the test env went down from 500ms to only 32ms).

Bug

Windows GUI

Windows GUI: SemanticSCM: Fixed an error when the files cannot be parsed. Now, an informative message is shown and the text-based differences are automatically calculated.

Linux GUI (GTK) and Mac OS GUI

Linux GUI (GTK) and Mac OS GUI: Opening the 'Items' view when the remote server is not reachable (or invalid credentials were set) resulted in a large number of dialogs being displayed (one dialog per different item revision's branch). Fixed. Now, only a dialog per different repository will be displayed.

Linux GUI (GTK)

Linux GUI (GTK): The filter was causing inconsistencies in the visualization when the 'Pending changes' view was showing more than one category (changed, added, moved, deleted, ...). Fixed.

Bamboo plugin

Bamboo plugin: Setting up several external agents on the same machine lead to duplicate workspace names. This has been fixed by appending a random UUID to each workspace name.

Server

Server: Pushing data to Cloud Server (or an encrypted server) without encryption settings failed to ask for the password and raised an error. It is fixed now and it correctly asks for credentials.

Windows GUI

Windows GUI: The 'Item' -> 'Diff' -> 'Diff revisions' dialog was failing with an 'Incorrect object specification' error when typing a changeset number instead of selecting it on the item history dialog. Fixed. Now, the changeset number is not editable and the user must select the changeset from the list of available changesets in the history.

5.4.16.700

New

FIPS support

FIPS support: Plastic SCM can now be configured to work on FIPS compliant environments. Once set to work in FIPS mode, both client and server will use only Windows Platform FIPS validated cryptographic algorithms. To configure FIPS, add the following line to your
server.conf
and
client.conf
files:
<FIPSCompliant>true</FIPSCompliant>
Consider the following restrictions:
  • At this point, the server won't start in a FIPS machine until it is configured in FIPS mode. The server log will say "LicenseReader - There was an error reading the license: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.". Once the server is configured in FIPS mode, it will be able to start normally.
  • The server won't start in a FIPS machine with an SSL channel unless there is the PFX certificate file
    ssl-certificate.pfx
    in the Plastic SCM server installation folder to use SSL. The server log will say "WARN Channel - Failed to autocreate sha256 self-signed certificate (file:
    C:\Program Files\PlasticSCM5\server\ssl-certificate.pfx
    )."
  • To use User/Password authentication mode in a FIPS machine, it is necessary to configure the server in FIPS mode before adding users. Otherwise, when clicking OK in the "New Plastic SCM user" dialog, an error message box will appear: "This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.".
  • Not compatible with other clients/servers that are not FIPS compliant.
  • Not compatible with the cloud server
  • Encrypted replication is not available.

Windows GUI

Windows GUI: SemanticSCM: Built-in semantic diff now includes a new 'reformat' option. The new toggle button in the semantic options panel reformats the code before diffing it, so the format-only changes can be ignored.

Windows GUI

Windows GUI: Added 'Diff' key shortcut
Shift + Ctrl + D
to the following views:
  • Diff two selected changesets on the 'Branch Explorer' view.
  • Diff two selected changesets on the 'Changesets' view.
  • Diff two selected items on the 'Items' view
  • Diff two selected revisions on the 'History' view.
  • Diff selected revisions with another revision on the 'History' view.
  • Diff selected branch with another branch on the 'Branch Explorer' view.
  • Diff selected branch with another branch on the 'Branches' view.

Bug

Mac GUI

Mac GUI: The 'Diff' viewer was not available in Mac OS X 10.11 (El Capitan). Fixed.

Mac GUI

Mac GUI: 'Branch Explorer' view: If a merge link was hovered over a changeset, the user was unable to select the changeset. Now it's fixed.

Gluon

Gluon: On the changesets view, double-clicking on a group header caused a null reference exception. Fixed.

Gluon

Gluon: On the changesets view, double-clicking on the column header panel was wrongly triggering the double-click action on the currently selected row. Fixed.

Linux GUI (GTK)

Linux GUI (GTK): The pending changes view was not automatically scrolling to the first difference when switching among files. Fixed.

Windows GUI

Windows GUI: SemanticSCM: In some scenarios, the differences were not correctly painted for C language files. Fixed.

Windows GUI

Windows GUI: Ampersand ('&') character was not properly encoded on several views (Changesets, Branches, Labels, Blog News...). Fixed.

Server

Server: User Management tool (
umtool
): Fixed typo in a warning message asking the user to restart the server to apply changes made by the tool.

Unity plugin

Unity plugin: A 'null reference' error was thrown when there are private files that match with an 'exclusive checkout' (a.k.a. 'locking') rule. Fixed.

5.4.16.699

New

Mac GUI

Mac GUI: A new native, side-by-side 'diff' viewer is out! The 'diff' viewer has been added to the 'diff branch/changeset' window and to the 'Pending changes' view. It shows differences for changed files and the contents for added, deleted and moved files. The new diff works also for xlinks, directories and binary metadata. This is an initial release, so there are a list of limitations to consider:
  • Some options are still missing: it is not possible to change the comparison method, syntax highlight or encoding. The comparison method is set to 'recognize all' by default, which means it won't ignore EOLs & whitespaces.
  • Partial Xdiff support: it already detects moved fragments, but there are no buttons to navigate to the moved code or show the 'sub-diff' of the fragments yet.
REMARKS: This feature is not working in Mac OS 'El Capitan' yet.

Command Line Interface

Command Line Interface: Now
cm diff
on windows works correctly with command line diffs.
Custom diff tools can be configured as follows:
diff.exe "@sourcefile" "@destinationfile"
And get a correct text diff from CLI. All commands can now be configured as follows:
/window diff.exe "@sourcefile" "@destinationfile"
Where "
/window
" flag is the default, no need to set it.
And "
/nowindow
" flag is the old default, it doesn't allow a window to be created, good for GUI tools.

Linux GUI (GTK)

Linux GUI (GTK): Performance: Improve 'Pending changes' view performance when there are a large number of rows. Loading, sorting and filtering time has been improved significantly.

Linux GUI (GTK)

Linux GUI (GTK): A message bar has been added in the embedded diff viewer in order to show the noticeable messages for the user.

Gluon

Gluon: The 'Apply configuration' operation now shows a report if something goes wrong loading or unloading files (just like the 'update' operation does).

Issue tracker extensions

Issue tracker extensions: Settings can now be customized per repository. Different specific settings for the same issue tracker can be adjusted to work with different Plastic SCM repositories. To get further info about issue tracker global configuration, please visit this link.

Jenkins plugin

Jenkins plugin: Added build parameters support Jenkins allows to define certain build parameters) Plastic SCM is now able to use those parameters. Example:
  • Imagine that there are two build parameters in a project:
branchname: default value (/main)
repositoryname: default value (default)
  • These parameters can now be used in Plastic SCM selector using
    %parameter_name%
    . In this case you could write a selector as follows:
repository '%repositoryname%'path "/" smartbranch '%branchname%'
REMARKS: When using parametrized builds, the 'PollSCM' feature may not work as expected, because Jenkins performs the polling with the 'LAST USED' workspace, so maybe the selector is not pointing to the expected branch. When using parametrized builds, we recommend setting up two Jenkins projects:
  • One for the parametrized build
  • Another one to perform the poll with a non-parametrized, static selector.

Bug

Jenkins plugin

Jenkins plugin: When a changeset was a result of a merge, Jenkins was not able to properly present modified elements in 'Changes' chapter. Now it's fixed.

Windows GUI

Windows GUI: After checking out a file in the 'items' view, the status column was not properly updated. Fixed.

Windows Installer

Windows Installer: Fixed several aesthetic issues in 'server-only' installer.

5.4.16.698

New

Linux GUI (GTK)

Linux GUI (GTK): Embedded 'diff' viewers are now capable of showing directory contents, directory filesystem protection changes, binary files metadata diffs and showing diffs of moved/changed files.

Eclipse plugin

Eclipse plugin: New actions implemented in 'Compare With' menu
  • 'Compare with' -> 'Previous revision': Compares the local version with previous version on repository.
  • 'Compare with' -> 'Changeset...' : Compares the local version with the version loaded by selected changeset
  • 'Compare with' -> 'Label... ' :Compares the local version with the version loaded by selected label

Eclipse plugin

Eclipse plugin: Support for Eclipse-registered comparators when showing diffs has been implemented.

Bug

Linux GUI (GTK) and MAC GUI

Linux GUI (GTK) and MAC GUI: In the query views, when there are elements from different servers with same id and repository id, the selection after any operation is not correct. Fixed.

Linux GUI (GTK)

Linux GUI (GTK): A 'null reference' error was thrown sometimes when closing the main window when it was opened from 'workspace switcher' window. Fixed.

Server

Server: The Admin Tool database migration had issues copying between SQLServer CE and SQLite. Fixed.

Windows GUI and Windows Installer

Windows GUI and Windows Installer: Several aesthetical issues have been fixed. Also, fixed alignment in 'XMerge' information dialog.

5.4.16.696

New

Eclipse plugin

Eclipse plugin: A new 'Team -> Label workspace' action has been implemented. With this new action, the user can select several projects and label all workspace contents belonging to these projects.

REST API

REST API: All workspace-locking operations have been protected against simultaneous requests.

Bug

Linux GUI (GTK)

Linux GUI (GTK): The 'diff' viewer was showing an error when clicking on a changed file. Fixed.

Linux GUI (GTK)

Linux GUI (GTK): Several fixes have been performed in the embedded 'diff' viewer:
  • A 'null reference' error was thrown when diffing files with no differences (same contents in left & right revision). Fixed.
  • 'Pending changes' view: when selecting a file with no differences, the diff viewer was painting the differences from a previously selected changed file. Fixed.
  • Poor performance when diffing a branch or changeset and navigating across the affected files with cursor keys. Fixed.

Branch names containing the '$' character weren't…

Branch names containing the '$' character weren't properly handled when renaming them, causing the rename operation to display a 'branch not found' error message. Fixed.

Mergetool for Windows

Mergetool for Windows: In some circumstances, an 'out of range' error is shown when the text of a contributor is restored for a selected conflict. Fixed.

5.4.16.695

New

Mergetool for Windows

Mergetool for Windows: New version of
mergetool.exe
including a greatly improved text editor.
Xmerge (a.k.a. mergetool.exe) now includes a text editor with tons of improvements such as better syntax highlight and more languages supported, options to show tabs and spaces and column guidelines. Editor also supports Undo and code completion!

JIRA issue tracker extension

JIRA issue tracker extension: JIRA Extension now supports the JIRA REST API Checkout this URL to get info about configuring the JIRA Extension.

JIRA issue tracker extension

JIRA issue tracker extension: Changeset Guid is now available in the 'checkin log' of JIRA extension. The Guid is written in the Plastic SCM custom field. Find below an example of the logged data:
Date: 9/10/2015 12:25:25 PMChangeset 4424@default@localhost:8084 by dhernandezChangeset guid: 5372daf7-f740-4d05-b9d2-a30823907bb2Branch: /main/scm029Comments: Rename csproj filesItems: Changeset 4424@default M /client2008.csproj -> /client2010.csproj M /server2008.csproj.-> /server2010.csproj

Mac OS installer

Mac OS installer: macplastic installer is now compatible with Mac OS 'El Capitan'.

Command Line Interface

Command Line Interface: The
cm
application bundled with macplastic installer didn't have the required libraries to run
cm sync
command properly. Fixed.

User/Password management tool GUI

User/Password management tool GUI: The lists of users, groups and group members are now alphabetically sorted. The groups are shown before the users.

Windows GUI

Windows GUI: 'Permissions' dialogs: The list of users and groups, and the list of permissions are now alphabetically sorted.

Bug

Windows GUI

Windows GUI: 'Permissions' dialogs: Fixed an issue which prevented setting the owner of a repository when there weren't secured paths defined.

Windows GUI

Windows GUI: 'Permissions' dialogs: Fixed an issue with the 'permissions' panel's scroll which prevented to show the last permission in the list when other permission was clicked.

Windows GUI

Windows GUI: Several aesthetical improvements when the language is set to 'Spanish'.

Windows GUI and Visual Studio plugin

Windows GUI and Visual Studio plugin: The 'Diff with previous' menu option didn't warn about possible unsaved changes on the right revision. Fixed.

Mergetool

Mergetool: The result file could miss a 'new line' character when there was a non-automatic conflict affecting to the last line of the contributor files and the last line of these contributor wasn't an empty line. Fixed.

Linux GUI (GTK)

Linux GUI (GTK): The pending changes's diff viewer was displaying an error message when showing the contents of an ignored file. Fixed.

5.4.16.694

New

Windows Explorer Integration

Windows Explorer Integration: The Windows Explorer Integration (a.k.a. 'Plastic SCM Shell Extension') is available to be installed again.

Encryption config is requested only once instead…

Encryption config is requested only once instead of once per file. Suppose there are 100 files to be downloaded from a server with encryption activated, the config dialog shows up but 'cancel' button is clicked: before it kept asking once per file. Now it only asks once per operation (once per update, for instance).

Windows GUI

Windows GUI: SemanticSCM: Usability improvements for moved code blocks in diff viewers: Now it is possible to align the affected moved blocks of each contributor so that the differences can be detected easily.

Windows GUI

Windows GUI: A new option to diff two selected files has been added to the 'Items 'view. To use it, just select two files in the view, right click and then
Diff -> Diff selected items
(Directories can also be selected to launch diff's).
The diff can only be shown for non-private files/directories in the current workspace, and can't be applied to directories inside xlinks pointing to different repositories between them.

Windows GUI

Windows GUI: Custom shortcuts can now be specified for the defined 'Open with' applications (
Preferences -> Custom "Open with..."
).
Remarks:
  • Valid shortcut values are the shortcut enumeration values defined in the .NET Documentation.
  • Take into account that you can define some values that can override the existing predefined shortcuts.

Windows GUI

Windows GUI: A 'comments' textbox has been added to the 'create shelve' dialog. The 'comments' textbox is automatically set to the current text value of 'checkin comments' textbox. Also, when applying a shelve to a workspace, the shelve comment is automatically appended to the current 'checkin comments' textbox.

Linux GUI (GTK)

Linux GUI (GTK): The provided GTK# binaries have been updated to version 2.12.29. This will prevent the following error message to be displayed on console:
Error: (gtkplastic:15873): GLib-CRITICAL **: Source ID <number> was not found when attempting to remove it

Linux GUI (GTK)

Linux GUI (GTK): Embedded diff viewer: Header labels are now text fields in order to select and copy text. Also, the look & feel of the comments in the diff viewer has been reviewed.

Linux GUI (GTK)

Linux GUI (GTK): 'Ctrl+F' accelerator key has been implemented, enabling finding an item in the 'Items' view and in the 'Branch explorer' view.

Bug

Workspace-relative patterns of global 'cloaked.co…

Workspace-relative patterns of global 'cloaked.conf', 'ignore.conf', etc. files (e.g.
/src/lib
) were not being properly matched. Fixed.

Windows GUI

Windows GUI: The 'Extended information' panel (that can be shown in branches, changesets, labels, and shelves views) was not properly updated when the view was refreshed. To update the displayed info, it was necessary to select a different item before. But now this is not required anymore, and the displayed info is properly refreshed for the selected item after the view is refreshed.

Windows GUI

Windows GUI: If the 'Extended information' panel of the 'Branches' view is shown after selecting a branch, the 'Issue tracker' info was not displayed. Fixed.

Linux GUI (GTK)

Linux GUI (GTK): Several improvements Several improvements have been made:
  • The scroll is not properly restored in some views after performing certain operations. Fixed.
  • The columns of some views didn't have a default width, causing, for example, the comments column grow to adapt to the longest. Fixed.
  • Fixed an error trying to diff a branch/changeset from a repository different than the default one.
  • The 'update forced' button in the update report dialog is cut. Fixed.
  • The directory conflict resolution panel was wrongly restored to the original location after moving it and clicking on a directory conflict. Fixed.
  • The application name will be now 'gtkplastic'.

Linux GUI (GTK)

Linux GUI (GTK): Fixed unexpected behavior pressing the 'Del' key in the checkin comments textbox or in the filter textboxes of some views.

Linux GUI (GTK)

Linux GUI (GTK): Selecting multiple incoming/outgoing branches (more than 100 branches) in the sync view, or right-clicking on them to display the context menu was downgrading the application performance, even freezing the application. Fixed.

FMOD plugin

FMOD plugin: Closing the commit dialog was causing all changes to be reverted without a warning message. Fixed.

FMOD plugin

FMOD plugin: The 'revert' action was not refreshing the FMOD project layout. Fixed.

5.4.16.693

New

Gluon

Gluon: Now, the checkout operation skips the item that cannot acquire the exclusive checkout. Similarly, the checkin operation now also skips locally changed items that cannot acquire exclusive checkout.

Gluon

Gluon: Command Line Interface (
cm partial
command): Now, locally changed items in conflict with commited server changes can be discarded using the option
-–ignorefailed
. When this option is set, the checkin operation will discard the changes in conflict and will finish the operation without them.
(Before, locally changed items in conflict with the server changes caused the checkin operation to fail and be rolled back).

Windows GUI

Windows GUI: Improved highlight colors for search results in 'Branch explorer' view. Changed some default colors used for the filters and conditional format rules.

Windows GUI

Windows GUI: Autocomments for checkin operation are now auto-refreshed with the new branch name and datetime when switching from a branch to another branch.

Merge operation

Merge operation: Now, file conflicts could be resolved with 'Preserve workspace changes' and 'Preserve source changes' options even when no merge tools are defined for those conflicting files.

Replication

Replication: Now, the replication operation will fail at the beginning of the operation if the remote server uses encryption and the local server has not been properly configured to work with remote server's encryption. (Previously, the replication operation failed after 'processing metadata' step).

Bug

Windows Installer

Windows Installer: SemanticSCM: The Plastic SCM Windows Installer did not include the necessary YamlDotNet libraries to allow external parser interaction. Fixed.

Windows Installer

Windows Installer: Reviewed .NET Framework dependencies for Plastic SCM Windows Installer. The server component and some other components (such as SCC plugin and Office plugins) requires .NET Framework 3.5 (CLR 2.0 version), which is not enabled by default in Windows 8 and Windows 10. The installer will ask for the .NET Framework 3.5 if any of these components are selected to be installed. Moreover, fixed the 'vsixpackager.exe' application, which is used to install the Visual Studio Package component, so the installer won't require .NET Framework 3.5 if this component is selected to be installed.

Windows GUI

Windows GUI: several fixes on theme configuration have been performed (changed some colors in 'Pending changes' view and 'Diff' viewers).

5.4.16.692

New

Linux GUI (GTK)

Linux GUI (GTK): A 'diff' viewer has been added in the 'Pending changes' view. It shows differences for changed files and the content for added, deleted and moved files.

Bug

Linux GUI (GTK)

Linux GUI (GTK): Message dialogs were not showing the text message when it contains some special chars (e.g:
<
,
>
). Fixed.

Linux GUI (GTK)

Linux GUI (GTK): Message dialogs were appearing behind the main window sometimes. Fixed.

Linux GUI (GTK)

Linux GUI (GTK): In some circumstances, a 'collection was modified' exception is thrown in the items view. Fixed.

Linux GUI (GTK)

Linux GUI (GTK): Fixed several error messages which were dumped on the console:
Gtk-CRITICAL **: gtk_list_store_get_path: assertion 'iter->stamp == GTK_LIST_STORE (tree_model)->stamp' failed
GdkPixbuf-CRITICAL **: gdk_pixbuf_composite: assertion `dest_x >= 0 && dest_x + dest_width <= dest->width' failed
Gtk-CRITICAL **: gtk_tree_model_sort_get_path: assertion 'tree_model_sort->stamp == iter->stamp' failed
Gtk-CRITICAL **: IA__gtk_tree_selection_select_path: assertion 'path != NULL' failed
Gtk-WARNING **: Failed to set text from markup due to error parsing markup
Gtk-CRITICAL **: gtk_tree_model_sort_iter_nth_child: assertion 'VALID_ITER (parent, tree_model_sort)' failed
Gtk-CRITICAL **: gtk_tree_model_sort_get_value: assertion 'VALID_ITER (iter, tree_model_sort)' failed
GLib-GObject-CRITICAL **: g_value_unset: assertion 'G_IS_VALUE (value)' failed
Gtk-CRITICAL **: gtk_tree_model_sort_get_path: assertion 'tree_model_sort->stamp == iter->stamp' failed
Gtk-CRITICAL **: IA__gtk_tree_selection_select_path: assertion 'path != NULL' failed
Gtk-CRITICAL **: gtk_tree_store_get_value: assertion 'VALID_ITER (iter, tree_store)' failed
GLib-GObject-CRITICAL **: g_value_unset: assertion 'G_IS_VALUE (value)' failed

5.4.16.691

New

Windows GUI

Windows GUI: Now it is possible to save changes using
Ctrl + S
keyboard shortcut in editable 'diff' viewers.

REST API

REST API: Added 'revision history' feature. Please have a look at the API documentation for further information.

Command Line Interface

Command Line Interface: Improved command help output for
lrep
and
lwk
commands.

Windows GUI

Windows GUI: SemanticSCM: Built-in semantic diff in the cset/branch diff has a new 'skip format changes' option. It's a toggle button that allows to ignore indentation and EOL changes when the semantic differences are calculated.

Gluon

Gluon: Workspace Explorer view: some item icons from the 'Workspace Explorer' view were changed. Locked items are now displayed with a different icon and color.

Gluon

Gluon: Checkin operation: Now it is possible to finish a checkin operation submitting non-conflicting local changes and discarding local changes in conflict with server changes (which are reported by the checkin operation). Previously, when any local change was in conflict with server changes, the entire checkin operation was cancelled.

Server

Server: Now the client is able to work against an encrypted server. Previously only replication operations could be performed against an encrypted server. The client will decrypt the data during the download operation and encrypt them on the checkin operation. The encryption is configured on the same way than on the servers working against an encrypted server. The encryption is configured using the 'cryptedservers.conf' file. This file contains server - encryption file pairs. The encryption/decryption is performed when uploading/downloading data and the targeted server is included in 'cryptedservers.conf' file. 'cryptedservers.conf' file example:
delta:8085 delta.keymorgan:8084 mrg.key
The encryption file contains the encryption method and password (see example below).
  • delta.key
    :
AES128 |SoC|ictrT7pgBSRDJ1m7nOlj96NTl0I23jI7T6K6ADf5X3ry0sDe0InYkOdmyLcpdnX5PzoD5yCphkw=
  • mrg.key
    :
AES128 cleanpassword
Supported encryption methods are: AES128, AES192 and AES256. Password can be either plain text or cyphered as any other password in Plastic SCM (using the cm crypt command).

Issue trackers

Issue trackers: Polarion: Included the new issue tracker plugin for Polarion ALM. This way, 'Branch explorer', 'Changesets' and 'Branches' views are now able to display issue tracking information from Polarion. The new issue tracker extension for Polarion can be configured through 'Preferences' > 'Issue Tracking' dialog.

Linux GUI & Mac GUI

Linux GUI & Mac GUI: The checkin results are now logged into the issue tracker's tasks if an issue tracker extension is properly configured.

Server

Server: Windows installer: Now, the default backend for new Plastic SCM Server installations will be set to SQLite (instead of SQLServer CE). Remember that SQLite 3.8 was already supported by Plastic SCM Server, including WAL (Write-Ahead Logging). WAL enables SQLite backend users to avoid locking when multiple threads try to read simultaneously from the database.

Windows GUI

Windows GUI: 'Diff with previous revision' is now the default action to execute when double-clicking a revision in the 'History' view.

Bug

Security

Security: Fixed an 'unhandled exception' error when trying to set an ACL for a revision identifier (it's not supported to set acl's for revisions, but the command was failing after showing an informative message).

All application icons were wrongly (blurry) displ…

All application icons were wrongly (blurry) displayed in the Windows task manager. Now they are correctly displayed.

GitSync

GitSync: Pushing changes to GitHub resulted in a 'Stream terminated early' error, even if all changes were correctly pushed. Fixed.

Server

Server: The server applications 'umtoolgui' and 'admintool' had an incorrect layout in high DPI screens. The issue is now fixed, and these applications are correcly displayed.

Windows GUI

Windows GUI: SemanticSCM: Fix a "null reference" error when the files cannot be parsed. Now, a message is shown and the text-based differences are calculated automatically.

Windows GUI

Windows GUI: SemanticSCM: The Microsoft C Runtime 2013 dependencies, which are required by the C language parser, were missing. Fixed. Now, they are included in the client installer.

Windows GUI

Windows GUI: Comments were not properly refreshed on the 'Items', 'Branches', 'Changesets' and 'Shelves' views after editing and saving them. This issue has been fixed.

Windows GUI

Windows GUI: Working with I3 (old school theme), all scrollable views did not scroll using the mouse wheel. The scrollbar did scroll, but the content didn't. Not it's fixed.

Windows GUI

Windows GUI: The action bars in the diff viewer were not drawed after changing from semantic differences to textual differences. Now it's fixed.

TeamCity plugin

TeamCity plugin: The plugin failed to poll changesets after a Plastic SCM server address/port change or a repository rename. This issue was partially fixed in version 5.4.16.680, but was still failing in some configurations. Now it's fully fixed.

Linux GUI (GTK GUI)

Linux GUI (GTK GUI): The side-by-side diff viewer's dependencies were missing. Fixed. Now they are included in the client's '.zip binaries' installer.

Linux GUI (GTK GUI)

Linux GUI (GTK GUI): Category titles in the 'Diff' window and 'Pending changes' view were not properly refreshed after applying a filter. Fixed.

Linux GUI (GTK GUI)

Linux GUI (GTK GUI): The 'Diff' window was displaying incorrect category icons for merged revisions. Fixed.

'Revert-to' operation

'Revert-to' operation: When reverting to a revision that was previously reverted, an error was thrown. Fixed. Now it is possible to revert to a revision several times without undoing changes between revert operations.

5.4.16.689

New

Linux GUI (GTK GUI)

Linux GUI (GTK GUI): A new native, gtk-based side-by-side diff viewer is out! The new built-in diff has been added to the 'diff branch/changeset' window. The new diff works for changed files and the contents for added, deleted and moved files. This is an initial release, so there are a list of limitations to consider:
  • Right now you can't directly diff moved files under the "moved" group. We will add it later. In the meantime, go to the same file under "changed" to see the diffs.
  • There are no diffs for xlinks, directories and binary meta-data yet.
  • Some options are still missing: you can't change the comparison method, syntax highlight or encoding. The comparison method is set to "recognize all" by default, which means it won't ignore EOLs & whitespaces.
  • Partial Xdiff support: it already detects moved fragments, but there are no buttons yet to navigate to the moved code or show the "sub-diff" of the fragments.

Windows GUI

Windows GUI: SemanticSCM: Added support for external language parsers. Follow these steps to configure a custom parser:
  1. Open or create the 'externalparsers.conf' file located in your Plastic SCM configuration directory (usually
    C:\Users\<your_user_name>\AppData\Local\plastic4
    )
  2. Add a line to set the parser's executable path for each file extension, as follows:
.pas=C:\MyParsers\pas2yaml.exe
2.1. Make sure there's no white space between the file extension and the '=' character.
  1. Once Plastic SCM is started, all files having the defined extensions will be semantically parsed in all diff viewers.

Windows GUI

Windows GUI: Branch Explorer: Replication sources can now be hidden from the options panel in the 'Branch Explorer' view. To do that, open the 'options' panel and press the 'close' button on the replication sources you want to hide. To show them again, just select 'Show excluded replication sources' option and the excluded sources will be shown on their original position. To remove them from the 'excluded' list, press the 'add' button.

Replication operation

Replication operation: Improvements on the replication progress on Windows:
  • Metadata transfer (after fetching data) now has progress.
  • Improved localization of the messages during the replica.
  • Data transfer on Windows get progress in MB (size).
  • Cancel improved on Windows. It can't lock the GUI now.

Bug

Sync View

Sync View: "Cancel" operation has been fixed. Now you can press 'cancel' button and the GUI won't look "hanged up" anymore. In fact it wasn't a server thing, just a GUI thing: the cancel button was disabled and everything looked "hanged up" while it really wasn't. Also improved the status retrieval during replica to make it more responsive for very quick to push/pull branches. Improved texts on the sync dialog so now you know if you're pushing or pulling and from/to where. A "grey panel" was displayed when loading big sync view config files. It is now gone.

Windows GUI

Windows GUI: Branch explorer: 'Display options' -> 'Enter visibility/relayout mode'. The explanatory text was not line-wrapped, so the text was not visible. Now it's fixed.

Users management server tool

Users management server tool:
umtoolgui
application crashed when 'users.conf' file was corrupt. Now, an error dialog will appear showing a descriptive error message.

Users management server tool

Users management server tool:
umtoolgui
application crashed when it was launched without root privileges on linux. Fixed.

5.4.16.688

New

Multi-level submodule support

Multi-level submodule support Now a full hierarchy of submodules can be added. It is possible to have repositories as follow:
default/codicedefault/codice/plasticscmdefault/codice/plasticscm/windowsguidefault/codice/semanticmerge
Before only 1 level of submodules was allowed, but now a full hierarchy can be created, which is useful when a certain namespace policy must be enforced. All the submodules inside a given repository are stored inside the same database as the repository, actually using different table name prefixes or schemas in the case of SQL Server. Remarks:
  • A submodule can't be moved to a different repo. It stays on the repo where it was created.
  • A submodule can be moved "inside" a different submodule and submodule hierarchies can be freely modified just applying repository rename operations. It means you can start with
default/codicedefault/codice/plasticscmdefault/codice/plasticscm/windowsgui
And transform the hierarchy as follows:
default/codicedefault/codice/plasticscmdefault/codice/windowsgui
And even rename "codice" to "plastic-code" and then:
default/plastic-codedefault/plastic-code/plasticscmdefault/plastic-code/windowsgui
  • When you delete a submodule, you delete all the submodules inside it! Remember that delete doesn't really remove the submodule, it stays on the database and it is just unlinked from Plastic (as happens with repositories).
  • A submodule inherits permissions from its parent submodule. When you move a submodule, the permissions from the new parent will be applied.

GTK/Mac GUIs

GTK/Mac GUIs: 'Open' and 'Open with...' context menu options are now available in the 'Pending changes' view.

Gluon

Gluon: Usability improvements. When deleting an item from the workspace explorer, the the nearest sibling is focused (instead of the root item as it was done before).

Gluon

Gluon: Usability improvements. When typing text in the comments textbox, the focus is preserved even if the 'checkin' view is being refreshed.

Bug

Gluon

Gluon: If the workspace is configured with the 'Compare file contents instead of timestamp when determining changed status' setting, the 'workspace explorer view' was showing an error when it was refreshed and a file was delete in the workspace. Fixed.

Windows GUI

Windows GUI: Several fixes have been made on the GUI theme configuration (wrong colors on dialogs and buttons).

Installer

Installer: The windows installer did not optimize assemblies (NGEN) in some OS, such as Windows 10 or some Windows 8.1. Now it's fixed. The assemblies are optimized during the installation process in background. Remark: The assembly optimization will only be executed if the installation is run with elevated (administrator) privileges. So we recommend to install Plastic SCM with elevated privileges to enforce optimizing its executable files.

5.4.16.687

New

GTK GUI

GTK GUI: The diff window now includes a filter textbox

Annotate

Annotate: Little improvement in 'Annotate' view. The column for 'Show whether line was changed in a merge' preference now shows 'Merged' string for affected lines.

Bug

JIRA integration

JIRA integration: The Branch Prefix configuration parameter was being ignored when working in the 'Branch per task' mode. Fixed.

Triggers

Triggers: The 'merge-to' operation was not firing the server checkin triggers. Fixed.

Visual Studio integration

Visual Studio integration: The Visual Studio Package (>=VS2010) did not track moved and renamed files properly. Fixed.

5.4.16.686

New

Gluon

Gluon: when sorting the workspace contents by status, folder and files are not mixed anymore.

Gluon

Gluon: changeset differences can now be launched by double-clicking on a changeset in the changesets view.

Windows GUI

Windows GUI: The issue tracker integration icons on the Windows GUI have been updated.

Windows GUI

Windows GUI: 'Attributes' tab icons in 'Branch Explorer' options panel were updated. Some GUI improvements were also performed.

GTK/Mac GUIs

GTK/Mac GUIs: If the server auth mode is 'Active Directory' working mode, the client configuration wizard will automatically set the client auth mode to a compatible 'LDAP' working mode to connect to the 'Active Directory' server. User and password texboxes will be shown to fill in the user's LDAP credentials. REMARK: Remember to start the Plastic SCM server with a valid Active Directory user account.

GTK/Mac GUIs

GTK/Mac GUIs: Added 'diff selected changesets' context menu option when 2 different changesets are selected either in the 'Changesets' view or in the 'Branch Explorer' view.

GTK/Mac GUIs

GTK/Mac GUIs: Added 'diff selected revisions' context menu option when 2 different revisions are selected in the 'History' view.

GTK/Mac GUIs

GTK/Mac GUIs: Added a new "Diff workspace contents" context menu option to added/deleted items on the Pending Changes View.

GTK GUI

GTK GUI: Accelerator keys have been implemented for major context menu options (same as in Windows GUI).

Command line client

Command line client: Improved format string for
lrep
and
lwk
commands.
Now, descriptive names like
{repname}
or
{wkname}
can be used instead of numbers in the format string. Improved default output format for this commands. Check the commands help for more info.

Command line client

Command line client: The
cm status
command now prints current directory relative paths by default, instead of workspace root relative paths.
Nevertheless, workspace root relative paths still can be printed by specifying the
--wrp
(or
----wkrootrelativepaths
) flag.
Also, full paths can be also printed by specifying the
--fp
(or
--fullpaths
)
Remarks:
  1. cm status --xml
    command will still print workspace root relative paths by default. The
    --fp
    (or
    --fullpaths
    ) will print absolute paths instead.
  2. The
    cm status --machinereadable
    and
    cm status --short
    commands will remain unchanged, and they will print absolute paths (as they are commonly used for automation purpouses).

Command line client

Command line client: The
cm diff
command now prints workspace root relative paths by default, instead of full workspace paths.
Nevertheless, full workspace paths still can be printed by specifying the
--fp
(or
--fullpaths
) flag.

Command line client

Command line client: The
cm log
command now prints workspace root relative paths by default, instead of full workspace paths.
Nevertheless, full workspace paths still can be printed by specifying the
--fp
(or
--fullpaths
) flag.
Repository paths can be forcibly printed if the
--repositorypaths
flag is specified. This flag will override the
--fp
flag.

Server

Server: The
umtool
's
changeuserpassword
command syntax has been modified modified. The new syntax is
umtool changeuserpassword username newpassword newpassword
Now, to reset a user password on the UP configuration mode is not necesary to provide the old user password, since the command is executed by an admin user. However, you will need to repeat the new password in the command arguments. The
changeuserpassword
has changed its alias to
passwd
.
Finally, the command can now be run in interactive mode if you don't provide any arguments.

Linux

Linux: Added Debian 8.1 compatibility. Please have a look at the linux package installation instructions.

Bug

Linux

Linux: The client didn't accept a ssl server certificate when replicating against a ssl remote server. It only happened in Linux. Fixed.

GitSync

GitSync: When a Git commit contains a directory reference from an old commit (different than the parent commit), its content could be wrongly deleted during the synchronization process. Fixed

Windows GUI

Windows GUI: Some aesthetical improvements have been done on the Preferences tab in the 'Options' dialog.

Windows GUI

Windows GUI: Fixed an usability issue in the annotate view. The metadata textbox (the left one) scrolled right automatically after clicking when the line was long.

5.4.16.685

New

Gluon

Gluon: The Gluon views can now be refreshed by pressing
F5
key.

Issue trackers

Issue trackers: The 'Create branch' dialog is now able to list all pending issues assigned to a user with JIRA 'multiple projects' working mode. Please check this link out for further info about JIRA multi-project configuration in Plastic SCM.

Eclipse plugin

Eclipse plugin: Now it's possible to checkin files from different workspaces from the package explorer.

Eclipse plugin

Eclipse plugin: Improved the single branch development pattern in the Eclipse plugin. When checking in files, if other users performed changes in the same branch, the Eclipse plugin tries to perform an automatic 'update merge'. If user intervention is required to solve merge conflicts, the merge dialog is shown.

Server Installers

Server Installers: SQLite backend configuration: The built-in server's database backend config file (db.conf) is now configured to enable the WAL (Write-Ahead Logging) feature. WAL enables SQLite backend users to avoid locking when multiple threads try to read simultaneously from the database. SQLite is the default database backend on Linux/Mac installations and optional on Windows.

GTK & Mac GUIs

GTK & Mac GUIs: 'diff branch/changeset' window can now be launched by double-clicking them in the 'Branch Explorer' view.

Windows GUI

Windows GUI: The 'Branch Explorer' view background colors are now customized with the selected theme.

Windows GUI

Windows GUI: The 'Analyze differences' feature in the 'diff branch/changeset' window are now calculated using only text files (ignoring binary files).

Bug

Windows GUI

Windows GUI: 'diff branch/changeset' window: The 'current difference' index was incorrectly updated when navigating forward or backwards. Fixed.

Windows GUI

Windows GUI: A 'null reference' exception was thrown when browsing the repository on a given changeset or branch, and there is a xlink pointing to a repository that doesn't exist. Fixed.

Windows GUI

Windows GUI: Fixed an error when the GUI was trying to connect to a server using SSL with a not valid certificate host.

Command Line Interface

Command Line Interface:
cm listtriggers
command was not showing the user name properly in LDAP and AD authentication modes. Fixed.

5.4.16.684

New

Windows GUI

Windows GUI: Analyze Refactors – to help you diff refactored code that has been moved between different files. It is only available for Windows. Diff a branch or a changeset and you will see a new "Analyze Refactors" button. Click on it and it will parse your C#, Vb.net, C or Java code to detect refactors. This way you can easily diff a method that was moved between two files as a result of a class being split. Plastic will locate the two versions of the method, on different files!, and you'll be able to easily diff it. This is what we call multi-file semantic diff and it is another step ahead towards Semantic Version Control.

Server autodiscovery has been improved. Now there…

Server autodiscovery has been improved. Now there are more chances to find active servers on LAN or WiFi networking.

Tube

Tube: Now the control connections retry after 500ms, then 1 sec, 5 secs and up to 60secs. Try to react faster if a short network cut happens.

Triggers

Triggers: New 'change attribute value' server side trigger implemented. The trigger type is
chattvalue
.
This kind of triggers will be launched when the value of an attribute applied to a certain object changes, and they can be fired both before and after attribute value is changed. Find below examples of how both 'before' and 'after'
chattvalue
triggers can be created:
cm mktrigger before-chattvalue before-chattvalue-trigger-name "c:\triggers\check-before-chattvalue.exe"
cm mktrigger after-chattvalue after-chattvalue-trigger-name "c:\triggers\check-after-chattvalue.exe"
When a
chattvalue
trigger is fired, the follwing info will be available reading from the standard input:
  • 'before chattvalue' format:
    object_spec attribute:"att_name" value:"att_value"
  • 'after chattvalue' format:
    object_spec attribute:"att_name" oldvalue:"old_att_value" newvalue:"new_att_value"
Examples:
  • 'before chattvalue' :
    br:/main/task985 attribute:"STATUS" value:"OK"
  • 'after chattvalue' :
    lb:BL145 attribute:"RELEASED" oldvalue:"FALSE" newvalue:"TRUE"
The following environment variables are also available to be used during the trigger execution:
PLASTIC_USERPLASTIC_CLIENTMACHINEPLASTIC_SERVERPLASTIC_REPOSITORY_NAMEPLASTIC_ATTRIBUTE_NAME
REMARKS: To take advantage of this new kind of triggers, both Plastic SCM client and server should be upgraded to this version.

GTK & Mac GUIs

GTK & Mac GUIs: The 'diff' window now supports showing the contents of added and deleted files.

Installers

Installers: client .zip installers now sets a+x permissions to application launcher scripts

Bug

Mac OS server package

Mac OS server package: There was an error when configuring MySQL as database backend: "codepage 1252 not supported". Fixed.

5.4.16.683

New

Windows GUI

Windows GUI: SemanticSCM Outline: Added support for mouse wheel. Also improved the look and feel for the available themes.

Windows GUI

Windows GUI: SemanticSCM: When a declaration has been moved and renamed, the adornment for the moved difference is not drawn in the visual diff. Fixed.

Code review triggers

Code review triggers: The SEID now is resolved to a user name and stored in the
PLASTIC_REVIEW_ASSIGNEE
variable.

Bug

Visual Studio plugin

Visual Studio plugin: Fixed a
NullReferenceException
when showing the differences of a file from the Solution Explorer's 'Checkin' dialog in Visual Studio.

Unity 3D plugin

Unity 3D plugin: Fixed an error when showing the differences of a changeset/branch from the 'Branch Explorer' dialog in Unity 3D plugin.

Merge Tool

Merge Tool: Conflict's position were not properly updated when resolving a previous non-automatic conflict. Fixed.

5.4.16.682

New

REST API

REST API: Now, Plastic SCM Windows installer contains a REST API listener, named
plasticapi.exe
.
The RESP API listener it's a Plactic SCM client API, which is in a beta phase. We're still developing more features that will be included in further releases. To get more info about the REST API, please contact support at: 'support@codicesoftware.com'

Command Line Interface

Command Line Interface: Added a '--ignorefailed' parameter to the
cm partial configure
command. This parameter will enable the command to ignore any configuration errors detected during its execution.
This parameter may be useful when loading/unloading workspace items without a previous check whether the items are present or not.

Windows GUI

Windows GUI: Added a new text box on the 'branch creation' dialog to filter 'pending tasks' list on 'From task' mode.

Bug

Windows GUI applications layout was incorrect in…

Windows GUI applications layout was incorrect in high DPI screens. Fixed. (GUI applications such as 'Plastic SCM GUI client', 'Gluon', 'Mergetool', 'Binmergetool' and client/server configuration wizards).

Windows GUI

Windows GUI: When moving the mouse cursor over the vertical splitter in the 'Diff' viewer, the cursor becames a hand icon, and it won't change back to the default cursor icon anymore. Fixed.

TeamCity plugin

TeamCity plugin: Fixed a bug in TeamCity plugin. Now the plugin can reuse the same workspace for all VCS configuration when the parameter 'Workspace directory' is filled.

5.4.16.681

New

codeBeamer Extension

codeBeamer Extension: The new codeBeamer issue tracker extension is now included in Plastic SCM. To enable this new integration, go to 'Preferences' -> 'Issue Tracking' dialog in Plastic SCM GUI client.

Windows GUI

Windows GUI: The diff view now shows an info message when an encoding change is detected.

Windows GUI

Windows GUI: Creating branches from issue tracker information is now available for all supported extensions: BugZilla, Mantis, FogBugz, Rally, VersionOne, Trac and Axosoft. However, we regret to inform you that the 'Mark task as open in issue tracker' option won't be available for VersionOne.

Plastic SCM release names are now song names. A l…

Plastic SCM release names are now song names. A link to the Spotify song can be found in the 'About' dialog.

Windows GUI

Windows GUI: Syntax highlight and Semantic diff are now enabled in the 'method history' feature.

Windows GUI

Windows GUI: Semantic diff now shows the changes in the comments for the .NET languages (C# and Visual Basic).

Windows GUI

Windows GUI: Fixed an error when closing the 'checkin pending changes' dialog when no checkin comment is provided. Previously, if the dialog was closed using the close button, the checkin was still performed. Now, when closing the dialog, the checkin operation is cancelled.

Windows GUI

Windows GUI: The Plastic SCM theme for Windows can now be changed from the 'Preferences' dialog. To change the theme, go to 'Preferences' -> 'Theme'. Two new themes (Montana and Montana Dark) are now included within the Plastic SCM installer. The theme can be also changed by using the
--theme=themename
option from the command line.
Current avaliable theme names are: 'i3', 'windowsnative', 'montana' and 'montana-dark'.

Several improvements in the differences calculation

Several improvements in the differences calculation have been done:
  • Calculate xdiff moved regions inside semantic changed declarations
  • Calculate moved regions inside other xdiff moved regions (recursively)
All this info was previously available but not directly shown in the 'diff' textboxes. You needed to use the xdiff buttons to diff the contents. In the case of moved regions inside other moved regions you ended up with several windows opened.

Bug

Merge Tool

Merge Tool: The encoding is not taken into account when the result file is saved. Fixed.

Windows GUI

Windows GUI: Diff control: Update the textboxes info correctly when changing the syntax hightlight. Before, the adornments (semantic and xdiff buttons) and the outlining mode got lost. In addition, enable or disable the outlining menus depending on its availability.

5.4.16.680

New

Windows GUI

Windows GUI: the 'Mount this changeset in Plastic Drive' changeset context menu option is now visible by default in both the 'Changesets' and 'Branch explorer' views. 'Plastic Drive' is a virtual drive for Windows to mount changesets and be able to browse using regular tools like Visual Studio.

GTK/Mac GUIs

GTK/Mac GUIs: Avoid showing tons of error messages when the views are rendered and the credentials are not valid.

Bug

JIRA extension

JIRA extension: The client wasn't updating the custom JIRA field when the issue tracker working mode was set to "Task on branch". Fixed.

The TeamCity plugin failed to poll changesets aft…

The TeamCity plugin failed to poll changesets after a PlasticSCM server address/port change or a repository rename.

Diff control

Diff control: The options button remained disabled when switching between text and semantic diffs. Fixed.

configureserver was broken on Linux due to a wron…

configureserver was broken on Linux due to a wrong dependency with WPF. Fixed.

Mac server

Mac server: The new installer was wiping out all user configuration and repository data on upgrade. Fixed.

5.4.16.679

New

Windows GUI

Windows GUI: The diff view (branch, cset) now adds Semantic Outline as part of the Semantic Version Control initiative. Once you enter in semantic mode, an outline of the changes is displayed, highlighting the changes on methods, classes, attributes and so on. Clicking on an element on the outline highlights the corresponding declaration on the right side of the diff view.

Windows GUI

Windows GUI: A new feature has been added in the Semantic version control initiative: the 'Visual Diff'. It shows the semantic differences for a file in a visual mode. The feature provides three different display modes: hiding unchanged declarations, showing them or grouping them.

Windows GUI

Windows GUI: Improvements on the semantic diff navigation. When you clicked a difference the navigation panel wasn't updated for the moves. The same happened for adornments. Both are now working fine.

Bug

Windows GUI

Windows GUI: The annotate lines didn't match the textbox lines when collapsing nodes. Now it is fixed and the annotated lines are correctly collapsed.

Windows GUI

Windows GUI: Semantic diffing wasn't correctly matching methods under certain circumstances. Sometimes a method was marked as renamed and matched to the wrong one. It has been fixed so these sort of issues shouldn't happen now.

Pending changes view

Pending changes view: Fixed an error calculating pending changes when setting the similarity level to 0% to match locally moved items. Fixed. (The error happened having several files manually moved into a private directory and at least one of moved items has also several content changes).

5.4.16.677

New

Initial release of the Semantic version control i…

Initial release of the Semantic version control initiative. Now the Windows GUI includes built-in semantic diffing for C#, VB.net and Java. Each time you diff a branch, a changeset or a file from "pending changes" you'll have the option to switch to semantic mode. The new diff with semantic capabilities is able to:
  • Match methods (declarations of any type in fact) to calculate the diffs. You moved a method down? No problem!
  • Decorate the side by side text diff with symbols (A- added, D- deleted, C- changed, M- moved, R- renamed) to better understand the changes.
  • Ignore code format changes such as indentation and EOL changes. Suppose you just split a method call in several lines without other changes – the diff will be ignored by default.
Important remark: This new feature forces the Plastic SCM GUI to depend on .NET 4.5.1 and higher.

Windows GUI

Windows GUI: A workspace can now be activated by double-clicking on it on the 'Workspaces' view.

5.4.16.676

New

Windows GUI

Windows GUI: Look and feel of Plastic SCM Windows GUI adapted to Windows 10.

GTK GUI

GTK GUI: 'Sync replication' view has been implemented and it is fully functional.

The 'find branches' performance has been improved…

The 'find branches' performance has been improved. Now it's about 20 times faster for a large number of branches.

Bug

Installer

Installer: Upgrading from versions less than 5.4.16.672 (with Windows Explorer integration installed) to upper versions failed with an error message. There was a compatibility issue that has been fixed.

5.4.16.675

New

CLI

CLI: The
cm ls
command now accepts branch specs for its --tree parameter. These branch specs will need to begin with the usual 'br:' prefix to tell them from changeset specs, e.g.:
cm ls /code --tree=br:/main/scm13596@myrep@denver:7070

CLI

CLI: The
cm history
command now accepts server paths, no longer requiring a workspace. A new revision spec format is required for that matter:
[rev:]serverpath:{path}#(cs:{cset_id}|br:{br_name}|lb:{label_name})[@{repname}[@{host}:{port}]]
These are some valid examples:
serverpath:/src/lib/foo.c#br:/main/fix-1.3/task135@codebase@secure:8088
rev:serverpath:/src/main/bar.c#cs:9371@codebase // If default server is secure:8088
serverpath:/doc/readme.md#lb:BL035 // If executed inside a workspace whose server is codebase@secure:8088
Additionally, other commands (such as
cm cat
or
cm diff
) benefit from this new kind of revision specs.
Examples:
cm cat serverpath:/src/lib/foo.c#br:/main/task5591@otherrepo
cm diff serverpath:/src/lib/foo.c#cs:135@mainrepo serverpath:/src/lib/foo.c#cs:351@mainrepo

CLI

CLI: the
cm listlocks
command has modified its syntax. Calling this command without arguments will produce the same output as before: the list of locked items in the default (current workspace/client.conf) server.
Now it is possible to target different servers using the new
--server=address:port
parameter.
Finally, the
cm listlocks
command now accepts a list of revision specifications from which Plastic SCM will display a line for each associated item detailing the lock information, if their associated items are actually locked in their servers.
The
--server
parameter will override the spec servers.
This is the new command syntax:
cm listlocks [revspec [revspec ...]] [--server=address:port] [--onlycurrentuser] [--onlycurrentworkspace]
Examples:
cm listlocks
cm listlocks --onlycurrentworkspace
cm listlocks --server=myserver:9090 --onlycurrentuser
cm listlocks revid:93152@codebase@mainserver:9095
cm listlocks itemid:1115#cs:611@extensions
cm listlocks serverpath:/src/foo.c#br:/main@game@gameserver:8084 serverpath:/doc/readme.md#br:/main@doc@docserver:9090 --onlycurrentuser

Windows GUI

Windows GUI: New features in the textbox editor are now available, such as:
  • Enable the edition for the added and moved files.
  • Enable the edition when the revision on the right side (destination) is on disk for the 'diff branch/changeset', 'changeset explorer' and 'code review' windows.

Bug

Merge

Merge: On certain complex structure refactors (with several directories moved, causing cycles, reusing paths, etc.), the differences could omit some deleted items. As a result, the merge operation could fail when a file that is inside an omitted deleted directory is changed on the other contributor. Fixed.

5.4.16.674

New

Windows GUI

Windows GUI: This release includes several improvements in text editors, described below with more detail. These improvements cause the minimum .NET framework required to run Plastic SCM GUI is .NET 4.0 or higher.

Windows GUI

Windows GUI: Textbox editor usability has been greatly improved. New features have been implemented, such as:
  • Undo/Redo stack.
  • Intellisense (DotNet, javascript and python).
  • Smart editing: match braces and parenthesis.

Windows GUI

Windows GUI: Configurable .NET namespaces for intellisense. By default, intellisense for .NET languages only references 'mscorlib' assemblies, and the following namespaces:
  • System
  • System.Core
  • System.Xml
The user can customize the loaded namespaces for intellisense, creating a configuration file:
<plastic_config>/syntaxhighlight/dotnetlanguage.conf
Example:
# type a list of namespaces to be available in the intellipromptSystem.Collections.GenericSytem.IO

Windows GUI

Windows GUI: New features in the textbox editor are now available, such as:
  • Convert tabs to whitespaces
  • Configure tab width (4 or 8 chars)
  • Show margin line (none, 60, 80, 100, 120 or 140 columns)

Windows GUI

Windows GUI: Outlining support in the diff viewers. The outlining actions are the following:
  • Collapse regions without diffs: Collapse all regions except those that have differences.
  • Collapse to definitions: Collapse all implementation nodes (such as 'methods', 'comments' and 'properties') as Visual Studio does.
  • Expand all: Expand all nodes.
The new actions are available from the 'options' menu and from the context menu of each textbox showed in the diff viewer.

Windows GUI

Windows GUI: Differences calculation performance has been gratly improved. The improvements are very noticeable when calculating differences of big files (60-70% faster).

Windows GUI

Windows GUI: Syntax highlight support in the diff viewers. Supported languages:
  • (Plain text)
  • C#
  • Visual Basic
  • Python v2.x
  • Python v3.x
  • JavaScript
  • JSON
  • XML
  • Batch file
  • C
  • C++
  • CSS
  • HTML
  • INI file
  • Assembly
  • Java
  • Lua
  • Markdown
  • MSIL
  • Pascal
  • Perl
  • PHP
  • PowerShell
  • RTF
  • Ruby
  • SQL
  • VBScript
  • XAML
The language is automatically selected based on the file extension. The user can customize the language extensions, creating a configuration file:
<plastic_config>/syntaxhighlight/languages.conf
Example:
#syntax language definition by file extension.js:JavaScript.custom:XML.txt:Plain text

Windows GUI

Windows GUI: XDiff functionality integrated in the diff viewer: The moved fragments now highlight the inner differences.

Visual Studio integration

Visual Studio integration: The Visual Studio Package now supports Visual Studio 2015.

Bug

Mergetool

Mergetool: Conflicts counters were wrongly displayed when clicking on 'previous manual conflict' button and manual conflict count was zero. Fixed.

Web UI

Web UI: Repository progress charts on the dashboard will no longer appear as 'unavailable' if their data are available but not up-to-date.

5.4.16.671

New

Command Line Interface

Command Line Interface: A new parameter for the
cm partial update
command is now available:
--report
parameter. If present, the command will print a list of the performed actions at the end of its execution.

Issue tracker extensions

Issue tracker extensions: The issue tracker extension system has been completely refurbished. You'll note that custom-made issue tracker extensions referencing the previous extensioncommon.dll library will no longer work. Please feel free to contact us at our forum if you developed your own issue tracker extension and need some hints to adapt your code to the new interface structure.

Windows GUI

Windows GUI: The 'Create Branch' dialog has been completely refurbished. It offers users the possibility to select a pending task from the configured issue tracker (displayed as a list) to automatically fill in the branch name and comment text fields. Additionally, a request can be sent to the issue tracker to mark the selected task as 'open' if it wasn't before. However, only JIRA is supporting this functionality at this moment. New issue tracker compatibility will be implemented in the upcoming releases.

JIRA extension

JIRA extension: JIRA fields mapping support is now available. However, the format has changed. Instead of using XML fields, there's now a "Fields mapping" configuration parameter (see Issue tracker configuration panel). It stores field name pairs (from->to) separated by '|' (vertical bar) characters. The parameter syntax is:
[ jira_field_name -> plastic_property_name [ | jira_field_name -> plastic_property_name [ | ... ] ] ]
This is a valid example of JIRA fields mapping:
issue.project->Description|issue.reporter->Owner|issue.description->Title
In this case, the displayed Description would contain the project key, the displayed Owner would be the JIRA user who created the issue and the displayed Title would be the JIRA issue description.

GUI

GUI: The 'profile' creation/edition dialog ('Profiles' tab on the 'preferences' window) has been improved. Now it's a single form instead of a wizard. The most important improvement is that it won't require to fill the destination server's working mode anymore when creating/editing a profile.

Bug

FMOD Plugin

FMOD Plugin: The 'sync' operation has been fixed. However, only global updates are allowed; the 'Sync selection' option will perform the same action as the "Sync & merge" one.

Command Line Interface

Command Line Interface: the
cm unco --all
command could fail in certain border cases when undoing renamed/moved folders out of Plastic SCM control. The failing scenario could be as follows:
  • Have a workspace with the following items:
    /src
    ,
    /src/foo.c
    and
    /src/bar.c
  • copy
    /src
    to
    /src_bak
  • delete
    /src/foo.c
  • execute
    cm unco --all
    -> Error.
The issue has been fixed.

GUI

GUI: Fixed the server autodiscovery dialog. It used to fail when only one server was detected but it is working fine now.

5.4.16.669

New

Issue tracker extensions

Issue tracker extensions: The issue tracker extension system has been completely refurbished. You'll note that custom-made issue tracker extensions referencing the previous extensioncommon.dll library will no longer work. Please feel free to contact us at our forum if you developed your own issue tracker extension and need some hints to adapt your code to the new interface structure.

Windows GUI

Windows GUI: The 'Create Branch' dialog has been completely refurbished. It offers users the possibility to select a pending task from the configured issue tracker (displayed as a list) to automatically fill in the branch name and comment text fields. Additionally, a request can be sent to the issue tracker to mark the selected task as 'open' if it wasn't before. However, only JIRA is supporting this functionality at this moment. New issue tracker compatibility will be implemented in the upcoming releases.

JIRA extension

JIRA extension: JIRA fields mapping support is now available. However, the format has changed. Instead of using XML fields, there's now a 'Fields mapping' configuration parameter (see Issue tracker configuration panel). It stores field name pairs (from->to) separated by '|' (vertical bar) characters. The parameter syntax is:
[ jira_field_name -> plastic_property_name [ | jira_field_name -> plastic_property_name [ | ... ] ] ]
This is a valid example of JIRA fields mapping:
issue.project->Description|issue.reporter->Owner|issue.description->Title
In this case, the displayed Description would contain the project key, the displayed Owner would be the JIRA user who created the issue and the displayed Title would be the JIRA issue description.

Command Line Interface

Command Line Interface: A new parameter for the
cm partial update
command is now available:
--report
parameter. If present, the command will print a list of the performed actions at the end of its execution.

Bug

FMOD Plugin

FMOD Plugin: The 'sync' operation has been fixed. However, only global updates are allowed; the 'Sync selection' option will perform the same action as the "Sync & merge" one.

Command Line Interface

Command Line Interface: the
cm unco --all
command could fail in certain border cases when undoing renamed/moved folders out of Plastic SCM control. The failing scenario could be as follows:
  • Have a workspace with the following items:
    /src
    ,
    /src/foo.c
    and
    /src/bar.c
  • copy
    /src
    to
    /src_bak
  • delete
    /src/foo.c
  • execute
    cm unco --all
    -> Error.
The issue has been fixed.

5.4.16.668

New

Mac GUI

Mac GUI: The 'macplastic' client installer now includes command line tools, such as 'cm' and 'clconfigureclient' as bundled applications. These applications can be found at the following locations:
  • /Applications/macplastic.app/Contents/Applications/cm.app/Contents/MacOS/cm
  • /Applications/macplastic.app/Contents/Applications/clconfigureclient.app/Contents/MacOS/clconfigureclient

5.4.16.667

New

Unity 3D Plugin

Unity 3D Plugin: The 'ignore.conf' for Unity plugin has been improved in order to avoid adding '.private.N' files accidentally when the 'automatic add' option is set.

Bug

Checkin operation

Checkin operation: Fixed an error that could happen when the checkin operation is canceled during the upload stage. The detailed checkin progress for big files on slow networks was broken and has been fixed (it was broken in the task to implement 'retries' during replica at the network level, from release "5.4.16.661").

Create label operation

Create label operation: Several issues labeling xlinked repositories have been fixed:
  • Readonly xlinked repositories were wrongly labeled. Now, they are not labeled as these repositories cannot be modified through the readonly xlink.
  • Labeling different writable xlinks pointing to the same repository was not supported (the create label operation failed with the error: ' The label already exists'). Now, this scenario is supported.
  • Command Line Interface: The
    cm mklabel
    command now allows to specify a given changeset to be labeled, even if the
    --allxlinkedrepositories
    flag is set.

5.4.16.666

New

GTK GUI

GTK GUI: Release number and release name are now displayed in the 'About' dialog. A link to the release notes is also available.

Bug

Replication

Replication: Fixed an issue introduced in release 5.4.16.662 that prevented replica to proceed with older 5.4 servers depending on language settings: an exception was incorrectly handled and it is fixed now.

5.4.16.665

New

JIRA Issue tracker extension

JIRA Issue tracker extension: The JIRA extension can now be configured to reuse the same LDAP credentials used in Plastic SCM user authentication to log in in JIRA. Both Plastic SCM Server and JIRA must share the same LDAP user directory for this functionality to work properly.

File type configuration

File type configuration: The 'filetypes.conf' config file allows users to associate the file extensions to file types (binary or text). This config file can now be placed at the root directory of the workspace. This way, the file type configuration can be easily distributed among users.

Gluon

Gluon: 'after-checkin' triggers are now supported

Bug

Annotate

Annotate: The Plastic SCM GUI could show a 'TimeSpan overflowed' error when the annotated file was too large and its lines were old (unchanged since several months or years ago). Fixed.

Windows Installer

Windows Installer: Some components previously installed were not remembered to be re-installed when upgrading to a newer version. Affected components were:
  • Windows Explorer Integration
  • IntelliJ IDEA plugins
  • Office plugins
Now the issue it's fixed.

Windows GUI

Windows GUI: Branch Explorer: Associated branch's issue tracker info was not being displayed if the 'Display full branch names' option was disabled. Fixed.

Windows GUI

Windows GUI: Xlinks: When a checked-out xlink with changes inside is checked-in to a different branch using the option 'Checkin changes to a different branch…', the xlinked full branch name and expansion rules were not correctly set. Fixed.

5.4.16.664

New

GUI

GUI: The repository explorer views and dialogs now include a text field to retrieve repositories from a custom server. Leave it empty to retrieve repositories from the default sources: default server in client.conf, repositories from workspaces, stored profiles and from 'plastic.servers' configuration file.

Mac & GTK GUIs

Mac & GTK GUIs: Connect to remote, non profiled servers dialog is now implemented. The GUI will now prompt users for the remote server credentials if needed.

Mac GUI

Mac GUI: 'Sync replication' view has been implemented and it is fully functional.

FMOD plugin beta

FMOD plugin beta: Moved items are now displayed on the commit dialog. Also, items locked in a different workspace will now be marked with a 'ghosted' checkbox. Remember to ask 'support@codicesoftware.com' for further info about FMOD Studio plugin.

5.4.16.663

New

Gluon

Gluon: Reverting to another revision now shows item status as 'copied/replaced' in the 'workspace explorer' view.

Windows GUI

Windows GUI: Application startup performance improvement: the GUI now starts 80% faster.

Windows GUI

Windows GUI: Improved the mechanism to remember the focused item in the 'Items' view.

Bug

Gluon

Gluon: The scroll did not reach the bottom of the 'workspace explorer' view when the view was showing tons of files. Fixed.

5.4.16.662

New

The client can now accept SSL certificates requir…

The client can now accept SSL certificates required by the server for replication operations. Before, the certificate had to be accepted on the server side, but now it can be done from the client side and installed on server provided the user is the admin of the server (owner of the repository server). This is useful for individual distributed servers.

Server

Server: Now, if the encryption configuration is changed on the 'cryptedservers.conf' file, the new configuration will be applied without restarting the server.

Command line client

Command line client: 'cm sync' command: Changed the way the sync mappings are stored. Now, they are stored in the local user folder, instead of attributes linked to Plastic SCM objects (such as changesets, branches, and revisions). The 'cm sync' performance has been improved. With these changes, syncing the 'mono' repository from github is 80% faster.

5.4.16.661

New

Unity 3D Plugin

Unity 3D Plugin: 'Gluon Mode' setting has been added in order to configure the plugin to work with partial workspaces.

Unity 3D Plugin

Unity 3D Plugin: Now, the plugin uses the 'MacPlastic SCM' application instead of the old X11 version.

Replication operations can now handle network iss…

Replication operations can now handle network issues and reconnect if the network is gone for a few seconds. It works as follows:
  • If a socket gets closed in the middle of a replica then the operation is retried after 1, 5 and then 20 seconds.
  • If it is able to reconnect then everything works. Otherwise the operation fails.
It is very useful to support network issues on long replicas without having to restart the whole thing. For instance: users can be on WiFi, switch to LAN and the operation won't be interrupted.

5.4.16.659

New

Replication operations reuse network connections…

Replication operations reuse network connections between replicas, something that was not happening before. It means it is now slightly faster to replicate several branches.

Gluon

Gluon: A 'checkin' option has been added to the context menu on the 'Workspace explorer' view. This option will open the 'Checkin changes' view on the right side of the view.

Gluon

Gluon: Small fixes in texts and icons

FMOD plugin beta

FMOD plugin beta: We're proud to announce a brand new plugin to integrate Gluon and FMOD Studio. Ask us! (support@codicesoftware.com)

Bug

GitSync

GitSync: The 'cm sync' command didn't check correctly if the item were already loaded in the server tree, leading to 'item loaded twice' exceptions. Fixed.

5.4.16.657

New

Windows GUI

Windows GUI: Usability - the 'create xlink' dialog has been improved:
  • The 'xlink name' text input field will be autocompleted when the target repository is selected if the user doesn't manually alter it.
  • The 'use relative server' checkbox is enabled by default.
  • Added a tip to remember that the content of the xlink is not loaded until the user performs an 'update' operation.

Bug

Windows GUI

Windows GUI: The embedded diff on the pending changes view was throwing an error if the 'previous' button was clicked when the current selected difference was the number 0 (this could happen right after modifying an unchanged file). Fixed.

5.4.16.656

New

Gluon

Gluon: A new feature to undelete files has been added. A new view lists the recently deleted files (and the filter is customizable). Right clicking on a deleted file shows two options:
  • 'Undelete revision'
  • 'Undelete revision to this path...' in case you need to recover to a different path (if the original one no longer exists, for instance).

Gluon

Gluon: A new view mode in the 'Explore workspace' view has been implemented: 'view as a list' mode. There is a new context menu option to toggle the view mode: 'view as a list' / 'view as a tree'.

Gluon

Gluon: Local changes under a readonly xlink can now be undone.

Gluon

Gluon: The 'diff' option is now available in the context menu of the 'Explore workspace', 'Checkin changes' and 'Changesets' views.

Gluon

Gluon: The Configuration mode's "Explore" button (Workspace Explorer) has been renamed to "Cancel". It's behaviour, however, stays the same: when clicked, the Workspace Explorer will end the configuration mode. Please note that clicking this button having pending changes will no longer ask for confirmation. Any changes you might have will be lost.

GUI

GUI: Create label: Users can now choose to label all xlinked repositories when creating a new label. Plastic SCM will retrieve the xlink changesets stored in the selected changeset tree and will label them accordingly. Warning messages will be displayed if the selected label name is already existing in any of the xlinked target repositories.

GUI

GUI: Implemented a tree-mode for the repositories view, so the repositories can be displayed as a list (as always) or as a tree.

GTK & Mac GUIs

GTK & Mac GUIs: Usability improvements
  • After performing an operation, always try to focus the same focused widget before the operation.
  • After deleting an item in the items view, try to focus a close item.

Command Line Interface

Command Line Interface: The 'fileinfo' command now includes a RepSpec field, which prints the repository specification of items.

License

License: the license grace period after expiration has been increased to 15 days.

Bug

GUI

GUI: The embedded diffs on the pending changes view displayed empty contents on refresh, when an item was selected. Fixed.

GUI

GUI: The SSL server certificates couldn't be accepted from the Plastic GUI. Fixed.

5.4.16.655

New

Mac OS X native server installer is now available

Mac OS X native server installer is now available. The package includes the server plus two command line tools:
  • 'clconfigureserver' to configure the server
  • 'umtool' to configure users and groups in "User-Password" auth mode.
Once the server package is installed, a daemon will be started up using the following defaults:
  • Port 8087 (and 8088 for SSL)
  • Name auth mode - uses the builtin users and groups in the computer
  • SQLite database backend
If you need to change the server configuration, open a terminal and:
  • Use 'clconfigureserver' to change the server settings
  • Use 'umtool' to create users and groups only if you select UP working mode
  • Restart the daemon to apply changes
How to run 'clconfigureserver' and 'umtool':
sudo /Applications/PlasticSCMServer.app/Contents/Applications/clconfigureserver.app/Contents/MacOS/clconfigureserver
sudo /Applications/PlasticSCMServer.app/Contents/Applications/umtool.app/Contents/MacOS/umtool
Example to add a user:
sudo /Applications/PlasticSCMServer.app/Contents/Applications/umtool.app/Contents/MacOS/umtool cu pablo pablo-password
How to restart the Plastic Server:
sudo launchctl unload /Library/LaunchDaemons/com.codicesoftware.plasticscm.server.plist
sudo launchctl load /Library/LaunchDaemons/com.codicesoftware.plasticscm.server.plist

The encryption configuration can now be set from…

The encryption configuration can now be set from the Plastic SCM GUI after a 'missing encryption configuration' error during the replication process.(This configuration can only be set by the Plastic SCM server administrator).

Branch Explorer

Branch Explorer: The search feature will now apply to the actual branch names being displayed. (Before, it was limited to full branch names).

5.4.16.654

New

Command Line

Command Line: A new command, named 'restore' or 'rs', has been added to the command line client. Its purpose is to restore an item to a previous revision. Examples:
cm restore itemid:68#cs:2 C:\mywks\dir\myfile.pdf
cm rs revid:304 C:\mywks\Dir
To get further information, please check the documentation ('cm help rs').

Gluon

Gluon: Added 'undo changes' option to the context menu of the 'workspace explorer' view.

GUI

GUI: The 'Create workspace' dialog elements have been reordered. The text input fields will be autocompleted if the user doesn't manually alter them.

Mac & GTK GUIs

Mac & GTK GUIs: The 'search' feature of the 'Branch explorer' view has been improved. Now, the results are updated after refreshing the view or applying changes in the options. Also, the caption of the changeset is taken into account in the search operation.

Mac & GTK GUIs

Mac & GTK GUIs: Usability: the 'Preferences' window has been improved:
  • Added a 'Save' button to the 'Diff tools' and 'Merge tools' tab views.
  • Replaced the 'Apply' button with the 'Ok' button, which saves the changes performed in all the tab views and closes the 'Preferences' window afterwards.

The default ssl certificate generated by the Plas…

The default ssl certificate generated by the Plastic SCM server has been changed to use a more secured algorithm (SHA256 instead of SHA1). Now, the 'Secured' Plastic channel supports the TLS protocol. (Previously, only the SSL3 was supported).

Windows GUI

Windows GUI: Now, the GUI can be opened even when the server connection is not available. Mac & GTK GUIs: Now, both GUI's are able to reconnect to the server when the connection is lost.

Bug

Gluon

Gluon: Checkin operation: Gluon was not properly setting the read-only attribute for items to be checked-in whose contents haven't changed. Fixed. Now, the read-only attribute for those items is set according to user preferences ("Update and Checkin operations set files as read-only" preference).

Mac & GTK GUIs

Mac & GTK GUIs: The 'end date enablement' setting of the Branch explorer's display options is not taken into account when the Branch explorer is loaded. Fixed.

5.4.16.653

New

Checkin

Checkin: The checkin operation for 'locally deleted' items has been improved. Performance optimization benchmark: Run a 'checkin' operation having 1376 'locally deleted' files distributed among the workspace tree. Results:
  • Before the optimization, the checkin operation took 74 seconds.
  • After the optimization, the checkin operation took 9 seconds.

Some improvements have been made to support more…

Some improvements have been made to support more compiler optimizations during the building stage of Plastic SCM.

Bug

Automatic upgrade system

Automatic upgrade system: Fixed a bug that prevented the upgrade system to download the specified Mac OS installers. More info about the automatic upgrade system can be found at:
https://plasticscm.com/documentation/administration/plastic-scm-version-control-administrator-guide.shtml#Chapter11:Upgradesystem

Web UI

Web UI: The repository data storage process, used by stats graphs, has been improved.

5.4.16.652

New

Triggers

Triggers: The 'before-checkin' and 'before-clientcheckin' triggers are now able to use a new environment variable called
PLASTIC_PENDING_MERGE_LINKS
. The variable contains information about the merge links included in the checkin operation.
The format of the serialized variable is the following:
Merge_Link_Spec1;.....;MergeLinkSpecN
Each MergeLinkSpec is composed of several fields separated by comma (,). Each field is separated from the value by the":" character. The following is an example:
mergetype:Merge,source:2@rep:default@localhost:8084
The variables are: -mergetype: can be one of the following constants: "merge", "cherrypick", "intervalcherrypick", "cherrypicksubtractive", "intervalcherrypicksubtractive". -source: the source changeset spec of the mergelink, composed by the changeset number, the repository and the server. -base (optional): if mergetype is "Intervar cherry pick" or "Interval cherry pick substractive", it's the base changeset spec of the selected interval. Otherwise, the field doesn't appear in the serialized string.

Windows GUI

Windows GUI: Server file paths are now displayed in the caption on both sides of the embedded Diff View.

GUIs

GUIs: improved the way to list repositories on known servers. Now each time you refresh the Repositories View, the list of known servers is created as follows: default server, servers.conf and the servers on 'automatic' profiles. Before the list of repos was loaded only once, so if you changed to a different network the result didn't change until app restart. Now it works as expected.

Bug

Windows GUI

Windows GUI: If the active workspace on the Windows GUI is removed (by using the Command-Line client
cm rmwk WK_PATH
or removed physically from disk), the GUI will be frozen when trying to execute the next operation. Fixed.

5.4.16.651

New

Triggers

Triggers: Web triggers are now available. The script path value will be interpreted as an URI endpoint if it's preceded by the 'webtrigger ' string (mind the whitespace!). That endpoint will receive POST requests whenever the trigger is executed. The request body will be a JSON dictionary containing the trigger variables. Additionally, the standard input data will appear as an array under the 'INPUT' dictionary key. For example, a web trigger can be created this way:
cm maketrigger after-checkin "Notify team" "webtrigger https://www.mysite.com/api/team/checkin"
A request body example of that trigger would be as follows:
{ "PLASTIC_CHANGESET": "cs:2341@br:/main/task4638@rep:product@repserver:plastic.mysite.com:17590", "PLASTIC_CLIENTMACHINE": "DEV1HOST", "PLASTIC_COMMENT": "Fixing command line parsing", "PLASTIC_SERVER": "plastic.mysite.com:17590", "PLASTIC_SHELVE": false, "PLASTIC_USER": "dev1", "INPUT": [ "CH "/src/main.c" FILE" ]}
Notice that once the web trigger is created, updating it (using the 'changetrigger' command) will interpret the '--script' parameter value as the 'maketrigger' command would. For further information, please take a look at the 'maketrigger' and 'changetrigger' commands help.

GTK GUI

GTK GUI: The GTK GUI application is now included in the legacy linux-client zip installer.

Bug

Annotate

Annotate: Fixed an issue that made the annotate operation to do not end sucessfully and waste CPU. The issue could be reproduced when launching the 'annotate' operation of certain items where the 'item-merge-tracking' info was wrongly stored (the initial versions of the 'item-merge-tracking' feature stored the merge info of a 'keep-destination' conflict resolution for a merged file in a wrong way).

5.4.16.650

Bug

Windows GUI

Windows GUI: The branch and the changeset differences could fail with an 'Item with the same key has already been added' error under the following circumstances:
  • The differences involve multiple repositories.
  • There are changed and moved items on at least two repositories.
  • The revision Id of an item showed in the differences is the same as another revision Id from an item in another repository.
Fixed.

Gluon

Gluon: The locking status was overriden when checking in 'changed' items from the 'Checkin View'. Fixed.

Winows GUI

Winows GUI: Groups or users were not correctly added to an ACL when the connection to the server was done using a profile. Fixed.

5.4.16.649

New

Plastic Gluon, the version control user interface…

Plastic Gluon, the version control user interface designed and crafted for artists in game development has been released. Please visit
https://www.plasticscm.com/gluon.html
for further info.

Bug

Windows GUI

Windows GUI: Fixed a visualization issue in the checkin progress dialog. Sometimes, when resizing the progress dialog, the 'total' units disappeared. Fixed.

5.4.16.648

New

Audit Log

Audit Log: New audit log level: 4. Read access to revisions will be logged.

Game UI

Game UI: 'Changesets' view is now available. The new view just allow to show changesets and filter them. No more actions implemented yet.

GTK & Mac GUIs

GTK & Mac GUIs: The 'Delete' context menu option is now available on the 'Pending changes' view.

Server

Server: SQL Server database creation command can now be customized with user-defined settings. A new key in 'db.conf' file, named 'DatabaseCreationCommands' is available for this purpouse. The command must be written in a single line. The following 'db.conf' file example is written in several lines for better readability:
<?xml version="1.0"?><DbConfig><ProviderName>sqlserver</ProviderName><ConnectionString>SERVER=localhostSQLEXPRESS;User Id=username;Pwd=password;DATABASE={0};</ConnectionString><DatabaseCreationCommands>CREATE DATABASE @PlasticDatabase ON PRIMARY(NAME=@PlasticDatabase_custom, FILENAME='@PlasticDefaultDatabaseFile', SIZE=10, FILEGROWTH=100)LOG ON (NAME=@PlasticDatabase_log, FILENAME='@PlasticDefaultLogFile', SIZE=10, FILEGROWTH=100)COLLATE @PlasticDefaultCollation</DatabaseCreationCommands><DatabasePath></DatabasePath></DbConfig>
The following 'default values' identifiers are available in order to build custom database creation commands:
  • @PlasticDatabase
    -> The default database name. It's mandatory to use this identifier in the 'CREATE DATABASE' command. Otherwise the Plastic SCM server won't work properly.
  • @PlasticDefaultDatabaseFile
    -> Default database file. (A path that includes @PlasticDatabase as a part of the database file name can be used instead).
  • @PlasticDefaultLogFile
    -> Default log file path. (A path that includes @PlasticDatabase as a part as a part of the file name can be used instead. Also, appending a suffix to the
    @PlasticDefaultDatabaseFile
    identifier can be used. Example:
    @PlasticDefaultDatabaseFile.log
    ).
  • @PlasticDefaultCollation
    -> Its value is the collation defined in the 'db.conf' file with the 'DatabaseCollation' tag. If 'DatabaseCollation' tag is not present, in will take the default collation used by Plastic SCM server, which is: 'Latin1_General_CI_AI'. The collation in the custom command will take precedence over the value of 'DatabaseCollation' tag.
Important remark: A valid collation in the custom creation command must be specified if the SQL Server's default collation is not Case Insensitive or Accent Insensitive. Valid collations are: 'Case Insenstive' and 'Accent Insensitive' ('CI_AI' or 'KI_KS' collation suffixes). Otherwise, the Plastic SCM server won't work properly. The default command that Plastic SCM server uses to create databases is the following:
CREATE DATABASE @PlasticDatabase ON PRIMARY(NAME=@PlasticDatabase, FILENAME='@PlasticDefaultDatabaseFile', SIZE=10, FILEGROWTH=100)LOG ON (NAME=@PlasticDatabase_log, FILENAME='@PlasticDefaultLogFile', SIZE=10, FILEGROWTH=100)COLLATE @PlasticDefaultCollation
Examples (Remember to write them in a single line. The examples below are written in several lines for better readability):
  • Multiple commands. Must be separated with ";" and specified in a single line. The "GO" clause can't be used.
CREATE DATABASE @PlasticDatabase ON PRIMARY(NAME=@PlasticDatabase, FILENAME='@PlasticDefaultDatabaseFile', SIZE=10, FILEGROWTH=100)LOG ON (NAME=@PlasticDatabase_log, FILENAME='@PlasticDefaultLogFile', SIZE=10, FILEGROWTH=100)COLLATE @PlasticDefaultCollation;ALTER DATABASE @PlasticDatabase SET PAGE_VERIFY CHECKSUM;ALTER DATABASE @PlasticDatabase SET ANSI_WARNINGS OFF
  • Change database file location and log names and paths:
CREATE DATABASE @PlasticDatabase ON PRIMARY(NAME=@PlasticDatabase, FILENAME='C:/databases/dbs/@PlasticDatabase.db', SIZE=10, FILEGROWTH=100)LOG ON (NAME=PlasticLog_@PlasticDatabase, FILENAME='C:/databases/logs/@PlasticDatabase.log', SIZE=10, FILEGROWTH=100)COLLATE @PlasticDefaultCollation
  • Change size parameters or collation:
CREATE DATABASE @PlasticDatabase ON PRIMARY(NAME=@PlasticDatabase, FILENAME='@PlasticDefaultDatabaseFile', SIZE=100, FILEGROWTH=50)LOG ON (NAME=@PlasticDatabase_log, FILENAME='@PlasticDefaultLogFile', SIZE=100, FILEGROWTH=50)COLLATE SQL_Latin1_General_CP1_CS_AS

Bug

Windows GUI

Windows GUI: Home/End keys did not work in the Branch Explorer view. Fixed.

Windows GUI

Windows GUI: The diff window was showing an error when annotation panel was shown for xlinks root items. Fixed.

Windows GUI

Windows GUI: The 'Diff' viewer for the focused item in the 'Pending changes' view was not recalculating diffs when the pending changes view was refreshed. Fixed.

5.4.16.647

New

GTK & Mac GUIs

GTK & Mac GUIs: Shelve view has been implemented and it is fully functional. The context menu options are 'View shelve', 'Apply shelve in the workspace' and 'Delete'. The shelve view can be opened from the "Show Shelves View" button in the pending changes view and it will be displayed on the right side of the view.

Triggers

Triggers: Client side triggers can now be customized using relative paths or user-defined paths. The script execution paths can be built in the following ways:
  • Using two new predefined variables: PLASTIC_BIN_PATH (Plastic SCM client installation directory) and WKSPACE_PATH (Current workspace location). Example:
cm maketrigger before-clientcheckin "Relative trigger path" "@PLASTIC_BIN_PATH/triggers/checkdirectories.pl"
  • Using customized trigger variables, defined in the 'client.conf' file. The syntax is the following:
<TriggerVariables> <TriggerVariable name="TRIGGERS_PATH" value="c:\triggers" /></TriggerVariables>
The path directory separator char will be replaced depending on the target platform (i.e
"@PLASTIC_BIN_PATH/triggers/checkdirectories.pl"
will match
"@PLASTIC_BIN_PATH\triggers\checkdirectories.pl
in a Windows platform).
The use of these approaches will allow the definition of platform-independent client side triggers.

GTK & Mac GUIs

GTK & Mac GUIs: SSL certificates from Plastic SCM servers can now be accepted.

Windows GUI

Windows GUI: Changed blogpost notification icon. Now, the number of unread blogposts is shown near to the "BLOG NEWS" menu item.

Bamboo plugin

Bamboo plugin: Automatic merging feature is now supported (Both 'branch updater' mode and 'gatekeeper' mode).

GameUI

GameUI: New option added in history context menu to show changeset differences.

Game UI

Game UI: A new context menu option has been added in the history panel: 'Diff selected revisions' to let the user diffing two specific revisions (and not only diffing with previous revision). The new context menu option will be available when two revisions are selected.

Game UI

Game UI: Application startup performance has been significantly improved. Before this improvement, the application startup time was depending on the connection to the server, but now the application starts inmediatly.

Game UI

Game UI: Usability improvements
  • Now it is possible to checkout files from the 'search item'.
  • Ctrl+O (checkout) over an item moved away the focus from the selected item. Fixed.
  • Focus is kept over an item after creating or renaming it.
  • The scroll position is now remembered in the workspace explorer tree after restarting the application.
  • Workspace name in window title was lost when switching between configuration mode and explorer mode. Fixed.

Greatly improved branch (and changeset) diff wind…

Greatly improved branch (and changeset) diff window to better explain merges. This feature is an evolution of the original "item-merge-tracking" effort and greatly improves the way in which branches (and csets) receiving merges are diffed. This feature is one of the most relevant improvements in branch/cset diffing the Plastic SCM team have developed. When diffing a branch (or cset) that receives one or more merges, it is often hard to figure out what was really modified on the branch and what comes from the merge. It complicates reviewing code, specially when big rebases (merge from parent branch) happens. Suppose the following scenario:
  • You start branch "task1010" from label "build-117" on main.
  • You modify a number of files and work on the branch for a couple of days.
  • In the meantime "build-118" was created, including changes in more than 250 files.
  • Prior to integrate your branch to main you're asked to rebase it to "build-118", so you merge down from label "build-118".
  • Now your branch doesn't only contain the changes you made, it also contains all the changes (more than 250 files) coming from the merge.
If another developer (or yourself) diffs the branch "task1010" now, he will have hard time figuring out what was modified in the branch and what was merged. The branch is not clean anymore. This is precisely what this new feature solves: it is able to split the diffs in groups, so it is easy to understand:
  • which files just come from the merge and were untouched on the branch,
  • which ones were modified on the branch,
  • and more importantly, which ones were modified both in the branch and also in the merged branch, they were merges, and they're grouped under a category called "changed/changed" (or CC for short).
This third group of files changed/changed is the one greatly improved by this feature: when a file was both modified on your branch and also changed in the branch you're merging, it is grouped under CC, but then it was not easy to know which lines were actually modified on the branch, which ones were in conflict during the merge, and which ones were just modified on the source branch of the merge. Now the branch (and cset) diff is able to render differently the lines that were modified on the branch, during the merge (result of a manual conflict resolution) and from the source branch being merged (automatic conflict resolution), making much simpler to review code of branches (and csets) with one or many merges.

Bug

Replication

Replication: The 'replicate' operation was adding duplicated reviews and review comments when a big number of objects were involved (around 10000 objects involved). Fixed.

GUI Client configuration dialog

GUI Client configuration dialog: The client configurator dialog wasn't properly handling SSL server specs. Also, the test connection to a SSL server was not working on Linux. Fixed.

GUIs

GUIs: Opening HTML revisions from the history view was not working properly. Fixed.

GTK GUI

GTK GUI: Replication panel has been improved to avoid overlapping controls.

GTK GUI

GTK GUI: Application freezed when displaying several dialogs at the same time. Fixed.

Windows GUI and Command line client

Windows GUI and Command line client: Fixed several errors when the specified language in the 'client.conf' file was not valid.

Windows GUI

Windows GUI: On the repository browser view (browse repository on branch or changeset), the repository actions available for xlinks (view branch explorer, branches, changesets, etc.) were not working. Fixed.

Windows GUI

Windows GUI: Fixed some alignment and textual GUI issues

Windows GUI

Windows GUI: Improved the look and feel of the notification strip. Also, from now on, license warnings aren't displayed for commercial licenses.

5.4.16.644

New

PlasticDrive

PlasticDrive: A virtual drive for Windows to mount changesets and be able to browse using regular tools like Visual Studio. PlasticDrive comes packaged with the Plastic SCM client. PlasticDrive is a command line application that mounts the content of a changeset on a virtual Windows drive. It uses Dokan to create a virtual filesystem. PlasticDrive is read-only, it doesn't let you modify the code, but you can create temporary files (means you can build your code or you can use Visual Studio "find references" which builds the code underneath). You can launch PlasticDrive this way:
plasticdrive.exe --drive z: lb:5.4.16.639@secretrepo
Which will mount label 5.4.16.639 on drive z: PlasticDrive can also be launched from the changesets menu of the Windows GUI. In order to enable you have to edit your guiclient.conf file and add the following line:
<ShowMountPlasticDrive>true</ShowMountPlasticDrive>
PlasticDrive is useful when you need to look into a branch or changeset but you don't feel like switching to the branch, and the repository browser doesn't help because you can't use your Visual Studio to open a solution on it. PlasticDrive doesn't download the entire changeset content, it will just download the files you really read. Download is on-demand so it is super fast to browse a few files even on a big repository. The controlled files that you access are cached in the plasticdrive-filecache directory on your Local folder. These files are reused between sessions, so if the first time you mount a changeset it takes time to open a big solution in Visual Studio, most likely it will go much faster in the next session. The temporary files created during the session are deleted when the drive is unmounted (typically obj files). A "tray icon" is displayed on the Windows task bar so you can unmount your drive.

5.4.16.643

New

Windows GUI

Windows GUI: Custom checkin comments: The branch name is now supported on the predefined & custom templates.

GTK & Mac GUIs

GTK & Mac GUIs: Now, the 'ignored', 'cloaked' and 'hidden changed' items can be added and removed to the list through the context menu of the 'Workspace explorer' and 'Pending changes' views.

Bug

GTK & Mac GUIs

GTK & Mac GUIs: Fix a 'duplicated key' error when the diff operation is launched several times on the same item.

5.4.16.642

New

IntelliJ IDEA plugin

IntelliJ IDEA plugin: Compatibility issues to support IDEA 14 have been addressed. This way, Plastic SCM is now available for IntelliJ IDEA 14.

Axosoft OnTime extension

Axosoft OnTime extension: Plastic SCM now supports Axosoft OnTime v14.5

Git Sync

Git Sync: Performance: The initial process of calculating changesets to pull / push between Plastic SCM and Git has been greatly improved. The bigger is the number of branches / tags already synchronized, the more noticeable is the improvement. The improvement is around 95% for a repository with 200 branches and 600 tags. (The process has been improved from 140 seconds to only 6 seconds).

Bamboo plugin

Bamboo plugin: The detailed commit information will now show the item status: Added, Moved, Changed or Deleted.

GTK & Mac GUIs

GTK & Mac GUIs: Now, the 'preferences' dialog provides a 'default' tool settings to configure the diff and merge tools automatically.

GTK & Mac GUIs

GTK & Mac GUIs: Added 'close' button to the 'Merge' view in order to close it and show the pending changes view automatically.

Mac GUI

Mac GUI: Added 'copy' option to the application menu

Mac GUI

Mac GUI: Usability: The 'cut' and 'paste' options of the 'Workspace Explorer' view are now also available with the standard key shortcuts.

Bug

IntelliJ IDEA plugin

IntelliJ IDEA plugin: The update action no longer fails if the 'Revert unchanged files before update' option is set.

Windows GUI

Windows GUI: Fixed a 'same key was already added' error that happened sometimes when drawing the 'Items' view.

Command line client

Command line client: The '--preview' option of the 'replicate' command was not working properly when the destination database has a different Id. Fixed.

Windows GUI and Visual Studio integration

Windows GUI and Visual Studio integration: When the semantic history was shown for a method of a changed file, the 'Checkin' operation for this changed file was failing with the error:
Revision -2 not found in repository <repository_name>
. Fixed.

Game UI

Game UI: The 'Checkin' operation was not considering the 'checkin' permissions. Fixed.

Mac GUI

Mac GUI: The 'open' and 'open with' context menu options didn't work properly. Fixed.

5.4.16.641

New

Mac GUI

Mac GUI: The look & feel of the Branch explorer's 'options' panel has been improved.

Mac & GTK GUI

Mac & GTK GUI: Now, the Branch explorer's 'options' panel can be hidden.

GTK GUI

GTK GUI: The look & feel of the 'Switcher' window has been improved.

GTK GUI

GTK GUI: Added 'Switch workspace' button to the 'workspace' window sidebar.

GTK GUI

GTK GUI: Usability: the navigation flow of the application has been improved. Also, the default buttons and the cancel buttons have been established according to the Human Interface Guidelines recommends. GTK GUI: Usability: the navigation flow of the application has been reviewed and improved. Also, default key accelerators have been implemented, binding them to

Mac & GTK GUI

Mac & GTK GUI: Usability: the double click action has been implemented for each table of the application.

Bug

GameUI

GameUI: Opening a previous revision by double-clicking on a row (details panel) caused a crash if the target application prevented the file from being modified externally. Fixed.

GTK GUI

GTK GUI: Fix branch drawing in the Branch Explorer view. Some changesets were drawn out of the branch bounds.

GTK GUI

GTK GUI: Fix several error messages
  • "Cairo.Context: called from finalization thread, programmer is missing a call to Dispose" that appear all the time on the console using the Branch explorer.
  • "Stream does not support writing" and "Shutting down finalizer thread timed out." that appear sometimes when closing the GUI.
  • "Gtk-CRITICAL **: gtk_box_pack: assertion ``child->parent == NULL' failed
    that appear also on the console opening the configuration panel or any view with filter.

GTK GUI

GTK GUI: Fix an unexpected error occurred clicking on the Branch explorer view while it is loading, before rendering objects.

5.4.16.639

New

Mac & GTK GUIs

Mac & GTK GUIs: Labels View includes now a dialog to list changesets, choose one and label it.

Windows GUI

Windows GUI: old icons removed from: 'New secured path' dialog, 'Branches' dialog launched from the repository permissions dialog, 'Comments' dialog launched from the code review, 'Plastic configuration wizard' dialog and 'Delete confirmation' dialog.

Bug

Bamboo plugin

Bamboo plugin: Bamboo builds had issues when a PlasticSCM changeset was empty. Fixed.

GUI

GUI: 'Create workspace' dialog was closed if the input parameters were not valid. Now, the dialog stays open when the parameters are not valid.

5.4.16.638

New

Mac & GTK Plastic SCM GUI

Mac & GTK Plastic SCM GUI: The replication dialog is now available. Branches can be replicated (pulled or pushed) by right-clicking on them in the 'branches' and 'branch explorer' views and using the 'Replication' submenu.

Mac & GTK Plastic SCM GUI

Mac & GTK Plastic SCM GUI: Now, the history view shows info about 'moved' and 'removed' operations.

GTK Plastic SCM GUI

GTK Plastic SCM GUI: Now, when the rule of the 'branch explorer' filter is being changed, the extension panel is opened in order to save the changes.

GUI

GUI: Usability: The 'diff branch' feature were showing changes among merged changesets belonging to the same diffed branch in separate 'merge from' nodes, which was confusing. Now, these changes are shown together, out of those 'merge from' nodes, as they belong to the same branch indeed.

Bug

Mac Plastic SCM GUI

Mac Plastic SCM GUI: Fixed an unexpected error message in the branch explorer view. It was raised when selecting a branch, changeset or label if the user didn't extend the 'properties' panel before.

Mac & GTK Plastic SCM GUI

Mac & GTK Plastic SCM GUI: The context menu of the history view should not be available for directories. Fixed.

Mac Plastic SCM GUI

Mac Plastic SCM GUI: Fixed a crash that happens sometimes closing the 'preferences' window:
Exception Type: EXC_BAD_ACCESS (SIGABRT)Exception Codes: KERN_INVALID_ADDRESS

Merge

Merge: Fixed an error performing a 'merge-to' operation when the source contributor has performed complex 'move' and 'add' operations with directories. Example:
* Initial structure://src/src/engine
* Changes in source contributor:move /src/engine -> /src2del /srcmove /src2 -> /srcadd /src/foo.c
Performing a 'merge-to' operation from the source contributor to the initial structure, was causing an error. Now the error has been fixed and the 'merge-to' operation can be successfully completed.

5.4.16.635

New

WebUI

WebUI: Styles reviewed and beautified

GTK GUI client

GTK GUI client: Added 'Display only relevant changesets' option to the 'branch explorer' display options.

Bug

GUI

GUI: Fixed aesthetic UI issues in the add user/group dialog (permissions dialog).

GUI

GUI: Fixed some GUI component aligments in 'Move detection' preferences dialog, 'Repository permissions' dialog, and 'Profile selection' dialog.

GUI

GUI: The 'Branches with pending merges' format was not working properly on replicated servers. Fixed.

GUI

GUI: The branch differences was throwing an error message on a corner case involving an item moved and changed on multiple merges. Fixed. Simplified case of failing scenario:
* Have a '/main' branch populated with a file 'foo.c'* Create branch '/main/task1' and switch to this branch* Change 'foo.c' file on '/main/task1'* Create branch '/main/task2' and switch to this branch* Change 'foo.c' on '/main/task2'* Move 'foo.c' to 'bar.c' on branch: '/main/task2'* Create branch '/main/task3' and switch to this branch.* Merge from '/main/task1' to '/main/task3'* Merge from '/main/task2' to '/main/task3'* Create branch '/main/task3/task4' and switch to this branch.* Change 'bar.c' on '/main/task3/task4'* Switch to branch '/main/task3'* Merge from '/main/task3/task4' to '/main/task3'* Diff branch '/main/task3' -> error
Now, this case has been fixed and the branch differences are displayed properly.

5.4.16.634

New

GTK Plastic SCM GUI

GTK Plastic SCM GUI: Branch Explorer: Navigate to 'home' changeset and 'search' features have been implemented.

GTK Plastic SCM GUI

GTK Plastic SCM GUI: Branch Explorer: Implemented navigation using the keyboard: home, end, escape and arrow keys.

GTK Plastic SCM GUI

GTK Plastic SCM GUI: Branch Explorer: Added a 'properties' view on the Branch Explorer side panel. It displays information related to a single selected object on the branch explorer: name, repository, owner, creation date, replication sources, GUID and comments. The comments text field also allows to update the comment of the selected object when modified.

GTK Plastic SCM GUI

GTK Plastic SCM GUI: Branch Explorer: Implemented date filter for the branch explorer.

GTK Plastic SCM GUI

GTK Plastic SCM GUI: Filters and conditional format rules implemented

GTK Plastic SCM GUI

GTK Plastic SCM GUI: Preferences window implemented

Mac Plastic SCM GUI

Mac Plastic SCM GUI: Branch Explorer: If the selected object's comments have been edited but not saved, and the focus is changed to another object, a confirmation dialog is shown to let the user save the changes or discard them before changing the selection.

Installer

Installer: The client file 'plastic.exe.config' will no longer be overwritten after an upgrade.

Installer

Installer: The installer now copies the needed firebird libraries according to the system architecture.

Git Sync

Git Sync: When a submodule was added in a branch and merged to another branch in Git, the Git Sync is reusing the same xlink in Plastic SCM, updating the target changeset only when needed (that's it, if the submodule target was also changed).

Bug

Command line client

Command line client: Using exclusive checkout with xlink, the checkin operation could fail when the xlink relative path is longer than the relative path of the checkedout file. Example:
  • Xlink relative path:
    /src/core_engine
  • Checkedout file relative path:
    /license.dat
Checking in the file
/src/core_engine/license.dat
, the operation fails with an error. Now, this case has been fixed.

GameUI

GameUI: The GameUI main window was not showed properly when it was maximized on an extended desktop configuration and the secondary monitor had a resolution higher than the resolution of the primary monitor. Fixed.

5.4.16.633

New

Command Line Interface

Command Line Interface: The 'RevisionHeadChangeset' field of the 'cm fileinfo' command is now available for partial workspaces.

GameUI

GameUI: The progress of 'update' operation has been improved:
  • Now, the progress of the operations to apply is shown. This way, operations that don't involve download (move and delete operations) are now notified.
  • It also shows the totals at the beginning of the operation (size to download / files to download / operations to apply).
Example:
'Updated 2.8MB of 580MB (2 of 156 files to download / 45 of 202 operations to apply'

Jenkins plugin

Jenkins plugin: Jenkins workspaces now support multiple Plastic SCM workspaces.

Bug

GUI

GUI: An error occurred when trying to show the 2D revision tree of a checked-out item. Fixed.

Fixed several aesthetic issues in the server conf…

Fixed several aesthetic issues in the server configuration wizard form.

GUI

GUI: First difference was not focused in the 'diff' view when navigating over the changed files. Fixed.

5.4.16.632

New

This release introduces the new Team and Enterpri…

This release introduces the new Team and Enterprise Editions.

Merged releases


5.4.16.630

New

Authentication

Authentication: Active Directory and LDAP groups can be customized now. This will allow server administrators to create new credentials groups which will be visible only from PlasticSCM. It can be useful if the AD/LDAP systems have restricted access, not allowing groups to be created. In order to take advantage of this new feature, the server must be set to ADWorkingMode or LDAPWorkingMode, and add a new line on the 'server.conf' file:
<WorkingModeSettings>[setting[;setting2;...]]</WorkingModeSettings>
The currently supported settings are:
  • add_up
    : include PlasticSCM users and groups
  • skip_groups
    : don't include AD/LDAP groups
A valid example would be as follows:
<WorkingModeSettings>add_up;skip_groups</WorkingModeSettings>
To specify the custom groups, the server administrator will have to edit the 'groups.conf' file, placed under the same directory as the server executable (plasticd.exe). This file stores group information, one line per group:
:[[:...]]
Group names should be unique, whereas user names can appear in different groups. Example:
gallia:caesar:vercingetorixroma:augustus:caesarhispania:augustusaegyptus:cleopatra
User names in this list must match AD/LDAP user names. To create a group hierarchy, group names inside groups must start with the '@' character. Example:
spqr:@roma:administrator:@gallia

Mac/Linux Plastic SCM GUI

Mac/Linux Plastic SCM GUI: Add "Create new workspace..." button in the workspaces view to help the user find the functionality. Also, show an informative message if there are no workspaces: "Create a workspace to start working with Plastic SCM".

Bug

GUI and Game UI

GUI and Game UI: Fixed a bug that prevented Plastic SCM GUI and Game UI to remember the screen location of last execution in a multiple screen environment in certain cases.

Client configuration in Active Directory mode

Client configuration in Active Directory mode: The test connection was always ok, even when user credentials were not valid. Fixed.

Command line client

Command line client:
cm replicate
command was failing when a non full branch branch specification (branch spec without without the repository part) were not provided when executing the command from outiside a workspace. Fixed in order to inform of this error in the command parameters.

GUI

GUI: Texts in preferences panel in Windows GUI, merge and diff tool sections, were cut. Fixed.

Mac/Linux Plastic SCM GUI

Mac/Linux Plastic SCM GUI: Fix branch explorer concurrence refresh issue after switching to changeset operation from the branch explorer. The 'home' icon was not updated sometimes.

Mac/Linux Plastic SCM GUI

Mac/Linux Plastic SCM GUI: The update progress panel was showing the progress status from the previous update operation until the new one was calculated. Fixed.

Merged releases


5.4.16.628

New

gtkplastic beta is finally out

gtkplastic beta is finally out We're happy to announce the first beta of the native, gtk based, Linux GUI of Plastic SCM. This new Linux GUI is meant to replace the current X11 based. It is still not fully functional since it doesn't include replication support and some other key features are still missing, but it is already able to do a complete branch/merge cycle. It can be installed using the package system for different Linux distros and the package name is 'plasticscm-client-gtkplastic'. Contact support if you have questions about installing this beta version.

Mac Plastic SCM GUI

Mac Plastic SCM GUI: Add support for the command line options: --configure, --switch, --wk, --clientconf, --server, --cacheserver and remember the last workspace that was opened.

Mac Plastic SCM GUI

Mac Plastic SCM GUI: The configuration panel has been improved. Now it is simplier and it shows the current configuration to the user if there is already one.

Bug

Mac Plastic SCM GUI

Mac Plastic SCM GUI: Fix branch explorer erratic behavior with the trackpad.

Mac Plastic SCM GUI

Mac Plastic SCM GUI: Fix null exception while trying to filter a view that is not filled yet.

5.4.16.627

New

GameUI

GameUI: The update operation has been greatly optimized when updating already loaded files to their latest contents (2x faster in this scenario). Performance optimization benchmark: Work with a workspace containing 100K files. Run an 'update' operation having 30K files (already loaded in the workspace) pending to update to their latest contents (the 30K files sum 4.7 GB in total). Results:
  • Before the optimization, the update operation took 556s.
  • After the optimization, the update operation took 233s.

Bug

Diff

Diff: The diff operation didn't correctly detect move/add operations under a 'move' cycle. Example: Initial structure
//src/src/code/src/code/foo.c
Changes
mv /src/code -> /codemv /src -> /code/srcmv /code/foo.c -> /code/src/foo.c
After submitting these changes in the workspace and showing the differences of the new changeset, the third move operation was detected as a 'delete' operation
'rm /code/foo.c'
instead of a 'move' operation.
This case has been fixed and the operation is now detected as a 'move' operation.

GameUI

GameUI: After checking in the deletion of an item that was previously moved in the server side to a different parent directory, the parent directory was kept as checked-out in the workspace. Example: Initial structure
//src/src/foo.c
Changes commited in the server:
mv /src/foo.c -> /foo.c
Local workspace operation:
rm /src/foo.c
This case has been fixed, an now the parent directory does not remain as checked-out in the workspace anymore.

GameUI

GameUI: Improved performance of 'checkin changes' view when there are tons of pending changes. The responsiveness checking/unchecking nodes in the 'checkin changes' view has been improved too.

GameUI

GameUI: The column sorting did not work in the GameUI for the 'workspace explorer' view. Now it's fixed.

GameUI

GameUI: Fixed a usability issue. The scroll was slightly moved after refreshing the 'workspace explorer' view. Fixed.

GUI

GUI: Fixed some aesthetic issues in the 'create branch' dialog.

Client configuration wizard

Client configuration wizard: Fixed aesthetic issues using the black theme (the default theme used in Linux and Mac).

Merged releases


5.4.16.625

New

Server

Server: Support for SQLite 3.8 including WAL (Write-Ahead Logging). WAL enables SQLite backend users to avoid locking when multiple threads try to read simultaneously from the database. SQLite is the default on Linux/Mac installations and optional on Windows. In order to setup WAL, use the following connection string in 'db.conf' file:
Data Source={0};Synchronous=FULL;Journal Mode=WAL;Pooling=true

Support Eclipse file types (binary/ASCII) in Plas…

Support Eclipse file types (binary/ASCII) in Plastic SCM. When the user adds new files to the source control using the Eclipse IDE, the file type for its file extension, or file name configured in Eclipse (binary or ASCII) is preserved.

GUI

GUI: Diff branch/changeset dialog: Now it is possible to revert to one of the revisions shown in a Diff branch, changeset or label dialog. To do that, right click on the desired revision and select "Revert to this revision..." of the item's context menu.

Bug

GameUI

GameUI: After checking in a moved file (not checked-out) which was out-of-date in the workspace, the revision loaded in the workspace was updated to the latest one, which was wrong. Fixed.

GameUI

GameUI: The 'checkout' operation was leaving exclusive locks in the server side when the workspace was already used by another operation. Fixed.

5.4.16.624

New

GameUI

GameUI: Improved the explorer view performance when changing between items with large revision history. Also, the history view for directories is now disabled.

Bug

GUI

GUI: When the log4net "Merge" logger is set to INFO (or DEBUG), the merge operation could eventually show an error, aborting the operation. This error happened since 5.4.16.621 and now it's fixed.

GUI

GUI: The 'Diff' window was not setting the vertical scroll at the beginning of the file contents after focusing a different item. Now, after switching among the different files in the diff window, the scroll is set at the top of the contents.

GUI

GUI: Code Review: Double clicking on a code review comment did not focus the commented line in the right textbox of the differences panel correctly. Now it's fixed.

5.4.16.623

New

GameUI

GameUI: Now, the 'update' operation is also able to apply 'move' operations in the workspace. Additionally, the update report has been improved when the update cannot apply certain operations, showing the affected item and the reason.

Bug

GameUI

GameUI: The configuration view was throwing a 'key duplicated' error following the next steps:
  1. A directory already loaded in the workspace is marked to be unloaded (set checkbox to 'unchecked' status).
  2. One of the items under the directory was also renamed or moved in the server side.
  3. After clicking the checkbox to mark the directory to be loaded again, (set checkbox to 'checked' status), the error is shown.
This behavior was also reproducible in the command line client with the 'cm partial configure' command. This scenario has now been fixed, and the error is not shown anymore.

5.4.16.621

New

Added new End Of Line (EOL) conversion mechanism

Added new End Of Line (EOL) conversion mechanism The Plastic client now implements a EOL conversion mechanism capable of transforming the different end of lines of text into the right one for the local system. This feature is useful for teams working on different operating systems with editors and IDEs that can't handle correctly (or complain) files with different EOL types. EOL conversion only works for text files. There are two ways to enable EOL conversion (it is disabled by default):
  1. Editing client.conf and adding the new AutoEolConversion key:
<AutoEolConversion>Auto</AutoEolConversion>
The valid values are: None (the default), Auto (converts based on the OS), CR, LF, CRLF.
  1. Creating a file named eolconversion.conf. This way it is possible to define the EOL conversion based on the file extension as follows:
cr .cpp, .paslf .ccrlf .h
The valid "conversion types" are None, Auto, CR, LF and CRLF. If an extension is not defined in the eolconversion.conf, it will use the general conversion type configured in the client.conf file. How EOL conversion works:
  • EOL conversion will be used not only during update but also each time a file is retrieved from the workspace (diff, cat, annotate).
  • EOL conversion only works while downloading files. Checkin always preserve the content created by the user.
Remarks: it is recommended to start with a clean workspace to start using EOL conversion.
  • Updating an existing workspace won't rewrite unchanged files even if they need EOL conversion. Only new files being downloaded will be converted.
  • If you have a file checked out and then you change the EOL configuration, then diff with previous can display differences in EOLs.
  • Remember to restart the GUI after changing the EOL conversion settings (client.conf won't be reloaded otherwise).

Merged releases


5.4.16.619

New

GameUI

GameUI: Added auto upgrade mechanism The GameUI now checks whether its current version is compatible with the server version. If an upgrade is needed, GameUI asks the user to confirm, downloads the new installer and runs it. To configure the upgrade system please follow the instructions here.

GameUI

GameUI: Items added by other users were not automatically downloaded in the two following scenarios:
  • After checking-in a directory locally added.
  • After configuring an empty directory (without children) to be loaded.
Fixed. Now the new content is correctly downloaded in both scenarios.

Revert from 2d version tree. The 2d version tree…

Revert from 2d version tree. The 2d version tree now has a context menu option to allow reverting to a specific revision. Additionally the 2d version tree now highlights the currently loaded revision in the workspace.

GUI

GUI: The 'create branch' dialog has been redesigned

Merged releases


5.4.16.617

Merged releases


5.4.16.613

New

GameUI

GameUI: The checkin operation will be retried if a new changeset has been created in the target branch during the data uploading phase. The checkin operation is retried up to three times (although the checkin data is uploaded once) before rejecting the operation.

GUI

GUI: Implemented 'tree' view mode (items grouped by path) for Pending changes view and Diff branch/changeset views. Items can be shown grouped by paths. To enable this new view mode, right click in the list of items and select the context menu option: 'view items' > 'as list/as tree'.

GUI

GUI: Recent comments: New features for long, multiline comments. If the comment is very long, the ellipsis is performed in the middle of the text, so that users are able to check the beginning and the end of the comment. Additionally, a tooltip is shown when hovering over a recent comment, showing the full text.

Bug

GameUI

GameUI: Fixed error messages in history and preview panels that where shown under race conditions while loading the history or the preview of certain items. Also, if the server was down, the history of an item was loading forever. Fixed.

Web UI

Web UI: The 'Changesets' charts were not being loaded due to a collision between the URL for of changeset charts (i.e.:
http://server:port/repository/Charts/Changesets
) and the URL for the changesets of a submodule view (i.e.:
http://server:port/repository/module/Changesets
).
Fixed.

Fixed duplicated items in the differences of a br…

Fixed duplicated items in the differences of a branch where other branches are merged into this one. An item appeared as many times as merges where the item was modified.

5.4.16.612

New

P4 sync

P4 sync: Now the 'exec' file type modifier is preserved during the synchronization process. The modifier is mapped to the file system permissions on Plastic SCM as follows:
  • During the 'pull' process the behavior is as follows:
    • If the 'exec' file type modifier is set in P4 -> The execution permissions in Plastic SCM are set to the user, to the group and to others (
      r-xr-xr-x
      ).
    • If The 'exec' file type modifier is not set in P4 -> The execution permissions neither are set (
      r--r--r--
      ).
  • During the 'push' process the behavior is as follows:
    • If any execution permission is set in Plastic SCM (either to the user, to the group or to others) -> The 'exec' file type modifier will be set in P4.
    • If no execution permission is set in Plastic SCM (neither to the user, nor to the group or to others) -> The 'exec' file type modifier will be removed in P4 (if it was set before).

5.4.16.610

New

GUI

GUI: The 'Set selector...' option has been removed from the Workspace view, as it is not really useful to set a custom selector manually since Plastic SCM 4.x

Web UI

Web UI: Aesthetical improvements have been made on 'Branches', 'Changesets' and 'Labels' views regarding column order and alignment. In addition to that, the 'Code Reviews' are now shown sorted by date, showing the most recent code reviews first.

A new configuration dialog for the Plastic SCM cl…

A new configuration dialog for the Plastic SCM client has been implemented. Users are able to configure their setup from this dialog, in a single step, no more 'next - next ...' wizards. To configure the server to work with, users are now able to scan the network to find Plastic SCM servers around by clicking on 'Scan network', and use SSL connection optionally. When clicking on 'Connect' to the server button, the authentication mode is inferred, and users only will have to type only his/her credentials. The 'Check' will validate the credentials typed. Optionally, users are able also to configure a Plastic SCM Proxy server and test the connectivity.

Bug

Merge view

Merge view: Context menu options for directory conflicts were using the wrong repository information when the conflict was under an xlink. Thus, when selecting the 'View changes on source' option, for example, a 'Revision not found' error might appear. Fixed.

Merged releases


5.4.16.609

New

GameUI

GameUI: Aesthetic improvements configuring the workspace regarding directory selection:
  • Partially selected directories checkboxes are now drawed with a triangle instead of being filled with a square.
  • Different size & color pair is used when a directory is selected to be loaded, unloaded, or remains the same.

Bug

GameUI

GameUI: If a directory is configured to be fully downloaded in user's A workspace, and a new file in user's B workspace is added in the same directory, when the user A configures again the workspace, the new file added by user B was not downloaded automatically. Now this behavior has been reviewed and the file added by user B in its workspace will automatically be downloaded in user's A workspace. The same will happen for other changes in the directory structure, such as moved or deleted files.

5.4.16.607

New

The performance improvements in the Pending Chang…

The performance improvements in the Pending Changes view introduced in 5.4.15.604 are now available and public.

Now, the submodules and the xlinks are synchroniz…

Now, the submodules and the xlinks are synchronized by the GitSync. The Git submodules are converted into Plastic xlinks during the pull and the Plastic xlinks are converted into Git submodules during the push. The .gitmodules file is not synchronized as a normal file. It is handled on a special way. It is not pulled to Plastic SCM since it is only needed on Git to handle the submodules (is a metadata file). It is regenerated during the push, according to the xlinks info. Remarks: the content is generated by the sync operation, so the manual editions on this file will not be preserved during the push. Please note that before synchronizing a repository with xlinks or submodules, the target repositories must be synchronized. In order to synchronize a repository with xlinks/submodules the mapping information must be added on the gitsync configuration file(gitsync.conf). This information is added on the submodules section with the following format:
git_repository_url -> plastic_repository_spec [writable:true|false] [relativeserver:true|false]
If the submodule must be converted to a writable xlink, the writable field must be included as writable:false. If the writable field is omitted or if it is set to false, the xlink will be created as readonly. If the submodule must be converted to a xlink with a relative server, the field relativeserver must be included as relativeserver:true. If the relativeserver field is omitted or it is set to false, the xlink will be created against the Plastic repository server as non-relative xlink. The following is an example:
[submodules]git://localhost/code -> code@localhost:8084 writable:true relativeserver:truegit://localhost/doc -> doc@localhost:8084 writable:false relativeserver:true

5.4.15.606

New

GameUI

GameUI: The status column shows the new status 'Deleted on server' when the item is deleted in the current branch on the server side. The update operation will unload these items from the workspace when they are not changed or checked-out.

GameUI

GameUI: The update operation will download the new content under the directories that were fully checked during the configuration process.

5.4.15.605

New

GameUI

GameUI: Now it is possible to show the GameUI help by typing any of the following arguments:
* '--help'* '-h'* '--?'* '-?'
Example:
$> gameui.exe --help

GameUI

GameUI: Added new command line options related to the client configuration:
  • --clientconf
    : Allows to specify a custom configuration file.
  • --server
    : Allows to specify a custom PlasticSCM server instead of the configured by default.
  • --cacheserver
    : Allows to specify a custom PlasticSCM cache server instead of the configured by default.
The usage of these parameters can be shown by tiping 'gameui.exe --help'.

GameUI

GameUI: Improved the look and feel of the 'preview' splitters.

GameUI

GameUI: Several improvements have been made on the columns fields:
  • The 'Author' column in the 'Explore workspace' view and 'History' view now shows 'Last edited by'.
  • The 'Status' column in the 'Checkin Changes' view now tells if a checked out file has also been modified.

Bug

GameUI

GameUI: The 'checkin' operation was showing the error message
'Could not find file <filename>'
after checking in a deleted file. This issue only happened if the 'Update and Checkin operations set files as read-only' preference was enabled. Fixed.

GameUI

GameUI: The 'gameui.exe' process wasn't finishing properly when the tool was launched with the
'--wk'
option and the path specified on the option is not the same that the last workspace used before. Fixed.

Merged releases


5.4.15.604

New

The pending changes view performance has been imp…

The pending changes view performance has been improved on Windows. Previously when the disk changes are selected by the user to be show, each time that the pending changes view is refreshed, the full workspace content must be checked on disk. Now, the workspace content is checked only the first time. The following times only the directories where the disk content has been changed will be checked. As a result, the pending changes are obtained much faster. See the results:
  • Using a workspace with 312.722 files and 44.077 folders, 100 files distributed on 10 folders are modified, and then, we look for the pending changes again. Also, we ensure that the workspace content is not cached by the file system, so it must be read from disk. To ensure it, we clean the file system cache.
  • We check the described scenario on the release 5.0.44.598 and the pending changes are obtained on 137481 ms. We also check the described scenario with the new functionality and the pending changes are obtained on 4011 ms. With the new functionality the pending changes are obtained 34 times faster than before.
There is a new setting in client.conf to disable the feature if needed: Set WatcherEnabled to "no" to disable it.

5.4.15.602

New

GameUI

GameUI: Improvements in the image preview
  • Preview added for deleted files in Checkin Changes. Useful to know what was deleted prior to checkin.
  • Preview of checkouts is available now.
  • Directories now have preview both in Configuration Mode and History.
  • The preview is now updated when switching from history to the Explorer tree.
  • The hash calculation of files to preview has been modified so it is much faster and even large files don't slow down the UI.

GameUI

GameUI: Added the 'revert to this revision' option to the context menu of the history view.

GameUI

GameUI: Some standard operations from the CLI and the GUI cannot be run in GameUI (partial) workspaces. The Plastic SCM client core now detects the type of the operation's underlying workspace and if the operation cannot be executed, the user is notified with a descriptive message.

Bug

Replication

Replication: The replication operation had a file/directory handlers leak due to the logging configuration. Up to two handlers of the server folder were kept opened per replication operation. Fixed.

GUI

GUI: The 'create workspace' dialog appeared twice when creating a new workspace from the workspaces view. Fixed.

5.4.15.601

New

GameUI

GameUI: Added the 'checkout recursively' option to the context menu of the workspace explorer view.

GameUI

GameUI: Unavailable xlinks are now properly handled in the GameUI. (An unavailable xlink could be a xlink whose target changeset has not been replicated to the working server). Some common scenarios are described below:
  • The 'checkin' operation doesn’t allow to submit changes inside an unresolved xlink. The operation will warn about this, and the operation will not be performed.
  • The item status on the 'workspace explorer' view shows information about unresolved xlinks and files inside them.
  • The 'configuration' view shows if an xlink cannot be resolved on the server configuration as well.
  • The 'update' operation warns about unresolved xlinks.

GameUI

GameUI: Now, an xlink can be deleted. Previously, the 'checkin' operation was not handling deleted xlinks.

GameUI

GameUI: Now, the GameUI supports writable xlinks not pointing to the head changeset on the targeted branch.

Merge

Merge: From now on, the 'merge' operation supports changes inside 'delete' transformer rule types. The deleted items involved are restored in order to apply changes from the merge operation.

GUI

GUI: Repository browser views: Now, the 'Preview' button is available on these kind of views, so that users are able to preview the items shown in this view. The information provided is limited, since the items shown in this view are not loaded in the workspace. Thus, the information available for regular files is their size; in the case of images the resolution and dimensions information is shown along with the file size.

Performance

Performance GameUI: The traffic between the GameUI and Plastic SCM server has been shrunk. Now, the GameUI reuses the loaded workspace tree and only requests the differences between the loaded tree and the requested tree.

Bug

GUI

GUI: The key combinations: Shift+End, Shift+Home, Shift+PageUp and Shift+PageDown were disabled, so users weren't able to navigate across some views using these combinations. Fixed.

Triggers

Triggers: The behavior of the system when an
after-(operation)
trigger fails has been reviewed, so that the views and operations involved finish gracefully, showing the results of the operation along with the error message associated with the faulty trigger.
Remarks:
  • If an
    after-setselector
    trigger fails, then the
    update
    operation that comes next is not run, since the setselector failed.
  • If an
    after-mkbranch
    trigger fails, then the
    switch to branch
    operation is not run, since the mkbranch failed. (This scenario is only valid if the user selected the
    switch workspace to this branch after creating the branch
    option).
  • If an
    after-mkreview
    trigger fails, then the review is not opened (if the user selected the option to do that), since the
    mkreview
    operation failed.

Merged releases


5.4.14.599

New

Game UI

Game UI: It now remembers the tree column widths. The last folders opened are now remembered, and the switcher window is activated when the user clicks the "Switch workspace" button. In addition to that, fixed some minor bugs regarding the settings.

Game UI

Game UI: New command "cm partial" has been added to allow running commands in a partial workspace. Usage:
cm partial command [command options]
Commands:
configureaddco | checkoutunco | undocheckoutci | checkinmv | moverm | removeupd | update

Bug

Update

Update: A problem involving concurrent downloads while looking for already existing controlled items has been fixed.

5.4.14.597

Bug

GameUI

GameUI: The update operation was not able to update a file when the readonly attribute is set. Fixed. Moreover, the GameUI will use the 'SetFilesAsReadOnly' preference set in the 'client.conf' configuration file to keep the readonly attribute after a 'checkin' or 'update' operations accordingly.

5.4.14.595

New

Command line client

Command line client: Annotate command: Now it is possible to annotate a specific revision from the command line, using its full specification. Examples:
* cm ann AclCmd.cs#cs:12548@codice@azrael:8888* cm ann AclCmd.cs#cs:12548

GUI

GUI: Several aesthetical improvements have been made
  • Minor component alignment issues have been fixed.
  • Some icons have been removed from the dialogs.
  • Some icons have been updated.

5.4.14.594

New

GameUI

GameUI: Usability and performance improvements have been included in this release:
  • Aesthetical improvements.
  • Keyboard shorcuts.
  • Item search in 'Workspace configuration' mode.
  • Improved status calculation performance.
  • Initial Xlink support.

Upgrade system

Upgrade system: New 'server.conf' key, named 'ForceBuildNumberMatch' enables sysadmins to force Plastic SCM clients to upgrade to the latest build, even if the clients are compatible with the server. The server will reject requests if the build number doesn't match. To configure it enter the following value in server.conf:
<ForceBuildNumberMatch>yes</ForceBuildNumberMatch>

Command line client

Command line client: A new command, 'codereview' or 'cr' has been added to the command line client. It is intended to create, edit and delete code reviews in a given repository. As usual, code reviews can be created for branches or changesets. Examples:
$ cm codereview cs:1856@myrepo@myserver:8084 "Task 10034" --assignee=johndoe$ cm codereview 1367 -e --assignee=new_assignee$ cm codereview -d 1367 --repository=myremoterepo@myremoteserver:18084
To get further information, please check the documentation ('cm help cr').

Mac Plastic SCM GUI

Mac Plastic SCM GUI: Ignored elements on the 'Workspace Explorer' and the 'Pending changes' view will now be correctly displayed as 'Ignored' items, including the overlay icon on the 'Workspace Explorer'.

Bug

GUI

GUI: Diffing two changesets in the same branch was throwing a 'key duplicated' exception when a deleted item between these changesets was previously merged to the branch. Fixed.

5.4.14.593

New

GameUI

GameUI: Several improvements in the 'Details' panel on the right side of the screen:
  • Update thumbnail while navigating through the history of an item.
  • The loaded revision in the workspace is now highlighted in the history view.
  • The thumbnail is clean when no item is selected.

Mac Plastic SCM GUI

Mac Plastic SCM GUI: The 'Workspace switcher' window can be reopened through the following menus:
  • 'View' > 'Repositories or
  • 'View' > 'Workspaces'.

Bug

GUI

GUI: Branch Explorer view: Fixed a layout issue in the 'Branch Explorer'. New empty branches were wrongly positioned.

Merged releases


5.4.14.591

New

The lock (exclusive checkout) behavior has been m…

The lock (exclusive checkout) behavior has been modified. Now the lock requires the file to be checked out to be the latest on the branch (no need to set the 'require head' param). It doesn't force to be up-to-date with the head changeset as a whole but to make sure the files to be locked are head, so it prevents concurrent changes to happen. This new behavior has been developed for the new GameUI (game artist oriented Plastic SCM and GUI) but it applies system wide.

First GameUI beta with complete working cycle sup…

First GameUI beta with complete working cycle support.

Web UI

Web UI: Implemented submodules support. The module name is specified in the URL after the repository name. The following URLs are valid:
  • http://server/repname/Items
  • http://server/repname/modulename/Items

Bug

The changes on a Xlink were not expanded and trav…

The changes on a Xlink were not expanded and traversed during a merge operation when the Xlink is involved on a conflict. Fixed. Now the Xlink changes are expanded. Fixed also several "null reference" error messages on not so common scenarios involvong Xlink conflicts resolution, such as cherry picks from already merged changes, and path reuse scenarios (delete and add a Xlink with the same name pointing to a different repository).

Merge

Merge: Fixed a failing scenario where moved items were duplicated on the original path. The failing scneario is the following:
  • Create the following structure on a branch (branch: 'A'):
/game (xlink)/game/src/game/src/foo.c/game/src/bar.c
  • Create another branch 'B' and switch to it. Then, add the following item:
/game/src/baz.c
  • Switch to branch 'A' and perform the following changes:
add /game/codemv /game/src/* /game/coderm /game/src
  • Merge from branch 'B'. A 'change-delete conflict will show up. Choose 'keep source' -> Items duplicated in
    /game/src
    and
    /game/code
    .
Now this scenario is fixed, and the merge won't generate duplicated items.

GUI

GUI: Aesthetic and typographical issues have been fixed.

5.4.13.590

New

GameUI

GameUI: Look & feel improved

Bug

GUI

GUI: Sometimes, a 'Null Reference' exception was shown when showing the method history (only available in .NET 4 installations).

5.4.13.589

New

GameUI

GameUI: Now, the history view is available when the user selects an element on the checkin and explorer workspace views.

Command line client

Command line client: The 'ls' command now accepts a a new format parameter, named "transformed". It displays the applied rule for any transformed item. Please see the command help ('cm help ls') for further detail.

Mac Plastic SCM GUI

Mac Plastic SCM GUI: Recent comments feature added, working the same way as Windows GUI does.

Bug

GUI

GUI: Unable to undo an empty merge (the pending changes view only shows merge links pending to be checked in). Fixed. A scenario to reproduce the fixed bug is the following:
  • Switch to branch
    /main
  • Create file
    foo.c
  • Add & checkin
    foo.c
  • Create branch
    /main/task001
  • Switch to branch
    /main/task001
  • Delete and checkin
    foo.c
  • Switch to branch
    /main
  • Delete and checkin
    foo.c
  • Merge from branch
    /main/task001
    -> empty merge, only a pending merge link appears in the pending changes view.
  • Undo changes -> before this bugfix, the pending merge link didn't dissapear, when it should.

5.4.13.588

New

Mac Plastic SCM GUI

Mac Plastic SCM GUI: Several improvements on the Branch Explorer view. Fixed a layout issue (some branches were overlapped when they had no visible parent changeset).

Bug

Mergetool

Mergetool: The 'result' file encoding preference was not considered in an automatic file merge (when no user intervention is required). Fixed.

5.4.13.587

New

Second GameUI public release fixing a problem in…

Second GameUI public release fixing a problem in status calculation.

Merged releases


5.4.13.585

New

Documentation

Documentation Command line interpreter help: Command help and usage reviewed and updated accordingly.

5.4.13.584

New

Server aliases allow reaching the same server by…

Server aliases allow reaching the same server by different IPs and protocols. The new serveralias.conf file enables this feature on the client. Example: suppose you connect to localserver.office-network.com:8084 from the office, but when you go home you connect through the public SSL-protected IP: ssl://plastic.external-network.com:8090. Using the server aliases the Plastic client will be able to switch from one server URL to the other transparently. The content of the serveralias.conf will be:
localserver.office-network.com:8084 ssl://plastic.external-network.com:8090
Please note it can jump not only to a different URL but also a different protocol (in this case from regular TCP to SSL).

Bug

Fixed the checkin operation error "The Item X cou…

Fixed the checkin operation error "The Item X could not be found in the tree. The new tree cannot be built". It occurred under the following circumstances:
  • UserA and UserB work on the same branch loading the same changeset.
  • UserA deletes 'file1'
  • UserB deletes 'file1' and changes 'file2'.
  • UserA commits the 'file1' deletion.
  • UserB commits the 'file2' change. The 'file1' deletion is still pending to commit.
  • UserA changes 'file3' and commits the change.
  • UserB tries to commit the 'file1' deletion (or a new change), but the checkin operation fails with the previous error.

GUI

GUI: The Ctrl+V shortcut key did not work in the items view.

Merged releases


5.4.13.580

New

Initial version of GameUI

Initial version of GameUI

5.4.13.578

New

Update operation

Update operation: Update progress now shows progress for big files (in 4mb blocks) too.

Bug

GUI

GUI: The 'branches' view did not work properly switching between 'list' view mode and 'tree' view mode when the list was ordered by name (descending). Fixed.

Merged releases


5.4.13.576

Bug

GUI

GUI: Checkin progress: The 'current block' progress bar was not resized when resizing the dialog. Fixed.

GUI

GUI: Fixed a crash when using 'find in files' feature in a diff branch or diff changeset dialog when the differences contains xlinks.

5.4.12.575

New

Improved the symbolic information in the mergetool

Improved the symbolic information that is shown in the mergetool, when resolving a three way merge:
  • Added a parameter in mergetool (
    --progress
    ) to notify the current merge operation to the mergetool
  • Added a parameter in mergetool (
    --extrainfofile
    ) to get extra information about the current merge in the mergetool
  • Implemented a panel in mergetool to show the extended merge info
  • Implemented the needed changes to pass progress and extra info to the mergetool in merge command.
  • Improved the symbolic names passed to the mergetool.
  • Implemented a mechanism to identify virtual changesets when a recursive merge is performed.
  • Symbolic paths are now relative to the workspace.
  • Changed the default merge tool to provide both
    --progress
    and
    --extrainfofile
    parameters
  • Fixed maximize and restored botton image aligment (also fixed the restore button image, that was wrong)
  • When the contributor text is trimmed in the 'select contributor' buttons, now the tooltip shows the entire string.
NOTE: In order to see new changes if you use the Plastic SCM built-in merge tool (Xmerge), you need to add the following parameters to the mergetool in plastic preferences:
--progress="@progress" --extrainfofile="@extrainfofile"

P4 sync

P4 sync: Now the sync process will stop the execution if the inner P4 command cannot be successfully executed. Also, the inner P4 commands are now logged in the configured log4net file. Currently, pushing a Plastic SCM changeset to a perforce stream with remapping rule is not supported, but before this task, the sync process was continuing, marking as 'synced' with perforce the Plastic SCM changeset, when it shouldn't, as the push operation from Plastic SCM to P4 couldn't be completed. From now on, the sync process will be stopped in that scenario before marking as 'synced' Plastic SCM changesets that weren't pushed to P4. Nevertheless, this behavior can be overriden by using the '--continueonp4error' flag in the 'cm sync p4' command (not recommended).

Server

Server: The changeset tree loading has been improved on MySql backend for big trees. Now, a temporary table with the involved revisiond is created when loading a tree. This table will be created in the hard disk by default. To override this setting and create the temporary table in memory, the following parameter in the server's db.conf file can be set:
<MySqlTmpTablesOnMemory>yes</MySqlTmpTablesOnMemory>
The 'LOAD DATA LOCAL' setting in MySql backend must be enabled. (This setting is already enabled by default). More info here. Test performed: Repository with 11 million revisions. Changeset tree loading measurement, with 418950 files and 27914 folders. Time to read all the changeset tree revisions (about 440.000 revisions):
  • Before this release (release 4.1.10.559):
  • Read 440.000 revisions from the 'revisions' table (which contains 11 million revisions) -> 11404 ms.
  • Whith this release (release 4.1.10.561):
    • Read 440.000 revisions from disk temp table -> 9688 ms.
    • Read 440.000 revisions from memory temp table -> 6084 ms.

Merged releases


5.4.11.571

New

p4 sync

p4 sync: Added a debug parameter to the 'cm sync p4' command to avoid p4 client deletion at the end of the sync process. The parameter is:
'--dontremovewk'
.

5.4.11.568

New

Update operation

Update operation: Now, the update operation notifies the download progress, printing size and number of files being downloaded. Also notfies whether the update operation is downloading a big file.

Checkin operation

Checkin operation: Improved the checkin progress notification when working with slow networks.

Bug

p4 sync

p4 sync: The 'sync' operation didn't detect moved files on a case insensitive depot when the changelist's depot path entries are stored in different cases for a moved/added - moved/deleted pairs that should be matched as moved items. Fixed. Example of the failing case, 'p4 changelist' output:
... depotFile //MyStream/Src/foo.c... headAction move/delete... depotFile //mystream/src/foo.c... headAction move/add

Command line client

Command line client: The 'cm ls' command was showing an error message if the workspace contained xlinks and the '--tree' option or the '--selector' option were used together with the '--xml' or the '--format' option, and the '-R' option was not specified. The issue was related to obtaining the revision GUIDs to show them in the command output.

5.4.11.567

New

CLI

CLI: 'cm fileinfo' command is now available. It displays detailed information regarding a controlled item in the workspace. Additional documentation and examples can be found executing the
cm help fileinfo
command.

Now, the listlocks command shows the user name in…

Now, the listlocks command shows the user name instead of the SID.

Bug

When the listlocks command is used with the --onl…

When the listlocks command is used with the --onlycurrentuser option on an authentication mode that uses SID, no lock was returned, although the current user had locked items. Fixed.

Command line client

Command line client: The 'cm find revs' command was printing unexpected paths in the result with certain 'where' clause filters. Fixed.

cm ls

cm ls: XML output formatting reviewed; removed unuseful information, replaced the ItemType node by Type and added a new Status field that specifies whether the node is Controlled or Private. Now, every LsItem displays the same fields, no matter whether it is controlled or private.

Visual Studio 2013 / 2013 Package

Visual Studio 2013 / 2013 Package: The installer was not checking whether Visual Studio was running during a Plastic SCM upgrade; therefore the VSIX installation might fail because the installer could not replace the old dlls with the new ones. Fixed.

5.4.11.565

New

Added a new client-side configuration file, named…

Added a new client-side configuration file, named 'compression.conf', which enables a custom configuration of the compression method used to store the new revision of a file in the database. Currenty there are two tipes of compression methods supported:
  • none
  • zip
Each line of the 'compression.conf' file will define a compression type followed by a whitespace ' ', and a rule to match with the file path. Example:
--- compression.conf --none .jpgzip .txt------------------------
The default compression type is 'zip'. There are 4 types of rules that can be specified, and the order of application is the following:
  1. File path rule
  2. File name rule
  3. File extension rule
  4. Wildcard rule
Examples:
1. /dir/foo.png2. foo.png3. .png4. /**/foo*.???
If a file path matches with a path rule, the matching rule compression type will be used. Otherwise, PlasticSCM will try to match the file path with the next kind of rule. The 'compression.conf' file can be defined in the following locations:
  • Root of the workspace (it will be valid only for that workspace).
  • User config folder (usually
    \Users\AppData\Local\plastic4
    or
    $HOME/.plastic4
    ) (it will be applied for all workspaces).
If both files exist, their rules will be combined.

5.4.10.564

Bug

Server

Server: The server was returning a 'CmItemLoadedTwiceOnTreeException' performing a checkin after a merge operation, when the merge source contributor has performed changes like the example below:
  • Initial content:
//dialogs/dialogs/Progress.cs/views
  • Changes on source contributor
added /guimoved /views -> /gui/viewsmoved /dialogs -> /gui/views/commonmodified /gui/views/common/Progress.cs
This issue has been fixed.

Merged releases


5.4.9.560

New

Command line client

Command line client: from now on, the return code of 'cm find' won't be an error code if the object specified in the condition is not found in the repository. An empty list will be returned instead.

Command line client

Command line client: Added 'srcrepname' field to the 'cm find attribute'. Also, 'srcrepname' and 'dstrepname' have been added to the 'cm find link' fields. Example:
cm find attribute where srcobj='br:/main' --format="{value} rep:{srcrepname}"

Command line client

Command line client: from now on, the 'cm status --changelists --xml' command shows the changelist name in the xml output.

Transformable workspaces

Transformable workspaces: now, both the update operation with pending changes in the workspace, and the fast-update operation performs a check before updating: they will consider the defined transformer rules in the workspace and check whether they are compatible with the incoming changes the update operation would apply. If the check fails, the operations will fallback as follows:
  • In case of a fast-update operation, a standard update will be run.
  • In case of update with pending changes operation, a merge operation
will be run.

Bug

Command line client

Command line client: the 'cm changelist' command didn't support multiline description. Fixed.

5.4.9.558

New

Transformable workspaces

Transformable workspaces: Added support for partial update with transformer rules.

Merged releases


5.4.9.556

New

Server

Server: Performance improvements Improved memory usage when caching large number of changeset trees (> 300K items). Results obtained (450K items in a tree):
  • Without the new improvements:
    • 1 tree in the server cache -> 230 MB.
    • 5000 trees in the server cache -> 1320 MB.
  • With the new improvements:
    • 1 tree in the server cache -> 250 MB.
    • 5000 trees in the server cache -> 290 MB.

Bug

Active Directory authentication mode

Active Directory authentication mode: Support recursive groups in AD integrated security. There were several scenarios where the permissions weren't applied as expected. Example of failing scenario:
  • User U1.
  • Group G1. Members of G1: G2.
  • Group G2. Members of G2: U1.
  • If the 'read' permssion is denied to group 'G1' on a repository, the user 'U1' will have read permissions for that repository when it shouldn't.
Now this scenario is fixed, and the read permissions for user 'U1' will be denied.

The paths with accents characters added on window…

The paths with accents characters added on windows are not properly handled on mac (they are wrongly detected as locally moved). Fixed.

Web UI

Web UI: Fixed an error viewing differences in the Code Review page from the WebUI.

Merged releases


5.4.9.552

New

Server

Server: External data storage implemented for file revision contents. Now it is possible to setup the Plastic SCM server to store file revision chunks in a directory instead of inserting the contents in the database backend. Setting up this configuration leads into performance improvements on update and checkin operations. To setup this configuration, the 'db.conf' file on Plastic SCM server folder should add the following contents:
<BlobStorage> <BasePath>FULL_PATH_TO_DIRECTORY_STORAGE</BasePath> </BlobStorage>
Along with "BasePath" configuration, uses may change minimun size threshold for revision chunk to be stored in the storage directory. Only the file revision chunks whose size* is bigger than the configured threshold will be stored on the storage directory. (*) file revision chunks after compression. To setup this value, add the following xml tag:
<MinSize>THRESHOLD_IN_BYTES</MinSize>
Example:
<BlobStorage> <BasePath>C:\PlasticSCM\server\db_storage</BasePath> <MinSize>1000</MinSize></BlobStorage>

Merged releases


5.4.8.550

New

GUI

GUI: Column filters are now available on all views. An improved filter mechanism lets you specify the column you want to use to filter. You can still use the old filters to search on all columns, but you can also restrict the search to a given column as follows:
[<column_name>:<filter_value>]*
Examples of valid filters are:
  • On changesets view:
"created by":mike comment:"first changeset"
  • On pending changes view:
status:changed item:bin/lib type:txt

Bug

Command line client

Command line client: Fixed the help of the
cm history
command.
There was a mismatch when using
cm hist --format
between the documentation and the format string.

Semantic method history

Semantic method history: Fix missing data in sematic method history showing the history of a method when merged revisions are involved.

Merge

Merge: Fixed an edge case on a recursive merge (the merge operation calculates more than one ancestor changeset):
  • When one ancestor has removed an xlink and added a new one on the same path, and another ancestor involved on the intermediate merge hasn't changed the xlink (the removed one), the merge was failing with the error:
    Can't add an entry with the same name. Duplicated child [<item name>]
    .

5.4.8.546

New

Performance improvements

Performance improvements The number of compression threads during the upload processes (affects to the checkin, fast-import, etc.) can be configured to take advantage of the multi-cpu environments. This value can be set between 1 and 10. (With any other number it will work as single-threaded). To configure this value, the client.conf file should be edited and add a xml node, named 'UploadCompressorsNumber' as follows:
<ClientConfigData> ... <UploadCompressionSize>2</UploadCompressionSize> ...</ClientConfigData>

Performance improvements

Performance improvements The number of concurrent threads during the downloading processes can be configured in order to improve the performance of the update operation. To configure this value, the client.conf file should be edited and add a xml node, named 'DownloadPoolSize' as follows:
<ClientConfigData> ... <DownloadPoolSize>3</DownloadPoolSize> ...</ClientConfigData>

5.4.8.542

Bug

The owner of a submodule couldn't be changed. Fix…

The owner of a submodule couldn't be changed. Fixed.

5.4.8.541

Bug

Fixed several issues regarding submodules feature

Fixed several issues regarding submodules feature

5.4.7.539

Bug

GUI

GUI: Sync view: An error message was shown when syncronizing a repository with a submodule. Fixed.

java cm client

java cm client: Fixed an error in the
'cm log'
command using
'--xml=path'
argument.

5.4.7.538

New

"Submodules" feature available

"Submodules" feature available: Now it is possible to create 'repositories inside repositories' or 'submodules'. It means that a single physical repository (mapped to a physical database) can contain multiple submodules, each of them being a complete repository. Check the following example1:
$ cm mkrep quake$ cm mkrep quake/engine$ cm mkrep quake/opengl$ cm mkrep quake/directx$ cm lrep 1 default localhost:8084 2 quake localhost:8084 2:1 quake/engine localhost:8084 2:2 quake/opengl localhost:8084 2:3 quake/directx localhost:8084
The 'submodule' name is as follows:
parent_repo/module_name
, which allows companies creating a repository namespace to better organize big organizations.
In the previous example it would be possible to work on the 'quake' repository as usual, but also on 'quake/engine'. Each submodule is a complete repository with no differences from a conventional one other than the name and the fact that it is stored inside the database of the parent repository. From the security point of view the permissions of a submodule inherit from its parent repository. The main motivation behind submodules is to help IT managers to manage the repositories in huge companies with many small repos which are better stored inside a single physical database. Submodules give more flexibility to the IT managers to design the database infrastructure. Together with the submodule implementation some improvements have been made to the database layer: Now the Plastic SCM server can start up using clean databases (created by db admins) and create its tables inside. It means the database admins can precreate the databases to contain repositories. Notes: -Submodules are implemented as database schemas in SQL Server and Postgresql. -For all the other backends new tables prefixed with the module identifier are created.

Eclipse plugin

Eclipse plugin: The PSF now supports submodules in the repository spec.

Performance

Performance Command line interface: The time loading client.conf file has been improved if the Plastic SCM version is the one compiled in .NET 4. (in .NET 2 these improvements were already available). These improvements can be noticed running any 'cm' command, as well as startup time of Plastic SCM GUI client. Results obtained executing
'cm version --timer'
:
- .NET 2: Before -> 78 ms. After -> 265 ms.- .NET 4: Before -> 63 ms. After -> 156 ms.

Merged releases


5.4.6.535

New

Transformable workspaces

Transformable workspaces: Implemented transformer rules, explained below == Transformer rules ==
  • The workspace content can be locally transformed based on some rules. It means, workspace items can be moved to different locations or even not loaded.
Two kind of rules are currently supported: === Move rules ===
  • This rule moves a controlled path to a different location. The source path and the parent folder of the destination path must be also controlled.
  • Parts of one repository can be loaded inside a different repository without any restriction.
  • Examples:
mv /Game /TnT/Gamemv /src/libs/nh3 /nh3
=== Remove rules ===
  • This rule avoids loading certain parts of the tree. The specified path must be a controlled path.
  • Examples:
rm /src/binrm /textures/hugefile.map
== Transformer rules: How to use them ==
  • These rules are specified in a file named
    'plastic.transformerrules'
    inside the workspace folder named
    '.plastic'
    (it must be manually created first).
  • After editing the file to add, remove or change any rule, an update operation must be manually executed to make the workspace changes effective (forgetting the update operation after editing the file can lead to weird issues).
  • There cannot be pending changes in the workspace when editing the rules file.
== Transformer rules: Current status ==
  • This functionality is still under development although a standard working cycle can be normally performed. The most common operations are supported: add, rm, co, unco, ci, merge, status, ls, etc.
=== Not supported scenarios with transformer rules ===
  • Fast-update operation.
  • Update with controlled pending changes.
  • Cloaked functionality.
  • Merge inside rm rules.
=== Known issues ===
  • The 'unco' operation of a local delete operation with a move rule inside cannot be completed. This issue can be workarounded by running a standard update once there aren't controlled changes in the workspace.
  • The edited xlinks are automatically checked in when they contain a transfomed item with changes inside it.
  • The 'Retry update' or 'Update forced' buttons from the 'Update report' view can lead to an uncontrolled exception if message says that some rule couldn't be applied. A partial update (unrecommended operation) from the command line could end up with the same error.
  • A directory can be kept as checked out after a merge operation if a replace operation involves a transfomed moved item (the move rule must involve different parents).
=== Restrictions ===
  • The xlinks cannot be moved by transformer rules. Example:
$ mv /src/xlink /xlink
  • The tranformer rules cannot modify an already applied rule. Example:
$ mv /src/foo.c /src/bar.c$ mv /src /source
  • The rm rules cannot be applied when they contain the source or destination of a mv rule. Example:
$ mv /src/foo.c /doc/foo.c$ rm /src# or$ rm /doc
  • The rm operation cannot be applied when it contains the source or destination of a mv rule. Example:
$ mv /src/foo.c /doc/foo.c$ cm rm src
  • The transformed moved nodes cannot be moved again. Example:
$ mv /src/foo.c /doc/foo.c$ cm mv doc/foo.c foo.c

Bug

Command line client

Command line client: The fast-update operation was failing when it had to update an xlink whose target repository has changed (the relative server option). Fixed.

Merge operation

Merge operation: The recursive merge could fail when multiple intermediate merges calculate the same writable xlink to be copied (added). Fixed.

5.4.6.532

New

Transformable workspaces

Transformable workspaces: Implemented core system

P4 sync

P4 sync: The "cm sync" command output and help has been improved. Now, the sync process will notify progress in the initial phase, when the process is fetching the changes that needs to be synced (pulled from foreign scm or pushed from PlasticSCM to the foreign scm).

Bug

Command line interface

Command line interface: When you perform a
cm status --changelist
command in a partial path, some non-persistent changelists were deleted.

Command line interface

Command line interface: The
cm cat
was writing an extra empty line at the end of the output when the
--file
option was not specified. Fixed.

Merged releases


5.4.6.525

New

Added some shortcuts to the GUI

Added some shortcuts to the GUI:
  • Ctrl+D
    to show branch and changeset differences from the Branches View, Changeset View and Branch Explorer.
  • Ctrl+V
    will focus an item in the Items View if you have copied the item path in the clipboard.
  • The diff view (diff branch, changeset) uses the following shortcuts:
    • Ctrl + Alt + +
      to navigate to the next file
    • Ctrl + Alt + -
      to navigate to the previous file
    • Ctrl + Shift + Alt + +
      to navigate to the last file
    • Ctrl + Shift + Alt + -
      to navigate to the first file
    • There is no need to focus the differences control to navigate through differences (
      Ctrl+ + or Ctrl + -
      ).

cm sync

cm sync: Added
--commentseparator
option to customize a separator for the comments added automatically by Plastic SCM (e.g.: when
--traceinfo
option is set). If
--commentseparator
is not specified, the default separator will be a couple of new lines.

Bug

The cm ls command did not show proper information…

The
cm ls
command did not show proper information if the
--tree
option was used along with a workspace or a non-existent path. Fixed: Now, if
--tree
or
--selector="rep..."
are specified, the path provided must be a server path (
/dir/file.txt
), not a workspace path (
C:/Users/myuser/mywk/dir/file.txt
).

5.4.6.524

New

P4 sync

P4 sync: The "cm sync" command output and help have been improved. Now, the sync process will notify progress in the initial phase, when the process is fetching the changes that needs to be synchronized (pulled from the foreign SCM or pushed from Plastic SCM to the foreign SCM).

Bug

Fixed a NullReference exception calculating some…

Fixed a NullReference exception calculating some cases of cherry pick.

Merged releases


5.0.44.767

Bug

Fixed an issue in protocol auto-detection that en…

Fixed an issue in protocol auto-detection that ended up in a hanged server combined with clients having wrong LDAP passwords massively.

5.0.44.764

New

Plastic network protocol

Plastic network protocol This new release of Plastic SCM 5.0 adds official support for the new 'Plastic network protocol' (a.k.a. 'plasticproto'). In short, this release makes 5.0 clients compatible with 5.4 servers. Plastic SCM 5.0 clients upgraded to BL764 will be compatible with 5.4.16.765 servers and later. The 5.0 client automatically detects the protocol supported by the server. It tries to connect using 'plasticproto' first, and if it fails it falls back to remoting. The main features of plasticproto are:
  • Improved API compatibility. Our intention from now on is to keep all clients and servers compatible (from this release onwards). It means we get rid of breaking compatibility on major releases as we did in the past. All of this will greatly simplify deployment, especially on big teams. Users will be able to upgrade to a newer major release even if not the team members upgrade at the same time. Compatibility checks now happen on a per method basis. Methods can be versioned independently, which helps us evolving the API faster while not forcing all users to upgrade.
  • Reduced call overhead: the protocol is much more compact than before, because it is lower level and designed ad-hoc for Plastic. As an example: a simple "cm lrep" request (just the request, not including the answer) was about 400 bytes before. Now it is about 50 bytes when a new socket connection is opened, and only 2 bytes if a connection is reused.
  • Increased portability. The new plasticproto makes it simpler to port to new frameworks like .NET Core and implement native clients on mobile devices. This is because it doesn't rely on complex RPC like before, but just on plain sockets.
  • Better performance: the lighter API helps during both performance and scalability tests. While the initial version is not dramatically faster than the older on LAN, the plan is to use it to greatly improve data transfer.
A little bit of history:
  • For years, communications between Plastic client and servers (including communications between servers) happened through .NET/Mono Remoting.
  • In fact, it was a heavily customized remoting layer, improved for scalability, performance, memory reduction and faster serialization, among others.
  • It allowed us to run circles around other version controls (more here) but it had issues regarding major version compatibility.
  • We had to freeze the API to keep it compatible, and per-method versioning was not easily doable.
How to enable plasticproto: Simply install a new 5.4 server on release 5.4.16.765 and you will see how you can cleanly connect from a 5.0.44.764 client in 5.0. Remarks: 5.0 clients do NOT need
plasticpipeprotocol.conf
file unlike 5.4 clients.

5.0.44.716

New

Server

Server: The repositories list are loaded on server startup and keep up to date all time. Previously they were reloaded only after some repository operations or when a not existing repository was used.

Server

Server: Remove some noisy, unneeded log entries

5.0.44.715

New

Server

Server: Improvements in Channel Call log
  • Added queued info to channel call and to plasticlogstats. It shows the milliseconds that a method call has been waiting before being attended.
  • Added cpu time (ms) to channel call, the 'showmethodlist' command and the associated log. 'plasticlogstats' modified accordingly.

Server

Server: Loading of active/inactive users is only done during server startup.

Server

Server: ActivityScheduler 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.

Server

Server: The ACLs for all repos are now loaded on server startup instead of on demand.

Added a new flag to
server.conf
file to disable database upgrades

Added a new flag to
server.conf
file to disable database upgrades:
DatabaseUpgradeDisabled
. It must be set as
<DatabaseUpgradeDisabled>true</DatabaseUpgradeDisabled>
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.

5.0.44.714

Bug

Server

Server: Reviewed performance of GetRepositoryList calls

5.0.44.713

Bug

Server

Server: Security info was wrongly recalculated when a new user becomes active or an existing user membership is changed. Fixed. Now, only the related security info is updated.

5.0.44.703

Bug

Command Line Client

Command Line Client:
cm find on repository
was incorrectly listing all repos even when it was not needed. It caused a performance impact under heavy load. Fixed.
IMPORTANT REMARK: The linux packages for this release are not available. The latest linux packages for Plastic SCM 5.0 releases are the 5.0.44.631 packages. Ask support (support@codicesoftware.com) for further info.

5.0.44.631

New

This release introduces the new Team and Enterpri…

This release introduces the new Team and Enterprise Editions.

5.0.44.629

New

GUI

GUI: Improved I3 (black) theme on Windows by using the ClearType Fonts.

Visual Studio plugin

Visual Studio plugin: Changed 'Branch Explorer' view colors in Visual Studio 2012 or higher. Now, branch explorer colors are clearer so contrast is higher. Old colors had low contrast and they were difficult to distinguish.

GUI

GUI: Pending changes: Now, extra file info (changeset, size, author and modification date) is displayed for binary files.

Command line client

Command line client:
cm mklabel
command can now be executed from outside a workspace. The syntax is the following:
cm mklabel lb:labelname@rep:myrep@localhost:9092 --changeset=8733
Note the cset number is mandatory in this case.

GitSync

GitSync: Added support to sync with Git repositories using SSH protocol. To use this feature correctly, users must have a SSH command line client in the PATH environment variable properly configured (described below).
SSH client configuration
  • A SSH command line client "ssh" should be configured in the PATH environment variable.
  • Copy the private key file (usually a file called
    id_rsa
    ) to the ssh config folder. Usually the folder name is
    .ssh
    , located in the user's HOME folder.
    • On Windows-based OS, the "HOME" environment variable has to be set to the user folder, such as
      C:\Users\myuser
      .
    • On Linux-based OS, don't forget to set proper permissions to the private key file:
      chmod 600 /home/myuser/.ssh/id_rsa
  • Use the GitSync specifying the SSH clone URL. Example:
    cm sync rep2 git git@bitbucket.org:myuser/myrepo.git
    If the private key is protected, the user will be prompted to enter the passphrase.
Troubleshooting
  • Problem: The ssh server is not listening in port 22, or different private keys have to be set for different servers.
    • Solution: Create a
      config
      file in the
      .ssh
      folder, specifying different settings foreach server. Example of
      config
      file contents:
      Host gitolite.elegosoft.comUser gitolitePort 2222IdentityFile ~/.ssh/id_rsaHost github.comUser gitIdentityFile ~/.ssh/github_keyHost bitbucket.orgIdentityFile ~/.ssh/id_rsa
  • Problem: I get "An error occurred while connecting to Git".
    • Solution: It might be an error related with the configuration of the ssh client. It is recommended to use GitSync with the command line client to get more info about the error. Example:
      $ cm sync rep2 git git@bitbucket.org:myuser/myrepo.git

Bug

Command line client

Command line client:
cm showacl
couldn't be execute from outside a workspace. Fixed.

Command line client and GUI

Command line client and GUI: Private items excluded from 'ignored' parents couldn't be neither added nor listed in the 'pending changes' view or
cm status
command.
For instance, using this set of rules in the 'ignore.conf' file:
/src!/src/bin
the 'pending changes' view and
cm status
command were hiding all items under
/src
, even those items under
/src/bin
.
Fixed. Now,
/src
path and children paths such as
/src/readme.txt
,
/src/lib/newlib.h
, etc. will be correctly shown as 'ignored' items, whereas
/src/bin
and its children paths (such as
/src/bin/client.exe
,
/src/bin/deps/pom.xml
) will be shown as private items.
Remark: The
cm status --cutignored
will still hide everything under an 'ignored' item.

Command line client

Command line client:
cm mklabel
command was failing when using --changeset option with an invalid changeset number. Fixed. Now, this error condition is notified to the user.

Merge

Merge: Fixed an error performing a
merge
operation when a directory is removed and reloaded again during the merge resolution. The file conflicts could be lost if they were related to the reloaded directory.
The failing scenario is the following:
  • Initial structure:
//src/src/bar.c/src/foo.c
  • Changes in source contributor:
add /docch /src/foo.cmv /src/foo.c to /doc/foo.cdelete /src
  • Changes in destination contributor:
ch /src/foo.cch /src/bar.c
Choosing 'keep source' option in the directory conflicts resolutions (DeleteChange + MoveDelete) were causing the changes in the '/src/bar.c' item were lost. Now the case it's fixed, and the file contents are correctly merged.

5.0.44.626

New

IntelliJ Plugin

IntelliJ Plugin: Now, IntelliJ 13 is also supported

Bug

Unity 3D

Unity 3D: When the user tried to submit a single deleted item, some other paths were proposed to be submitted also, when they shouldn't, as the user only wanted to submit the deleted path. This scenario has been fixed, and only the requested path is proposed to be submitted.

The extended trial registration process was openi…

The extended trial registration process was opening an invalid URL. Fixed.

GUI

GUI: The license notification area was being displayed by mistake sometimes. Fixed.

GUI

GUI: After a repository renaming, the GUI might show an error when building context menu options for an item in the 'Items' view. Fixed.

CodeBeamer Task Control

CodeBeamer Task Control: URL's that started with 'https' string were unsupported. Fixed, added SSL communication support.

GUI

GUI: An error occurred trying to search matches for a locally moved file, when it was checked out. Fixed.

5.0.44.620

New

GUI

GUI: Branch Explorer: If the selected object is changed and their comments have been edited but not saved yet, a confirmation dialog is shown to let the user save the changes or discard them before changing the selection.

GUI

GUI: The about form contains now a link to the release notes in the website.

Unity plugin

Unity plugin: Now it is possible to submit a single path under a directory that has been previously renamed/moved. The renamed/moved directory and its '.meta' file will also be submitted, as they are required dependencies for the selected path. Example:
  • The Unity project has the following structure:
/Assets/Assets/Fonts/Assets/Fonts.meta/Assets/Fonts/C64.ttf
  • Rename
    /Assets/Fonts
    to
    /Assets/Fonts_renamed
    (the
    /Assets/Fonts.meta
    file will also be renamed to
    /Assets/Fonts_renamed.meta
    )
  • Now, change the file
    /Assets/Fonts_renamed/C64.ttf
    and
    /Assets/Fonts_renamed/C64.ttf.meta
  • Submit
    /Assets/Fonts_renamed/C64.ttf
    and
    /Assets/Fonts_renamed/C64.ttf.meta
    : The directory
    /Assets/Fonts_renamed
    and its '.meta' file will also be submitted as required dependencies.
Before this release, the submit operation wasn't able to finish sucessfully unless a full submit operation (submit all pending changes in the workspace) was performed. Now, it is possible to submit single paths in this scenario.

Bug

The mono version (2.6) included in the installer…

The mono version (2.6) included in the installer has an issue with the date conversion of files timestamp, causing that some files were wrongly detected as changed, after the daylight savings. Now, the files timestamps are converted correctly even using old mono versions.

Command line client

Command line client: The 'cm li' command was showing an expiration date for 'unlimited' licenses. Now the command shows 'unlimited' string instead of an expiration date.

5.0.44.618

New

GUI

GUI: Implemented 'tree' view mode (items grouped by path) for Pending changes view and Diff branch/changeset views. Items can be shown grouped by paths. To enable this new view mode, right click in the list of items and select the context menu option: 'view items' > 'as list/as tree'.

Bug

GUI

GUI: When an item moved on destination and changed on both source and destination contributors was diffed from the Merge view, a "Incorrect object specification" error message was shown. Fixed.

Annotate (blame)

Annotate (blame): The 'blame' algorithm finds in which revision each line of a file was created. Normally it is just about traversing the parent revisions but, when merges are involved the calculation must consider also each merge contributors. There was a bug finding whether the line was changed in the parent or in one of the merge sources. Now the issue has been fixed.

5.0.44.616

Bug

GUI

GUI: A notification panel indicating the license has expired was wrongly shown when the Plastic SCM GUI was connected to a server whose version was older than 5.0.44.614. Fixed.

5.0.44.614

New

GUI

GUI: Code review: Now the differences in file system permissions are highlighted in a darker color to make it easier for users to check what permissions have been changed.

A new configuration dialog for the Plastic SCM se…

A new configuration dialog for the Plastic SCM server has been implemented. The configuration wizard has been replaced by a single form where the server can be easily configured in a single step.

Bug

GitSync

GitSync: An error was being shown in the sync process from Git to Plastic SCM having the following scenario:
  • Have a Plastic SCM and Git repositories synchronized.
  • Create a Xlink in Plastic SCM and push to Git (new empty commit is created in Git)
  • Run an update operation in Git, and commit a new change.
  • Try to sync to get the new changes performed in Git -> An error is shown.
This scenario has been fixed and now the new changes can be pushed from Git to Plastic SCM.

Checkin operation

Checkin operation: The checkin operation was failing with certain rare files that cannot be compressed. Fixed.

Fixed duplicated items in the differences of a br…

Fixed duplicated items in the differences of a branch where other branches are merged into this one. An item appeared as many times as merges where the item was modified.

5.0.44.611

New

Crucible plugin

Crucible plugin: The plugin has been upgraded to support the newest Crucible version available (v3.5.4).

Bamboo plugin

Bamboo plugin: Now the plugin is fully compatible with Bamboo 5.6.x series.

Item merge tracking

Item merge tracking: The differences of changesets and branches have been improved in the way readonly xlinks are handled in merges. Now, the xlink addition, edition, or deletion is displayed in the 'merge from' category. In case of a xlink edition (replace the target changeset in the source contributor of the merge), the differences between the old target and the new target are also displayed in the 'merge from' category.

A new tool has been implemented to calculate line…

A new tool has been implemented to calculate line-of-code and source-lines-of code statistics for every modification stored on a given repository. The new tool can be found in the client directory, named 'repostatscalculator'. Output results can be stored into a MySQL database. To show the tool usage, just type 'repostatscalculator' without arguments in a shell window.

Bug

Merge

Merge: Fixed an error performing a 'merge' operation when a directory is removed and reloaded again during the merge resolution. The file conflicts could be lost if they were related to the reloaded directory. The failing scenario is the following:
  • Initial structure:
//src/src/bar.c/src/foo.c
  • Changes in source contributor:
add /docch /src/foo.cmv /src/foo.c to /doc/foo.cdelete /src
  • Changes in destination contributor:
ch /src/foo.cch /src/bar.c
Choosing 'keep source' option in the directory conflicts resolutions (DeleteChange + MoveDelete) was causing the file conflict of the
'/src/bar.c'
item was lost.
Now, the file contents are correctly merged.

Command line client

Command line client: Fixed unix date format in 'cm log' command Previously, tick counts since epoch was returned when
{unixdate}
was requested in
csFormat
string.
Now, the command returns unix timestamp correctly (seconds since epoch).

5.0.44.603

New

GUI

GUI: Two new categories have been added in the differences dialog (Diff branch contents, Diff changeset contents):
  • Changed during merge (CC): it groups files changed during the merge by both the source and the destination contributors.
This new category has been added to ease during the review of all branch differences without having to expand each merge looking for merged files. In addition, an informative panel has been added to keep merge information for each file. From this informative panel is also possible to navigate to the change in the merged category.
  • Only filesystem permissions changed (Fs): it groups files with only filesystem permissions changes (chmod).
This new category has also been added to ease the review of changes.

GUI

GUI: Item search improved in 'Items' view with wildcards and basic regexp. The following wildcards are allowed:
*
-> Will match any character sequence of 0 or more characters
?
-> Will match a single character.
pattern
-> Will match only this pattern, strictly, but this won't match any string that contains the pattern inside.
Basic C# regex are allowed like ^pattern or pattern$ to match only the begining or the end of the string. Additional C# regexp not containing
*
and
?
characters are also allowed.

GUI

GUI: 'Items' view, usability improvement: From now on, after deleting an item, the focused node will be a closer one to the deleted node in order to avoid too much scrolling.

GUI

GUI: Now, the expansion rules of an xlink are listed including the repository on the xlink dialog (the dialog that is used to create or edit an xlink).

Bug

GitSync

GitSync: When an item was added in a branch and merged to another branch in git, the GitSync was deleting and adding the item in Plastic SCM, which could lead to traceability issues. Fixed. Now, the same item is reused, just creating a new revision only when needed (that's it, if the item was also modified).

Unity plug-in

Unity plug-in: Unable to submit a directory that has been previously moved or renamed. Fixed.

GUI

GUI: The differences dialog (Diff branch contents, Diff changeset contents) were showing a wrong path for any change inside an xlink that was inside another xlink. Example of failing case:
* add + checkin /code (wxlink)* add + checkin /code/win32 (another wxlink)* add + checkin /code/win32/win_local.h* checkout + modify + checkin /code/win32/win_local.h
When the differences were shown, the path of the item
win_local.h
was
/code/code/win32/win_local.h
, which was wrong. Now it is fixed, and the right path is shown, which is:
/code/win32/win_local.h
.

GUI

GUI: When the target changeset of an xlink is changed from the Plastic GUI, an auto expansion rule is generated. But a branch from the xlinked repository is wrongly set as the source branch of the rule. Fixed. Now, the right branch from the parent repository is set as the source branch of the rule.

5.0.44.600

New

Visual Studio Package

Visual Studio Package: Now it is possible to use the 'Shelves' view from Plastic SCM Visual Studio plugin. The new view is available from the 'Plastic SCM' menu, where all the other views are located.

GUI

GUI: Improved the selection checkboxes behavior of the pending changes view. From now on, when the user performs a multiple selection and checks/unchecks one of its nodes, the whole selection updates the checkbox value.

GUI

GUI: Several usability improvements in the editable differences:
  • When there are unsaved changes in the 'pending changes' view (right diff textbox), a prompt dialog is shown asking the user for saving the new changes in the following
scenarios:
  • The user changes the selection in the file list.
  • The user refreshes the view.
  • The user tries to close the view.
  • The user close the view
  • When the user selects a textbox in the diff control, the focused textbox is now highlighted.
  • When the user edits the right contributor in the diff control, the right textbox's header is remarked in red.

Eclipse plug-in

Eclipse plug-in: Added support for ignored files. Two context menus have been added to the Eclipse plugin. The first one is located in the 'Team' context menu from the package explorer. The second one is located in the 'pending changes' view. The user can add or remove files to the ignored file list('ignore.conf' file), using the full file path, the file extension or the file name.

Bugzilla integration

Bugzilla integration: Integration updated in order to be compatible with latest bugzilla versions (v4.4.5).

Bug

GUI

GUI: Now, the 'update workspace' action in the 'Items in workspace' view, takes into account the 'Behavior when trying to switch / update the workspace with changed items' user option.

Merge

Merge: Fixed an error performing a 'merge-to' operation when the source contributor has performed complex 'move' and 'add' operations with directories. Example:
  • Initial structure:
    //src/src/foo.c
  • Changes in source contributor:
    • move
      /src
      ->
      /doc
    • add
      /src
    • move
      /doc
      ->
      /src/doc
    • move
      /src/doc/foo.c
      ->
      /src/doc/bar.c
Performing a 'merge-to' operation from these changes was causing an error. Now the error has been fixed and the 'merge-to' operation can be successfully completed.

GUI

GUI: If an
after-mkrep
trigger failed when creating a new repository, the
repositories
view was not refresed and the new repository was not listed. Fixed.

GUI

GUI: If an
after-mkworkspace
trigger failed when creating a new workspace, the
workspaces
view was not refreshed and the new workspace was not listed. Fixed.

GUI

GUI: Dragging and dropping views in the Plastic SCM GUI may lead eventually to an error when trying to reallocate the view in the new location. Fixed.

Visual Studio Plugin

Visual Studio Plugin: When working in a
.dtproj
project (SSIS package project), and the user switches to other changeset different than the loaded one, sometimes a 'The hierarchy is not in a valid state' error message is shown. Now, the problem is fixed and no error message is shown.

Visual Studio Plugin

Visual Studio Plugin: After saving a readonly file under version control, a 'Save as/Overwrite/Cancel' dialog was shown when it shouldn't. Now the issue it's fixed: As the file is under the control of Plastic SCM, a 'checkout for edit' operation is performed to remove the readonly attribute and saving the new file contents.

GUI

GUI: The 'diff branch/changeset contents' view was not showing the deleted items as a result of a merge operation inside the top-level 'Merge from' node. They were shown as regular deleted items in a top-level 'Deleted' node. Now, the issue is fixed.

5.0.44.598

New

Server

Server: Now, the maximum comment size can be manually configured. To configure this parameter, add a new tag in the server's
db.conf
file, named
CommentLimit
in order to set the value for the maximum allowed comment length (in characters).
Example:
<DbConfig> ... <CommentLimit>2000</CommentLimit> ...</DbConfig>
However, this configuration will require the sysadmin to manually alter the database tables to match this new value (see column 'scomment' on table 'object'). The comment length limit is set to 1000 characters by default. Even so, importing data (cm sync or cm fast-import) will only store the first 1000 characters of incoming comments, no matter which value is contained in the 'CommentLimit' tag. Warning: Please note that replication operations may fail if servers have different comment length limits. Please make sure that all involved servers have their 'CommentLimit' tag set to the same value in the 'db.conf' file and their repository databases have been modified accordingly.

5.0.44.596

New

Extensions

Extensions: A new extension supporting CodeBeamer interoperability has been added. This allows the branch explorer and the changesets or branches views to display issue tracking information from CodeBeamer. Setup: Include these lines inside your 'client.conf' file:
<Extensions> <Extension AssemblyFile="[PATH_TO_PLASTIC]\client\extensions\codebeamer\codebeamerextension.dll" /></Extensions>
Also, you should create a file in the same directory as the 'client.conf' file, called 'codebeamerextension.conf' to configure the extension. You can use this as a template:
<CodeBeamerExtensionConfiguration> <HttpUrl>http://localhost:8080</HttpUrl> <User>tester</User> <Password>tester</Password> <BranchPrefix>scm</BranchPrefix> <WorkingMode>TaskOnBranch</WorkingMode> <!-- TaskOnChangeset is also available --></CodeBeamerExtensionConfiguration>

Command line client

Command line client: Annotate command: Now it is possible to annotate a specific revision from the command line, using its full specification. Examples:
$ cm ann AclCmd.cs#cs:12548@libs@saturn:8087$ cm ann AclCmd.cs#cs:12548

Bug

Jenkins plugin

Jenkins plugin: The jenkins plugin did not reuse Plastic SCM workspaces correctly when the 'Use update' preference was set. Fixed.

5.0.44.592

New

GUI

GUI: Repository servers sync view: Several performance improvements have been implemented, along with new features to sync only a subset of branches:
  • 'Refresh' operation:
Previously the 'refresh' operation was calculating incoming and the outgoing changes for the expanded repositories. So, in order to show all the incoming and outgoing changes, all the repositories should be expanded first. Now, the 'refresh' operation calculates the incoming and the outgoing changes for every repository, and not only for the expanded ones.
  • New toolbar actions:
'Pull visible': Pull all the visible incoming branches. 'Push visible': Push all the visible outgoing branches.
  • Excluded branches feature:
Now it is possible to exclude branches to be synced. The excluded branches will not be taken into account to obtain incoming and outgoing changes. To exclude some branches from the sync process, select the desired branches, right-click on the mouse and select 'Exclude branches' context menu option. To enable excluded branches again, select the 'Show excluded branches' context menu option.
  • New 'syncviews.conf' file format:
This file contains the mappings among repositories the sync view shows in Plastic SCM GUI. The file format has been changed in order to be both human-readable and machine-parsable. The legacy
syncviews.conf
file will be automatically upgraded by its equivalent file contents with the new format.
Example of the format of
syncviews.conf
file:
# comments// or more commentssync: local - azure codice@localhost:8084 -> codice@HADES:7084 excluded: ff583b6c-311d-4178-bb95-74776d4cbef5 excluded: efb96c6c-afc0-4480-9db0-70ac77234ab3 nervathirdparty@localhost:8084 -> nervathirdparty@HADES:7084 devops@localhost:8084 -> devops@HADES:7084 excluded: 1af6ff4b-f7b5-4bd5-8a14-70e0a422bd46sync: local - diana documentation/doc@localhost:8084 -> documentation/doc@blackmore:8086

Eclipse plug-in

Eclipse plug-in: Now the pending merge links (merges in progress, pending to be checked in) are shown in the 'Branch Explorer' view.

Eclipse plug-in

Eclipse plug-in: Implemented a new context menu option 'create branch from this changeset...' in the 'Branch Explorer' view.

GUI

GUI: 'Differences' viewers: Revision metadata, such as changeset, size, author and modification date, is now shown for binary revisions.

Bug

The changes on a Xlink were not expanded and trav…

The changes on a Xlink were not expanded and traversed during a merge operation when the Xlink is involved on a conflict. Fixed. Now the Xlink changes are expanded. Fixed also several "null reference" error messages on not so common scenarios involvong Xlink conflicts resolution, such as cherry picks from already merged changes, and path reuse scenarios (delete and add a Xlink with the same name pointing to a different repository).

Replication

Replication: Fixed an error creating a replication package from a repository's branch that contains Xlinks. Fixed.

Mergetool

Mergetool: The 'result' file encoding preference was not considered in an automatic file merge (when no user intervention is required). Fixed.

Eclipse plug-in

Eclipse plug-in: The 'Branch Explorer' view was not automatically refreshed after checkout, checkin or undo checkout operations. Fixed.

GUI

GUI: Unable to undo an empty merge (the pending changes view only shows merge links pending to be checked in). Fixed. A scenario to reproduce the fixed bug is the following:
  • Switch to branch '/main'
  • Create file 'foo.c'
  • Add & checkin 'foo.c'
  • Create branch '/main/task001'
  • Switch to branch '/main/task001'
  • Delete and checkin 'foo.c'
  • Switch to branch '/main'
  • Delete and checkin 'foo.c'
  • Merge from branch '/main/task001' -> 'empty merge, only a pending merge link appears in the pending changes view'.
  • Undo changes -> before this bugfix, the pending merge link
didn't dissapear, when it should.

Visual Studio Package

Visual Studio Package: History 2D: The 'Branch Explorer' frame was not visible when showing the 'History 2D' view if the size of the windows was too small. Now it's fixed.

Visual Studio Package

Visual Studio Package: An error was shown when trying to undo pending changes from the 'Check in' dialog. Fixed.

Visual Studio Package

Visual Studio Package: Fixed a 'No tab group available to store new view' error when loading projects that don't have it's solution bound to the source control. Fixed.

Visual Studio Package

Visual Studio Package: The 'Diff' view was showing two scrollbars on Visual Studio 2012 or higher. Fixed.

Visual Studio Package

Visual Studio Package: read-only files were not correctly handled. The Visual Studio Package was unable to overwrite read-only files. Now, a dialog to allow the user to decide what to do when saving a read-only file is shown. (The user will be able to choose among 'Overwrite', 'Save as ...' and 'Cancel').

Visual Studio Package

Visual Studio Package: Now, custom 'Branch Explorer' views, such as 'Show selected an related branches in a new diagram', are shown in a new window.

5.0.44.586

New

Jenkins plugin

Jenkins plugin: Labels and changesets are now supported in the Plastic SCM selector.

GitSync

GitSync: Support for double-byte characters in comments

Bug

Now triggers can run recursively

Now triggers can run recursively: suppose inside a checkout trigger you decide to checkout another file. Now it will work correctly, previously there was an issue with the environment variables. It is very helpful to enforce workflows like checking out associated files.

Annotate

Annotate: The "annotate on remote repository" option did not save the correct repository mapping when annotating a file under an xlink. Fixed.

Branch explorer

Branch explorer: The GUI crashed after defining a color for the same user in two different branch explorer instances. Fixed. Also, an scrollbar was added to the user colors panel.

GUI

GUI: The selected item was not remembered after closing and reopening the items view or the GUI client.

GUI

GUI: Fixed cut text in the merge view

Visual Studio Package

Visual Studio Package: Sometimes, a "The hierarchy is not in a valid state" error was showed when working in a .rptproj (Business Intelligence for Visual Studio 2012 projects) and switching to another changeset. Fixed.

Merged releases


5.0.44.581

New

Plastic SCM is now packaged with the newest BitRo…

Plastic SCM is now packaged with the newest BitRock release. This fixes installation issues detected by some Asian developers.

Bug

GUI

GUI: The 'branches' view did not work properly switching between 'list' view mode and 'tree' view mode when the list was ordered by name (descending). Fixed.

GUI

GUI: The progress bar showing the 'current block' uploading progress was not resized when the dialog was resized. Fixed.

5.0.44.577

New

GUI

GUI: Greatly improved checkin progress. Now when the checkin uploads data using a slow network, a detailed progress is displayed so that the user has a much better understanding of what is going on and the detailed upload of each block of 4Mb being uploaded.

GUI

GUI: Annotate (blame) of the diff views (cset, branch, label). Now the diff view is able to show annotations on the left-side and right-side panels. This feature is very useful when reviewing differences, specially checking which lines have been modified during a merge (when a file has been changed on both contributors, annotating the file will show which lines were changed during the merge. This means they were manually edited). Lines coming from the contributors but not changed during the merge will be marked as coming from the right contributor. To show the annotations, just right-click in the contents textbox and select the 'Annotate' context menu option. Also, the look and feel of the annotate panel has been improved. A tooltip is shown with changeset comments and other info hovering the mouse over an annotation.

GUI

GUI: Drag and drop support added to the items and 'pending changes' views. Now users can drag files from the "items view" and the "pending changes view" to an external application, like an editor or any other app able to accept the file being dragged. The drag operation is only available for local files: files that are physically available on disk

Xmerge (mergetool) is now able to display more ad…

Xmerge (mergetool) is now able to display more additional information sent by Plastic SCM during a merge.
  • Added a parameter in mergetool (
    --progress
    ) to notify the current merge operation to the mergetool. This is useful to understand how many files are pending to be merged while you're in the middle of merging a file, without having to switch to Plastic
  • Added a parameter in mergetool (
    --extrainfofile
    ) to get extra information about the current merge in the mergetool
  • Implemented a panel in mergetool to show the extended merge info
  • Improved the symbolic names passed to the mergetool.
  • Recursive merges are now clearly identified and extra info is available to better understand the operation.
  • Symbolic paths are now relative to the workspace.
  • Fixed maximize and restored botton image aligment (also fixed the restore button image, which was wrong)
  • When the contributor text is trimmed in the "select contributor" buttons, the tooltip will show the entire string.
NOTE: To take advantage of these improvements, change the configuration of your Xmerge (Plastic SCM built-in merge tool) as follows:
--progress="@progress" --extrainfofile="@extrainfofile"

Polarion

Polarion: The installer now distributes the Polarion jars and installation instructions. The 'jar' files will be copied in a directory inside the Plastic SCM "client" folder during an install or upgrade.

The update-merge operation (update that requires…

The update-merge operation (update that requires a merge without conflicts) doesn't support cloaked rules yet. A restriction has been added to avoid misunderstandings. If there are cloaked rules, a regular merge will be launched.

New "find in files" added to the diff cset, branc…

New "find in files" added to the diff cset, branch and label window.

Bug

Annotate

Annotate: fixed a bug preventing the annotate to finish It happened only if the ancestor of the annotated revisions met one of the following conditions:
  • It is a source contributor of a merge
  • The item was modified by both contributors in the merge
  • The merge result was equal to the destination contributor (source changes were discarded or source changes were already included in the destination contributor).
This issue has been fixed.

GUI

GUI: The items view was throwing an 'Index out of range' exception when selecting items in 'list' view mode and pressing the shift key. Fixed.

5.0.44.574

New

Annotate operation

Annotate operation: Annotate can now be executed with a different repository than the configured workspace's repository. This is useful when the workspace's repository is a local replica of a repository in a central server, and only contains a subset of the history. (The local repository only has a subset of branches pulled from the central server). This way, now it is possible to annotate a file with the full info of the central repository. Usage:
* Command line client: 'cm annotate foo.c --repository=centralRep@myserver:8087'* Plastic SCM GUI: Right click on item -> Annotate -> Annotate on remote repository... (selected repository will be added to the 'Annotate' context menu).

GUI

GUI: Diff viewers (such as 'Diff branch', 'Diff changeset'): Implemented 'Find In Files' feature. The 'Find in files' control is displayed with the
Ctrl + Shift + F
key combination, or clicking in the 'Find in files...' button added in the right side of the toolbar.

GUI

GUI: Diff viewers (such as 'Diff branch', 'Diff changeset'): Added new Diff options to the context menu of each revision:
  • Diff revision's branch
  • Diff revision's changeset
  • Diff source revision's branch
  • Diff source revision's changeset
Each Diff action will launch a new window with the differences of the specified item.

GUI

GUI: Diff window: Added a 'Copy to clipboard' context menu option for names and specs shown in the diff window.

GUI

GUI: Improved progress during merge operations: Now it is easier to see the files already merged and the files still pending to be merged. Also, new menu items are provided to run diff actions for each item while the merge is running.

Server

Server: The changeset tree loading has been improved on MySql backend for big trees. Now, a temporary table with the involved revisiond is created when loading a tree. This table will be created in the hard disk by default. To override this setting and create the temporary table in memory, the following parameter in the server's db.conf file can be set:
<MySqlTmpTablesOnMemory>yes</MySqlTmpTablesOnMemory>
The 'LOAD DATA LOCAL' setting in MySql backend must be enabled. (This setting is already enabled by default). More info on MySQL docs. Test performed: Repository with 11 million revisions. Changeset tree loading measurement, with 418950 files and 27914 folders. Time to read all the changeset tree revisions (about 440.000 revisions):
  • Before this release (release 4.1.10.559):
    • Read 440.000 revisions from the 'revisions' table
(which contains 11 million revisions) -> 11404 ms.
  • With this release (release 4.1.10.561):
    • Read 440.000 revisions from disk temp table -> 9688 ms.
    • Read 440.000 revisions from memory temp table -> 6084 ms.

Merged releases


5.0.44.572

New

Change in the TCP layer to improve counting of ac…

Change in the TCP layer to improve counting of active and inactive threads.

Update operation on Plastic SCM GUI, Visual Studio and Shell Extension

Update operation on Plastic SCM GUI, Visual Studio and Shell Extension: From now on, if the user performs an update operation on a workspace that already loads the last changeset on a branch but with checked out items in the workspace, the update operation will show an informative message telling that the update operation cannot be run because of those pending changes, instead of an error message.

Bug

Fixed an error when the merge operation or the pe…

Fixed an error when the merge operation or the pending changes view includes a deleted xlink as a change.

When the full workspace is cloaked except some fi…

When the full workspace is cloaked except some files or directories, the merge operation was failing with a 'value cannot be null' error when the source contributor has one or more changes inside the cloaked paths. Fixed. Example of failing cloaked rules:
/ !/08-2014/an-ers/an-cli-improvements

Polarion

Polarion: The URL generated to explore a changeset in an external viewer was malformed. This issue has been fixed, and the external viewer is not able to show Plastic SCM changesets.

Command line client

Command line client: The console output encoding was not restored after a command execution with the '--encoding' parameter set. Fixed.

5.0.44.570

New

Command line client

Command line client: 'cm mktrigger' command. Now, Plastic SCM triggers can now be created defining the repository that should match before running the trigger indeed. To do that, use the
'--filter'
option in the
'cm mktrigger'
command as follows:
'--filter=rep:repositoryName'
This way, before running the trigger, PlasticSCM will check whether the scm operation involves the defined repository. If so, the trigger program will be executed. The repository filter can be used together with the standard filter if the filters are separated by the pipe character (
'|'
).
Example:
cm mktrigger before-checkin "check-files""/path/to/script" --filter=rep:default|*.cs--server=blackmore:8087
In this example, this filter will be executed only before a file with extension ".cs" is checked in in the 'default' repository hosted in 'blackmore:8087' Plastic SCM server.

Command line client

Command line client:
cm listtrigger
command. Added a 'filter' field to the list triggers output.

Improved filter rules definition for configuration files

Improved filter rules definition for configuration files such as 'ignore.conf','cloaked.conf' and any other configuration file for filtering purpouses: Now, filenames and extensions rules containing regular expression characters will be automatically matched. This means no
**/
prefix is needed from now on.
Previous format:
**/p?m.xml**p*.xml/src/lib/foo.*
Current format:
*/p?m.xmlp*.xmlfoo.*
This way, expressions like
abc.*
are now supported.

Bug

Pending changes view and 'cm status' command. Aft…

Pending changes view and 'cm status' command. After changing the machine time due to a daylight saving, some workspaces were showing changed items when they weren't. Now it is fixed. (If the 'Compare file contents instead of timestamps' option was enabled, the issue was not happening).

5.0.44.569

New

Eclipse plugin

Eclipse plugin: Implemented eclipse 3.2 backwards compatibility

GUI

GUI: Now it is possible to create a workspace for a given repository. To do that, just open the 'repositories view', right click on the desired repository and select 'Create workspace for this repository'.

MergeTool

MergeTool: From now on, the built-in mergetool application returns an exit code different than '0' if the merge result file was not saved. Implemented also a new option, named
'--silent'
, which runs mergetool in silent mode. This is useful combined with the
'--automatic'
option: If both options are present, the mergetool won't show the merge dialog that requires user intervention. Instead, an error code different than '0' is returned.

Bug

Visual Studio 2013 Package

Visual Studio 2013 Package: The installer was not checking whether Visual Studio was running during a Plastic SCM upgrade. Therefore, the VSIX installation might fail because the installer could not replace the old binary files with the new binaries. Fixed.

5.0.44.566

New

GUI

GUI: Pending changes view 'moved file detection' functionality now enables 0% to 100% values. The search matches dialog previously had a minimum of 50%. Now it is possible to match any file from the added/deleted list. Other aesthetic and usability issues have been improved.

Command line client

Command line client: The 'cm find review' is now able to filter the output by the following fields:
  • title: The title of the code review
  • targettype: 'branch' or 'changeset'
  • target: The element being reviewed.
I.e. a Branch Spec, a Changeset Spec, or an object Id. Examples:
* cm find review where targettype = 'branch'* cm find review where targettype = 'branch' and target = 'br:/main/br1'* cm find review where title like '%br2%'

Now, the 'listlocks' command shows the user name…

Now, the 'listlocks' command shows the user name instead of the SID.

Bug

When the 'listlocks' command is used with the [co…

When the 'listlocks' command is used with the
'--onlycurrentuser'
option with an authentication mode that uses SID's, no locks were returned, although the current user had locked items. Fixed.

Checkin operation

Checkin operation: Fixed an issue when performing a checkin which involves items in an xlinked repository and its parent repository. If the checkin operation finishes sucessfully in the xlinked repository but the checkin in the parent repository fails, the xlink target is properly updated to the newly created changeset in the xlinked repository.

Command line client

Command line client: The 'cm find revs' command was printing unexpected paths in the output with certain 'where' clause filters. Fixed.

GUI

GUI: Merge view: The 'open contents' and 'diff' actions weren't available for xlink conflicts. Fixed.

GUI

GUI: Merge view: Improved 'view contributors' dialog. Added scroll to the 'ancestors' textbox when the merge operation detected more than one ancestor (recursive merge).

Command line client

Command line client: The 'cm ls' command was failing if the workspace contained xlinks and:
  • the
    --tree
    option or the
    --selector
    option were used
  • together with the
    --xml
    or the
    --format
    options
  • and the
    -R
    option was not used.
Fixed.

Server

Server: The server was returning a 'CmItemLoadedTwiceOnTreeException' performing a checkin after a merge operation, when the merge source contributor has performed changes like the example below:
  • Initial content:
    //dialogs/dialogs/Progress.cs/views
  • Changes on source contributor
    added /guimoved /views -> /gui/viewsmoved /dialogs -> /gui/views/commonmodified /gui/views/common/Progress.cs
This issue has been fixed.

5.0.44.563

Bug

Polarion

Polarion: The polarion plugin was designed to work on a single branch. Removed the branch parameter from the polarion configuration. Now the polarion plugin allows to query all the Plastic SCM repository, so all revisions are polled by the plugin.

GUI

GUI: minor aesthetic issues fixed on 'Create / Edit Xlink' dialog.

GUI

GUI: The 'replication sources' panel of the branch explorer was showing an incorrect error message when the branch explorer cannot connect to a certain repository.

5.0.44.562

New

The plasticlogstats server diagnostics app has be…

The plasticlogstats server diagnostics app has been modified. It now supports grouping by hour (
--hour
) and output data in XML format to a file (
--xml=outputfile.xml
), which is useful for Excel data analysis. Now the flags are set with --.

Performance

Performance Server: Improved memory usage when multiple replication operations are running in parallel.

Bug

Update operation

Update operation: The update operation was raising an "Access to the path is denied" error when updatig hidden files on Windows OS's. Unity users with VCS mode = "Hidden meta files" experimented this issue. Fixed.

Maven

Maven: The Maven 'tag' command was failing on Linux systems when calculating the items that were tagged. Fixed.

Merge

Merge: The recursive merge operation generates virtual revision identifiers to resolve the conflicts between the multiple common ancestors. These identifiers could be used to track delete operations in the extended merge item information, but they cannot be used in the merge result, as they are temporary identifiers and not real revision identifiers. This issue has been fixed and now the real revision identifiers are used.

Command line client

Command line client: The diff command for changesets was not correctly using the repository spec inside the fully-qualified changeset spec (Example:
cs:529@tools@server:8087
).
It was only considering the repository of the working path. Fixed. Now, the repository will be taken from fully-qualified changeset spec.

GUI

GUI: showing differences from the pending changes view was not setting the configured comparison method to launch the diff tool. Fixed for both the embedded diff viewer and external diff viewer (
Ctrl+D
).

Replication

Replication: unable to replicate new changes in the following scenario:
  • An empty branch was replicated
  • Later new changesets were checked in both in the source
and destination repositories
  • The new replication was unable to replicate new checkins
Scenario to reproduce the issue:
  • Create an empty branch task001.
  • Replicate task001 from repo A to repo B.
  • Create a changeset on task001@repository A.
  • Create a changeset on task001@repository B.
  • Replicate (pull) the branch -> Nothing is replicated (Now it's fixed).

Replication

Replication: problem updating the 'head' of a branch. It happened under the following circumstances:
  • A branch was replicated again from source to destination
  • If the new head or some changesets between the old head and the new head were replicated on different replication operations.
Note: the issue only happened if empty branches were replicated. Fixed. Scenario to reproduce the issue:
  • Create two changesets on main branch.
  • Create an empty branch from the last changeset (main head).
  • Replicate the empty branch.
  • Replicate the main branch -> The main head was not updated properly (Now it's fixed).

Merged releases


5.0.44.557

New

Eclipse plug-in

Eclipse plug-in: Now, the eclipse plugin's package explorer prints a different decorator on nodes that have children resources with changes.

Web UI

Web UI: Now it is not necesary to restart the web server to reload the avatar images.

Bug

Web UI

Web UI: The Web UI was unable to show image diffs The Web UI was unable to show image diffs. Fixed.

GUI

GUI: Pending changes view: The 'checkin dependencies' dialog didn't appear when using changelists. Fixed.

Merge

Merge: An error is thrown when the source contributor has an xlink added inside an added directory. The checkin operation after the merge operation will fail. Now, this case has been fixed.

5.0.44.555

New

Server

Server: Improved memory usage when caching large number of changeset trees (> 300K items). Results obtained (450K items in a tree):
  • Without the new improvements:
    • 1 tree in the server cache -> 230 MB.
    • 5000 trees in the server cache -> 1320 MB.
  • With the new improvements:
    • 1 tree in the server cache -> 250 MB.
    • 5000 trees in the server cache -> 290 MB.

Client performance improvements

Client performance improvements The time loading client.conf file has been improved if the Plastic SCM version is the one compiled in .NET 4. (In .NET 2 these improvements were already available). Results obtained:
  • .NET 2:
Without the new improvements -> 265 ms. With the new improvements -> 78 ms.
  • .NET 4:
Without the new improvements -> 156 ms. With the new improvements -> 63 ms.

Bug

GUI

GUI: When the "diff workspace contents" option is selected on the pending changes view menu from a moved element, which is changed too, an error was shown: "Cannot show diffs. Entry does not have two contributors.". Fixed.

Merge

Merge: Fixed case where directory conflicts are shown again, when they shouldn't, as they were previously resolved. The failing case should met the following conditions:
  • Merge only a subset of files.
  • A writable xlink is involved on the merge operation.
  • There is at least one file conflict pending to be resolved inside the xlink and at least another file conflict on its parent repository.
  • The xlink has two or more directory conflicts that involve the same delete directory operation (Example: two files were changed on source contributor inside a directory that was deleted on destination), so only one of them must be resolved.

Active Directory authentication mode

Active Directory authentication mode: Support recursive groups in AD integrated security. There were several scenarios where the permissions weren't applied as expected. Example of failing scenario:
  • User U1.
  • Group G1. Members of G1: G2.
  • Group G2. Members of G2: U1.
  • If the 'read' permssion is denied to group 'G1' on a repository, the user 'U1' will have read permissions for that repository when it shouldn't.
Now this scenario is fixed, and the read permissions for user 'U1' will be denied.

Merged releases


5.0.44.551

New

Jira extension

Jira extension: The data logged in the Plastic SCM custom field can now be configured. Also, it is possible to open changeset diffs from JIRA. Please visit this blogpost to get more info.

GUI

GUI: Column filters are now available on all views. An improved filter mechanism lets you specify the column you want to use to filter. You can still use the old filters to search on all columns, but you can also restrict the search to a given column as follows:
[<column_name>:<filter_value>]*
Examples of valid filters are:
  • On changesets view:
"created by":mike comment:"first changeset"
  • On pending changes view:
status:changed item:bin/lib type:txt

Bug

Merge

Merge: Fixed an edge case on a recursive merge (the merge operation calculates more than one ancestor changeset):
  • When one ancestor has removed an xlink and added a new one on the same path, and another ancestor involved on the intermediate merge hasn't changed the xlink (the removed one), the merge was failing with the error:
    "Can't add an entry with the same name. Duplicated child [<item name>]"
    .

5.0.44.549

New

Maven plugin

Maven plugin: The scm:update operation now checks if a workspace exists in the path being updated. If there is no workspace, a new workspace will be created. Otherwise, the workspace is reused.

Bug

Semantic method history

Semantic method history: Fix missing data in sematic method history showing the history of a method when merged revisions are involved.

5.0.44.548

New

Polarion plugin

Polarion plugin: Implemented a basic Polarion integration (Please contact support to get instructions about how to setup the Polarion integration: 'support@codicesoftware.com').

Eclipse

Eclipse: Now the pending changes view shows the pending merge links.

Proxy Server

Proxy Server: Now the Proxy server can be used in 64-bit machines.

Performance

Performance The add command performance has been improved when it's executed with several paths. Test performed: 'cm add' command with 250.000 paths:
  • Before: 240547 ms
  • After: 31699 ms

5.0.44.547

Bug

GUI

GUI: The context menu of the "Diff branch" and "Diff changeset" dialogs was incorrectly hidden after the first time it was displayed. Fixed.

5.0.44.537

New

Eclipse plugin

Eclipse plugin: Implemented Team Project Sets support. The eclipse projects can now be exported to a Team Project Set File (PSF) or import projects from a PSF file.

Eclipse plugin

Eclipse plugin: Show label info when the workspace is configured to work in a specific changeset.

Eclipse plugin

Eclipse plugin: Several improvements performed
  • Implemented label-changeset support when importing from a PSF files. When the PSF points to a label, Eclipse translates it to its equivalent changeset.
  • Implemented the 'switch to changeset' action in the eclipse's branch explorer view.
  • When creating a new workspace, Eclipse plugin now proposes the Eclipse project path instead of the Eclipse workspace path.

Maven plugin

Maven plugin: Implemented the 'status' command for the Maven plugin.

Visual Studio package

Visual Studio package: Now, VSIX installation is silent, so no popups are opened when registering the package.

Command line client

Command line client: XML output is now available for certain cm commands. Flag "
--xml
" has been added to the following commands to get an output in XML format: showacl, log, history, ls and update.

Command line client

Command line client:
cm find
command: Now, the
find
command can show the hash of a revision.
Example:
cm find revision --format={hash}

Bug

Eclipse plugin

Eclipse plugin: The eclipse plugin was not performing the checkin operation of a single deleted file properly. Fixed.

TeamCity plugin

TeamCity plugin: now the plugin preserves executable permissions when creating the build patch so that the agent can run them. NOTE: To use this upgrade of the plugin, it is required to run TeamCity with Java 7.

GUI

GUI: Method history: When clicking the "Load more" button continuously and very quickly, sometimes the information displayed was not correct. Some elements were remaining as "loading" when in fact the information was already loaded. Some other revisions appeared as not connected, when in fact, all revisions were also conected. Fixed.

Mergetool

Mergetool: An exception was thrown when clicking on navigation buttons and there were no conflicts in the file. Fixed.

Merge

Merge: interval changesets merge: When the same interval is merged to multiple destinations and, at least one destination is already replicated, the next replication process will fail, showing an error message. Fixed. (Broken since release 5.0.44.502).

GitSync

GitSync: Push branches or tags with non ASCII characters was failing. Fixed.

GitSync

GitSync: Plastic labels with spaces and other illegal git characters were not being pushed to Git. Fixed. Now they are pushed, the name exported to git will be the same in plastic but replacing these illegal characters with a dash ('-'). E.g.: "Label 1" will be pushed as "Label-1".

There was an issue when you had two xlinks to the…

There was an issue when you had two xlinks to the same repository and a file (or directory) is moved between them manually (not with a 'cm mv' command but directly using the Windows Explorer or command prompt). The Pending Changes view should detect the scenario but it wasn't working properly. Since the move between xlinks (even on the same repository) is not allowed, the Pending Changes view should show the result as a file being deleted on the source and a file being added (private file) on the destination. Now it's Fixed.

Command line client

Command line client: '
cm describebranchhistory
' command: The command output was not sorted by date. Fixed.

Merge operation

Merge operation: The recursive merge could fail when multiple intermediate merges calculate the same writable xlink to be copied (added). Fixed.

Visual Studio package

Visual Studio package: There was an issue wihen uninstalling and reinstalling the VSIX package without opening the IDE. Fixed. Now, the following command is executed in the uninstallation process in order to force to unregister the package inmediately (This affects the upgrade process as well): 'devenv /setup /nosetupvstemplates'.

Visual Studio package

Visual Studio package: Issue when Visual Studio 2012 was installed and Visual Studio 2013 wasn't. The unregistering of the Visual Studio package was not performed during the uninstall process. Fixed.

5.0.44.536

New

GUI

GUI: The differences window is able to give more information about the differences at code level, like the number of lines changed, added or deleted. Using the external application 'cloc' is even able to identify if the changes are only in blank lines and comments.

Bug

GUI

GUI: Starting the GUI on Linux having several tabs opened crashed sometimes. Fixed.

5.0.44.534

New

LDAP provider

The LDAP provider was unable to query a subtree if the domain path didn't start with 'dc='. Now, the following format examples are supported:
  • Dotted notation:
'codicefactory.com or mydepartament.codicefactory.com'
  • Path notation:
'dc=codicefactory,dc=com''dc=mydepartament,dc=codicefactory,dc=com'
Also organizational units are supported:
'ou=USA,ou=CODICE SOFTWARE,dc=development,dc=codicefactory,dc=com'

Command line client

Command line client: Added a summary at the end of the output obtained with cm li to provide extended license information. Example:
cm li -wks=localhost:8084Plastic SCM license information:* User-license information: mark ACTIVE michael ACTIVE santiago INACTIVE (Not licensed) helga INACTIVE (Not licensed) Licensed to: The Cool Company Expiration date: 22/06/2007 13:34:23 Total licensed users: 4 Total activated users: 2 Total available users: 2

Bug

GitSync

GitSync: Fixed a very rare synchronization case: Import a commit where several file paths are now directories, and the original files were moved inside the new directories will fail. This happens if the machine where it is executed is very fast.

Move operation

Move operation: When a move operation was performed between two different mount points loading the same repository, the move operation was wrongly allowed. Fixed.

Unity 3D

Unity 3D: The "ignore.conf" file was not automatically ignored in Mac. Fixed.

Command line client

Command line client: Issuing a
cm status --changelist
command in a partial path was causing that some non-persistent changelists were deleted. Fixed.

Mergetool

Mergetool: An exception is thrown when clicking on navigation buttons and there were no conflicts in the file. Fixed.

GUI Linux

GUI Linux: "Open with" a custom tool was not working from the repository explorer. Fixed.

GUI

GUI: Branch Explorer: The format rules were lost after restarting the GUI. Fixed.

GUI

GUI: Merge view: When pressing 'F5' key in a merge view, the following error was shown: "RefreshView not implemented for this view". Fixed.

GUI

GUI: Branch Explorer: When the "home" changeset was not visible in the branch explorer because of the date filter, an error message was shown refreshing the view. Fixed.

Merge operation

Merge operation: The merge operation could apply a change in the wrong path in an edge case (when the destination contributor had left on the same path another item with the same internal identifier from the same repository but a different mount point. Fixed.

5.0.44.533

Bug

GUI

GUI: An error message in the pending changes appeared when showing the embedded diffs for a moved and changed file (locally moved with changed contents) out of the control of Plastic SCM. Fixed.

5.0.44.531

New

Branch Explorer

Branch Explorer: When a new branch is created inside a custom Branch Explorer, it is now added to the selected branches used to create the custom Branch Explorer, so the new branch is visible.

CLI documentation improvements

CLI documentation improvements Command line interpreter help: Command options reviewed and updated accordingly. Some options were not public, some of them were obsolete or confusing.

Bug

Permissions

Permissions: An advanced sequence of operations (that implies breaking the permissions inheritance chain) over a secured path could end up with denied read and view permissions on the secured path. Fixed.

Semantic Method History

Semantic Method History: Fixed a NullReference exception that could happen when showing an item under some special circumstances.

An error ocurred when renaming the working branch…

An error ocurred when renaming the working branch if the branch name was the same of any of its parents. For example:
/main/task001/task001
. Fixed.

Diff on GUI failed if an involved Xlink was not r…

Diff on GUI failed if an involved Xlink was not reachable. Fixed.

Fixed a bug when sorting by date modified in the…

Fixed a bug when sorting by date modified in the Diff View (diff branch, diff changeset).

5.0.44.530

New

Internal changes and improvements

Internal changes and improvements

Merged releases


5.0.44.528

Bug

The Proxy Server got stuck with some data request…

The Proxy Server got stuck with some data requests when they involved revisions with size 0. This was just happening when the server was using SQL Server as backend.

5.0.44.527

New

Now it is possible to add multiline autocomments

Now it is possible to add multiline autocomments: in the preferences window, "Comment options", select "Custom" in the Comments section. In addition to User (
{0}
) and Date (
{1}
) you can add new lines (
{2}
).

When creating a workspace it is possible to see a…

When creating a workspace it is possible to see a repository list showing all the repositories in all the registered servers.

Bug

Visual Studio Package

Visual Studio Package: Now it does not set a file as non-readonly when it is not controlled by Plastic SCM.

5.0.44.526

New

Branch Explorer filter

Now the Branch Explorer can filter the branches to show. The old conditional format tab has been updated to include new filtering rules. It is possible to define inclusion and exclusion rules. To get further information about this feature please see the blogpost related to this release in our blog.

Added some shortcuts to the GUI

Added some shortcuts to the GUI:
  • Ctrl+D
    to show branch and changeset differences from the Branches View, Changeset View and Branch Explorer.
  • Ctrl+V
    will focus an item in the Items View if you have copied the item path in the clipboard.
  • The diff view (diff branch, changeset) uses the following shortcuts:
    • Ctrl + Alt + +
      to navigate to the next file
    • Ctrl + Alt + -
      to navigate to the previous file
    • Ctrl + Shift + Alt + +
      to navigate to the last file
    • Ctrl + Shift + Alt + -
      to navigate to the first file
    • There is no need to focus the differences control to navigate through differences (
      Ctrl+ + or Ctrl + -
      ).

Bug

When the result encoding is set to NONE, mergetoo…

When the result encoding is set to NONE, mergetool will check the contributors encoding instead of saving the result without encoding.

cm ls
command using
--tree
or
--selector

The cm ls command did not show proper information if the --tree option was used along with a workspace or a non-existent path. Fixed: Now, if --tree or --selector="rep..." are specified, the path provided must be a server path (/dir/file.txt), not a workspace path (C:/Users/myuser/mywk/dir/file.txt).

Documentation

Documentation: cm help reviewed in depth and fixed several issues regarding spelling and formatting.

5.0.44.523

New

Now the diff command can download the content of…

Now the diff command can download the content of the changed (modified, added and moved) items to a given folder using the option
--download
.

5.0.44.522

New

Maven

Maven: Implemented Plastic SCM Maven SCM plugin, according to the plugin specifications. The commands the plugin supports are:
* scm:add* scm:branch* scm:checkin* scm:checkout* scm:tag* scm:update
The scm connection spec for a pom.xml file, has the following syntax (in one single line):
scm:plasticscm:[objectSpec]@[rep:]repository_name@[repserver:]@servername:portnumber[:path:repository_path_to_download]
where:
"objectSpec" is: (br:/name | cs:N | lb:name)"repository_path_to_download": is only affected by the checkout and update commands.
Example of repository path "/src/main/java/myapp". (The repository path must exist in the branch, label or changeset to download). Example:
"scm:plasticscm:br:/main/Rel1.1@thirdpartytools@blackpearl:8087"

Performance improvements

Performance improvements The changeset trees were not correctly cached by the server when they contained xlinks. It could break the performance in some scenarios with large trees and xlinks. Fixed.

Performance improvements

Performance improvements The update operation performance has been improved significantly when working with cloaked items. Example:
Workspace with 192.818 files, 33.877 folders and more 400 cloaked rules:Version 5.0.44.519Update (Nothing to update) * With cloaked: 34102 ms * Without cloaked: 18127 msNowUpdate (Nothing to update) * With cloaked: 14867 ms * Without cloaked: 17722 ms

Bug

Update command

The update command now is able to work correctly (download changes) with the exception rules in the cloaked system. It means that: cloak /src except the /src/code/lib folder and its content will work fine now.