---
title: 5.x release notes for 2015
product: Unity Version Control
canonical: https://docs.unity.com/en-us/unity-version-control/release-notes/5/2015
last_updated: 2026-11-04
generated_at: 2026-11-11T06:12:06.266Z
locale: en-us
---

# 5.x release notes for 2015

> Review the 2015 release notes for version 5 of Unity Version Control.

This page contains the Unity Version Control 5.x releases published in 2015, organized from newest to oldest. For other years, refer to [5.x release notes](../5).

## 5.4.16.717

> **Note:**
>
> **Public** | 2015-12-23

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

> **Note:**
>
> **Public** | 2015-12-17

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

> **Note:**
>
> **Public** | 2015-12-14

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

> **Note:**
>
> **Public** | 2015-12-11

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

> **Note:**
>
> **Public** | 2015-11-24

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

> **Note:**
>
> **Public** | 2015-11-18

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

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

> **Note:**
>
> **Public** | 2015-11-06

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

> **Note:**
>
> **Public** | 2015-10-29

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

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

> **Note:**
>
> **Public** | 2015-10-23

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

```text
diff.exe "@sourcefile" "@destinationfile"
```

And get a correct text diff from CLI. All commands can now be configured as follows:

```text
/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](https://www.plasticscm.com/documentation/extensions/plastic-scm-version-control-task-and-issue-tracking-guide.shtml#Globalextensionconfiguration).

#### Jenkins plugin

Jenkins plugin: Added build parameters support

Jenkins allows to define [certain build parameters](https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build))

Plastic SCM is now able to use those parameters. Example:

* Imagine that there are two build parameters in a project:

```text
branchname: default value (/main)
```

```text
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:

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

> **Note:**
>
> **Public** | 2015-10-16

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

> **Note:**
>
> **Public** | 2015-10-09

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

> **Note:**
>
> **Public** | 2015-10-07

### 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](https://www.plasticscm.com/documentation/extensions/plastic-scm-version-control-task-and-issue-tracking-guide.shtml#JIRAintegration) 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:

```text
Date: 9/10/2015 12:25:25 PM
Changeset 4424@default@localhost:8084 by dhernandez
Changeset guid: 5372daf7-f740-4d05-b9d2-a30823907bb2
Branch: /main/scm029
Comments: Rename csproj files
Items:

  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

> **Note:**
>
> **Public** | 2015-10-02

### 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](https://msdn.microsoft.com/en-us/library/system.windows.forms.shortcut\(v=vs.110\).aspx).

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

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

> **Note:**
>
> **Public** | 2015-09-25

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

> **Note:**
>
> **Public** | 2015-09-22

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

```text
Gtk-CRITICAL **: gtk_list_store_get_path: assertion 'iter->stamp == GTK_LIST_STORE (tree_model)->stamp' failed
```

```text
GdkPixbuf-CRITICAL **: gdk_pixbuf_composite: assertion `dest_x >= 0 && dest_x + dest_width <= dest->width' failed
```

```text
Gtk-CRITICAL **: gtk_tree_model_sort_get_path: assertion 'tree_model_sort->stamp == iter->stamp' failed
```

```text
Gtk-CRITICAL **: IA__gtk_tree_selection_select_path: assertion 'path != NULL' failed
```

```text
Gtk-WARNING **: Failed to set text from markup due to error parsing markup
```

```text
Gtk-CRITICAL **: gtk_tree_model_sort_iter_nth_child: assertion 'VALID_ITER (parent, tree_model_sort)' failed
```

```text
Gtk-CRITICAL **: gtk_tree_model_sort_get_value: assertion 'VALID_ITER (iter, tree_model_sort)' failed
```

```text
GLib-GObject-CRITICAL **: g_value_unset: assertion 'G_IS_VALUE (value)' failed
```

```text
Gtk-CRITICAL **: gtk_tree_model_sort_get_path: assertion 'tree_model_sort->stamp == iter->stamp' failed
```

```text
Gtk-CRITICAL **: IA__gtk_tree_selection_select_path: assertion 'path != NULL' failed
```

```text
Gtk-CRITICAL **: gtk_tree_store_get_value: assertion 'VALID_ITER (iter, tree_store)' failed
```

```text
GLib-GObject-CRITICAL **: g_value_unset: assertion 'G_IS_VALUE (value)' failed
```

***

## 5.4.16.691

> **Note:**
>
> **Public** | 2015-09-15

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

```text
delta:8085 delta.key
morgan:8084 mrg.key
```

The encryption file contains the encryption method and password  (see example below).

* `delta.key`:

```text
AES128 |SoC|ictrT7pgBSRDJ1m7nOlj96NTl0I23jI7T6K6ADf5X3ry0sDe0InYkOdmyLcpdnX5PzoD5yCphkw=
```

* `mrg.key`:

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

> **Note:**
>
> **Public** | 2015-09-03

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

```text
.pas=C:\MyParsers\pas2yaml.exe
```

2.1. Make sure there's no white space between the file extension and the '=' character.

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

> **Note:**
>
> **Public** | 2015-08-28

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

```text
default/codice
default/codice/plasticscm
default/codice/plasticscm/windowsgui
default/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

```text
default/codice
default/codice/plasticscm
default/codice/plasticscm/windowsgui
```

And transform the hierarchy as follows:

```text
default/codice
default/codice/plasticscm
default/codice/windowsgui
```

And even rename "codice" to "plastic-code" and then:

```text
default/plastic-code
default/plastic-code/plasticscm
default/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

> **Note:**
>
> **Public** | 2015-08-27

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

> **Note:**
>
> **Public** | 2015-08-24

### 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](https://www.plasticscm.com/plastic-for-linux/index.html).

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

> **Note:**
>
> **Public** | 2015-08-14

### 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](https://www.plasticscm.com/documentation/extensions/plastic-scm-version-control-task-and-issue-tracking-guide.shtml#JIRA-Multi-projectconfiguration) 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

> **Note:**
>
> **Public** | 2015-08-07

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

```text
cm mktrigger before-chattvalue before-chattvalue-trigger-name "c:\triggers\check-before-chattvalue.exe"
```

```text
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:

```text
PLASTIC_USER
PLASTIC_CLIENTMACHINE
PLASTIC_SERVER
PLASTIC_REPOSITORY_NAME
PLASTIC_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

> **Note:**
>
> **Public** | 2015-08-04

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

> **Note:**
>
> **Public** | 2015-07-31

### 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](mailto: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

> **Note:**
>
> **Public** | 2015-07-22

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

> **Note:**
>
> **Public** | 2015-07-10

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

> **Note:**
>
> **Public** | 2015-07-05

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

> **Note:**
>
> **Public** | 2015-06-30

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

> **Note:**
>
> **Private** | 2015-06-26

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

> **Note:**
>
> **Public** | 2015-06-19

### 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.:

```text
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:

```text
[rev:]serverpath:{path}#(cs:{cset_id}|br:{br_name}|lb:{label_name})[@{repname}[@{host}:{port}]]
```

These are some valid examples:

```text
serverpath:/src/lib/foo.c#br:/main/fix-1.3/task135@codebase@secure:8088
```

```text
rev:serverpath:/src/main/bar.c#cs:9371@codebase // If default server is secure:8088
```

```text
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:

```text
cm cat serverpath:/src/lib/foo.c#br:/main/task5591@otherrepo
```

```text
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:

```text
cm listlocks [revspec [revspec ...]] [--server=address:port] [--onlycurrentuser] [--onlycurrentworkspace]
```

Examples:

```text
cm listlocks
```

```text
cm listlocks --onlycurrentworkspace
```

```text
cm listlocks --server=myserver:9090 --onlycurrentuser
```

```text
cm listlocks revid:93152@codebase@mainserver:9095
```

```text
cm listlocks itemid:1115#cs:611@extensions
```

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

> **Note:**
>
> **Public** | 2015-06-18

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

```text
<plastic_config>/syntaxhighlight/dotnetlanguage.conf
```

Example:

```text
# type a list of namespaces to be available in the intelliprompt
System.Collections.Generic
Sytem.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:

```text
<plastic_config>/syntaxhighlight/languages.conf
```

Example:

```text
#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

> **Note:**
>
> **Public** | 2015-06-12

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

```text
 [ jira_field_name -> plastic_property_name [ | jira_field_name -> plastic_property_name [ | ... ] ] ]
```

This is a valid example of JIRA fields mapping:

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

> **Note:**
>
> **Public** | 2015-06-08

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

```text
[ jira_field_name -> plastic_property_name [ | jira_field_name -> plastic_property_name [ | ... ] ] ]
```

This is a valid example of JIRA fields mapping:

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

> **Note:**
>
> **Public** | 2015-06-04

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

> **Note:**
>
> **Public** | 2015-06-03

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

> **Note:**
>
> **Public** | 2015-05-28

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

> **Note:**
>
> **Public** | 2015-05-22

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

> **Note:**
>
> **Public** | 2015-05-18

### 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](mailto:support@codicesoftware.com)' for further info about FMOD Studio plugin.

***

## 5.4.16.663

> **Note:**
>
> **Public** | 2015-05-14

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

> **Note:**
>
> **Public** | 2015-05-11

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

> **Note:**
>
> **Public** | 2015-05-07

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

> **Note:**
>
> **Public** | 2015-04-22

### 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](mailto: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

> **Note:**
>
> **Public** | 2015-04-14

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

> **Note:**
>
> **Private** | 2015-04-10

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

> **Note:**
>
> **Private** | 2015-04-08

### 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':

```text
sudo /Applications/PlasticSCMServer.app/Contents/Applications/clconfigureserver.app/Contents/MacOS/clconfigureserver
```

```text
sudo /Applications/PlasticSCMServer.app/Contents/Applications/umtool.app/Contents/MacOS/umtool
```

Example to add a user:

```text
sudo /Applications/PlasticSCMServer.app/Contents/Applications/umtool.app/Contents/MacOS/umtool cu pablo pablo-password
```

How to restart the Plastic Server:

```text
sudo launchctl unload /Library/LaunchDaemons/com.codicesoftware.plasticscm.server.plist
```

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

> **Note:**
>
> **Public** | 2015-03-30

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

```text
cm restore itemid:68#cs:2 C:\mywks\dir\myfile.pdf
```

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

> **Note:**
>
> **Public** | 2015-03-26

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

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

> **Note:**
>
> **Private** | 2015-03-19

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

```text
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:

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

> **Note:**
>
> **Public** | 2015-03-17

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

```text
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:

```text
{

 "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

> **Note:**
>
> **Public** | 2015-03-06

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

> **Note:**
>
> **Public** | 2015-03-05

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

> **Note:**
>
> **Public** | 2015-02-27

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

```text
<?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:

```text
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.

```text
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:

```text
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:

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

> **Note:**
>
> **Public** | 2015-02-20

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

```text
 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:

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

> **Note:**
>
> **Public** | 2015-02-09

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

```text
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:

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

> **Note:**
>
> **Public** | 2015-02-04

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

> **Note:**
>
> **Public** | 2015-02-02

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

> **Note:**
>
> **Public** | 2015-01-28

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

> **Note:**
>
> **Public** | 2015-01-21

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

> **Note:**
>
> **Public** | 2015-01-19

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

```text
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:

```text
* Initial structure:
/
/src
/src/engine
```

```text
* Changes in source contributor:
move /src/engine -> /src2
del /src
move /src2 -> /src
add /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

> **Note:**
>
> **Public** | 2015-01-16

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

```text
* 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.0.44.716

> **Note:**
>
> **Public** | 2015-12-21

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

> **Note:**
>
> **Public** | 2015-12-21

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

> **Note:**
>
> **Public** | 2015-12-19

### Bug

#### Server

Server: Reviewed performance of GetRepositoryList calls

***

## 5.0.44.713

> **Note:**
>
> **Public** | 2015-12-18

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

> **Note:**
>
> **Public** | 2015-11-12

### 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](mailto:support@codicesoftware.com)) for further info.
