Documentation

Unity Version Control

5.x release notes for 2014

Review the 2014 release notes for version 5 of Unity Version Control.
Read time 103 minutesLast updated 6 days ago

This page contains the Unity Version Control 5.x releases published in 2014, organized from newest to oldest. For other years, refer to 5.x release notes.

5.4.16.634

Note
Public | 2014-12-24

New

GTK Plastic SCM GUI

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

GTK Plastic SCM GUI

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

GTK Plastic SCM GUI

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

GTK Plastic SCM GUI

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

GTK Plastic SCM GUI

GTK Plastic SCM GUI: Filters and conditional format rules implemented

GTK Plastic SCM GUI

GTK Plastic SCM GUI: Preferences window implemented

Mac Plastic SCM GUI

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

Installer

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

Installer

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

Git Sync

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

Bug

Command line client

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

GameUI

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

5.4.16.633

Note
Public | 2014-12-18

New

Command Line Interface

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

GameUI

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

Jenkins plugin

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

Bug

GUI

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

Fixed several aesthetic issues in the server conf…

Fixed several aesthetic issues in the server configuration wizard form.

GUI

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

5.4.16.632

Note
Public | 2014-12-16

New

This release introduces the new Team and Enterpri…

This release introduces the new Team and Enterprise Editions.

Merged releases


5.4.16.630

Note
Public | 2014-12-16

New

Authentication

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

Mac/Linux Plastic SCM GUI

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

Bug

GUI and Game UI

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

Client configuration in Active Directory mode

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

Command line client

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

GUI

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

Mac/Linux Plastic SCM GUI

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

Mac/Linux Plastic SCM GUI

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

Merged releases


5.4.16.628

Note
Public | 2014-11-28

New

gtkplastic beta is finally out

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

Mac Plastic SCM GUI

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

Mac Plastic SCM GUI

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

Bug

Mac Plastic SCM GUI

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

Mac Plastic SCM GUI

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

5.4.16.627

Note
Public | 2014-11-27

New

GameUI

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

Bug

Diff

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

GameUI

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

GameUI

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

GameUI

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

GameUI

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

GUI

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

Client configuration wizard

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

Merged releases


5.4.16.625

Note
Public | 2014-11-21

New

Server

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

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

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

GUI

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

Bug

GameUI

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

GameUI

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

5.4.16.624

Note
Private | 2014-11-18

New

GameUI

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

Bug

GUI

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

GUI

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

GUI

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

5.4.16.623

Note
Private | 2014-11-14

New

GameUI

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

Bug

GameUI

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

5.4.16.621

Note
Private | 2014-11-10

New

Added new End Of Line (EOL) conversion mechanism

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

Merged releases


5.4.16.619

Note
Public | 2014-10-31

New

GameUI

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

GameUI

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

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

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

GUI

GUI: The 'create branch' dialog has been redesigned

Merged releases


5.4.16.617

Note
Public | 2014-10-23

Merged releases


5.4.16.613

Note
Public | 2014-10-13

New

GameUI

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

GUI

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

GUI

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

Bug

GameUI

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

Web UI

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

Fixed duplicated items in the differences of a br…

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

5.4.16.612

Note
Public | 2014-10-03

New

P4 sync

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

5.4.16.610

Note
Public | 2014-10-02

New

GUI

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

Web UI

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

A new configuration dialog for the Plastic SCM cl…

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

Bug

Merge view

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

Merged releases


5.4.16.609

Note
Public | 2014-09-29

New

GameUI

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

Bug

GameUI

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

5.4.16.607

Note
Public | 2014-09-24

New

The performance improvements in the Pending Chang…

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

5.4.15.606

Note
Public | 2014-09-23

New

GameUI

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

GameUI

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

5.4.15.605

Note
Public | 2014-09-19

New

GameUI

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

GameUI

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

GameUI

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

GameUI

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

Bug

GameUI

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

GameUI

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

Merged releases


5.4.15.604

Note
Private | 2014-09-17

New

The pending changes view performance has been imp…

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

5.4.15.602

Note
Public | 2014-09-11

New

GameUI

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

GameUI

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

GameUI

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

Bug

Replication

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

GUI

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

5.4.15.601

Note
Public | 2014-09-04

New

GameUI

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

GameUI

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

GameUI

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

GameUI

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

Merge

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

GUI

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

Performance

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

Bug

GUI

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

Triggers

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

Merged releases


5.4.14.599

Note
Public | 2014-08-27

New

Game UI

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

Game UI

Game UI: New command "cm partial" has been added to allow running commands in a partial workspace.
Usage:
cm partial command [command options]
Commands:
configure add co | checkout unco | undocheckout ci | checkin mv | move rm | remove upd | update

Bug

Update

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

5.4.14.597

Note
Public | 2014-08-21

Bug

GameUI

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

5.4.14.595

Note
Public | 2014-08-14

New

Command line client

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

GUI

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

5.4.14.594

Note
Public | 2014-08-13

New

GameUI

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

Upgrade system

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

Command line client

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

Mac Plastic SCM GUI

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

Bug

GUI

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

5.4.14.593

Note
Public | 2014-08-08

New

GameUI

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

Mac Plastic SCM GUI

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

Bug

GUI

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

Merged releases


5.4.14.591

Note
Public | 2014-08-01

New

The lock (exclusive checkout) behavior has been m…

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

First GameUI beta with complete working cycle sup…

First GameUI beta with complete working cycle support.

Web UI

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

Bug

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

Merge

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

GUI

GUI: Aesthetic and typographical issues have been fixed.

5.4.13.590

Note
Public | 2014-08-01

New

GameUI

GameUI: Look & feel improved

Bug

GUI

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

5.4.13.589

Note
Public | 2014-07-30

New

GameUI

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

Command line client

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

Mac Plastic SCM GUI

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

Bug

GUI

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

5.4.13.588

Note
Public | 2014-07-29

New

Mac Plastic SCM GUI

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

Bug

Mergetool

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

5.4.13.587

Note
Public | 2014-07-24

New

Second GameUI public release fixing a problem in…

Second GameUI public release fixing a problem in status calculation.

Merged releases


5.4.13.585

Note
Public | 2014-07-21

New

Documentation

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

5.4.13.584

Note
Public | 2014-07-14

New

Server aliases allow reaching the same server by…

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

Bug

Fixed the checkin operation error "The Item X cou…

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

GUI

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

Merged releases


5.4.13.580

Note
Public | 2014-07-01

New

Initial version of GameUI

Initial version of GameUI

5.4.13.578

Note
Public | 2014-06-26

New

Update operation

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

Bug

GUI

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

Merged releases


5.4.13.576

Note
Private | 2014-07-13

Bug

GUI

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

GUI

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

5.4.12.575

Note
Private | 2014-07-01

New

Improved the symbolic information in the mergetool

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

P4 sync

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

Server

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

Merged releases


5.4.11.571

Note
Private | 2014-05-30

New

p4 sync

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

5.4.11.568

Note
Public | 2014-05-19

New

Update operation

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

Checkin operation

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

Bug

p4 sync

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

Command line client

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

5.4.11.567

Note
Public | 2014-05-14

New

CLI

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

Now, the listlocks command shows the user name in…

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

Bug

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

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

Command line client

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

cm ls

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

Visual Studio 2013 / 2013 Package

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

5.4.11.565

Note
Private | 2014-05-09

New

Added a new client-side configuration file, named…

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

5.4.10.564

Note
Private | 2014-05-07

Bug

Server

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

Merged releases


5.4.9.560

Note
Private | 2014-04-23

New

Command line client

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

Command line client

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

Command line client

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

Transformable workspaces

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

Bug

Command line client

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

5.4.9.558

Note
Private | 2014-04-21

New

Transformable workspaces

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

Merged releases


5.4.9.556

Note
Private | 2014-04-11

New

Server

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

Bug

Active Directory authentication mode

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

The paths with accents characters added on window…

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

Web UI

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

Merged releases


5.4.9.552

Note
Private | 2014-04-01

New

Server

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

Merged releases


5.4.8.550

Note
Private | 2014-03-26

New

GUI

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

Bug

Command line client

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

Semantic method history

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

Merge

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

5.4.8.546

Note
Private | 2014-03-20

New

Performance improvements

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

Performance improvements

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

5.4.8.542

Note
Private | 2014-03-14

Bug

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

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

5.4.8.541

Note
Private | 2014-03-13

Bug

Fixed several issues regarding submodules feature

Fixed several issues regarding submodules feature

5.4.7.539

Note
Private | 2014-03-13

Bug

GUI

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

java cm client

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

5.4.7.538

Note
Private | 2014-03-10

New

"Submodules" feature available

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

Eclipse plugin

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

Performance

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

Merged releases


5.4.6.535

Note
Private | 2014-02-27

New

Transformable workspaces

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

Bug

Command line client

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

Merge operation

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

5.4.6.532

Note
Private | 2014-02-20

New

Transformable workspaces

Transformable workspaces: Implemented core system

P4 sync

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

Bug

Command line interface

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

Command line interface

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

Merged releases


5.4.6.525

Note
Private | 2013-01-28

New

Added some shortcuts to the GUI

Added some shortcuts to the GUI:
  • Ctrl+D
    to show branch and changeset differences from the Branches View, Changeset View and Branch Explorer.
  • Ctrl+V
    will focus an item in the Items View if you have copied the item path in the clipboard.
  • The diff view (diff branch, changeset) uses the following shortcuts:
    • Ctrl + Alt + +
      to navigate to the next file
    • Ctrl + Alt + -
      to navigate to the previous file
    • Ctrl + Shift + Alt + +
      to navigate to the last file
    • Ctrl + Shift + Alt + -
      to navigate to the first file
    • There is no need to focus the differences control to navigate through differences (
      Ctrl+ + or Ctrl + -
      ).

cm sync

cm sync: Added
--commentseparator
option to customize a separator for the comments added automatically by Plastic SCM (e.g.: when
--traceinfo
option is set). If
--commentseparator
is not specified, the default separator will be a couple of new lines.

Bug

The cm ls command did not show proper information…

The
cm ls
command did not show proper information if the
--tree
option was used along with a workspace or a non-existent path. Fixed: Now, if
--tree
or
--selector="rep..."
are specified, the path provided must be a server path (
/dir/file.txt
), not a workspace path (
C:/Users/myuser/mywk/dir/file.txt
).

5.4.6.524

Note
Private | 2014-01-27

New

P4 sync

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

Bug

Fixed a NullReference exception calculating some…

Fixed a NullReference exception calculating some cases of cherry pick.

Merged releases


5.0.44.631

Note
Public | 2014-12-16

New

This release introduces the new Team and Enterpri…

This release introduces the new Team and Enterprise Editions.

5.0.44.629

Note
Public | 2014-12-10

New

GUI

GUI: Improved I3 (black) theme on Windows by using the ClearType Fonts.

Visual Studio plugin

Visual Studio plugin: Changed 'Branch Explorer' view colors in Visual Studio 2012 or higher. Now, branch explorer colors are clearer so contrast is higher. Old colors had low contrast and they were difficult to distinguish.

GUI

GUI: Pending changes: Now, extra file info (changeset, size, author and modification date) is displayed for binary files.

Command line client

Command line client:
cm mklabel
command can now be executed from outside a workspace. The syntax is the following:
cm mklabel lb:labelname@rep:myrep@localhost:9092 --changeset=8733
Note the cset number is mandatory in this case.

GitSync

GitSync: Added support to sync with Git repositories using SSH protocol.
To use this feature correctly, users must have a SSH command line client in the PATH environment variable properly configured (described below).
SSH client configuration
  • A SSH command line client "ssh" should be configured in the PATH environment variable.
  • Copy the private key file (usually a file called
    id_rsa
    ) to the ssh config folder. Usually the folder name is
    .ssh
    , located in the user's HOME folder.
    • On Windows-based OS, the "HOME" environment variable has to be set to the user folder, such as
      C:\Users\myuser
      .
    • On Linux-based OS, don't forget to set proper permissions to the private key file:
      chmod 600 /home/myuser/.ssh/id_rsa
  • Use the GitSync specifying the SSH clone URL. Example:
    cm sync rep2 git git@bitbucket.org:myuser/myrepo.git
    If the private key is protected, the user will be prompted to enter the passphrase.
Troubleshooting
  • Problem: The ssh server is not listening in port 22, or different private keys have to be set for different servers.
    • Solution: Create a
      config
      file in the
      .ssh
      folder, specifying different settings foreach server. Example of
      config
      file contents:
      Host gitolite.elegosoft.comUser gitolitePort 2222IdentityFile ~/.ssh/id_rsaHost github.comUser gitIdentityFile ~/.ssh/github_keyHost bitbucket.orgIdentityFile ~/.ssh/id_rsa
  • Problem: I get "An error occurred while connecting to Git".
    • Solution: It might be an error related with the configuration of the ssh client. It is recommended to use GitSync with the command line client to get more info about the error. Example:
      $ cm sync rep2 git git@bitbucket.org:myuser/myrepo.git

Bug

Command line client

Command line client:
cm showacl
couldn't be execute from outside a workspace. Fixed.

Command line client and GUI

Command line client and GUI: Private items excluded from 'ignored' parents couldn't be neither added nor listed in the 'pending changes' view or
cm status
command.
For instance, using this set of rules in the 'ignore.conf' file:
/src!/src/bin
the 'pending changes' view and
cm status
command were hiding all items under
/src
, even those items under
/src/bin
.
Fixed. Now,
/src
path and children paths such as
/src/readme.txt
,
/src/lib/newlib.h
, etc. will be correctly shown as 'ignored' items, whereas
/src/bin
and its children paths (such as
/src/bin/client.exe
,
/src/bin/deps/pom.xml
) will be shown as private items.
Remark: The
cm status --cutignored
will still hide everything under an 'ignored' item.

Command line client

Command line client:
cm mklabel
command was failing when using --changeset option with an invalid changeset number. Fixed. Now, this error condition is notified to the user.

Merge

Merge: Fixed an error performing a
merge
operation when a directory is removed and reloaded again during the merge resolution. The file conflicts could be lost if they were related to the reloaded directory.
The failing scenario is the following:
  • Initial structure:
//src/src/bar.c/src/foo.c
  • Changes in source contributor:
add /docch /src/foo.cmv /src/foo.c to /doc/foo.cdelete /src
  • Changes in destination contributor:
ch /src/foo.cch /src/bar.c
Choosing 'keep source' option in the directory conflicts resolutions (DeleteChange + MoveDelete) were causing the changes in the '/src/bar.c' item were lost.
Now the case it's fixed, and the file contents are correctly merged.

5.0.44.626

Note
Public | 2014-11-25

New

IntelliJ Plugin

IntelliJ Plugin: Now, IntelliJ 13 is also supported

Bug

Unity 3D

Unity 3D: When the user tried to submit a single deleted item, some other paths were proposed to be submitted also, when they shouldn't, as the user only wanted to submit the deleted path.
This scenario has been fixed, and only the requested path is proposed to be submitted.

The extended trial registration process was openi…

The extended trial registration process was opening an invalid URL. Fixed.

GUI

GUI: The license notification area was being displayed by mistake sometimes. Fixed.

GUI

GUI: After a repository renaming, the GUI might show an error when building context menu options for an item in the 'Items' view. Fixed.

CodeBeamer Task Control

CodeBeamer Task Control: URL's that started with 'https' string were unsupported. Fixed, added SSL communication support.

GUI

GUI: An error occurred trying to search matches for a locally moved file, when it was checked out. Fixed.

5.0.44.620

Note
Public | 2014-11-06

New

GUI

GUI: Branch Explorer: If the selected object is changed and their comments have been edited but not saved yet, a confirmation dialog is shown to let the user save the changes or discard them before changing the selection.

GUI

GUI: The about form contains now a link to the release notes in the website.

Unity plugin

Unity plugin: Now it is possible to submit a single path under a directory that has been previously renamed/moved. The renamed/moved directory and its '.meta' file will also be submitted, as they are required dependencies for the selected path.
Example:
  • The Unity project has the following structure:
/Assets /Assets/Fonts /Assets/Fonts.meta /Assets/Fonts/C64.ttf
  • Rename
    /Assets/Fonts
    to
    /Assets/Fonts_renamed
    (the
    /Assets/Fonts.meta
    file will also be renamed to
    /Assets/Fonts_renamed.meta
    )
  • Now, change the file
    /Assets/Fonts_renamed/C64.ttf
    and
    /Assets/Fonts_renamed/C64.ttf.meta
  • Submit
    /Assets/Fonts_renamed/C64.ttf
    and
    /Assets/Fonts_renamed/C64.ttf.meta
    : The directory
    /Assets/Fonts_renamed
    and its '.meta' file will also be submitted as required dependencies.
Before this release, the submit operation wasn't able to finish sucessfully unless a full submit operation (submit all pending changes in the workspace) was performed. Now, it is possible to submit single paths in this scenario.

Bug

The mono version (2.6) included in the installer…

The mono version (2.6) included in the installer has an issue with the date conversion of files timestamp, causing that some files were wrongly detected as changed, after the daylight savings.
Now, the files timestamps are converted correctly even using old mono versions.

Command line client

Command line client: The 'cm li' command was showing an expiration date for 'unlimited' licenses. Now the command shows 'unlimited' string instead of an expiration date.

5.0.44.618

Note
Public | 2014-10-28

New

GUI

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

Bug

GUI

GUI: When an item moved on destination and changed on both source and destination contributors was diffed from the Merge view, a "Incorrect object specification" error message was shown. Fixed.

Annotate (blame)

Annotate (blame): The 'blame' algorithm finds in which revision each line of a file was created. Normally it is just about traversing the parent revisions but, when merges are involved the calculation must consider also each merge contributors.
There was a bug finding whether the line was changed in the parent or in one of the merge sources. Now the issue has been fixed.

5.0.44.616

Note
Public | 2014-10-23

Bug

GUI

GUI: A notification panel indicating the license has expired was wrongly shown when the Plastic SCM GUI was connected to a server whose version was older than 5.0.44.614. Fixed.

5.0.44.614

Note
Public | 2014-10-20

New

GUI

GUI: Code review: Now the differences in file system permissions are highlighted in a darker color to make it easier for users to check what permissions have been changed.

A new configuration dialog for the Plastic SCM se…

A new configuration dialog for the Plastic SCM server has been implemented. The configuration wizard has been replaced by a single form where the server can be easily configured in a single step.

Bug

GitSync

GitSync: An error was being shown in the sync process from Git to Plastic SCM having the following scenario:
  • Have a Plastic SCM and Git repositories synchronized.
  • Create a Xlink in Plastic SCM and push to Git (new empty commit is created in Git)
  • Run an update operation in Git, and commit a new change.
  • Try to sync to get the new changes performed in Git -> An error is shown.
This scenario has been fixed and now the new changes can be pushed from Git to Plastic SCM.

Checkin operation

Checkin operation: The checkin operation was failing with certain rare files that cannot be compressed. Fixed.

Fixed duplicated items in the differences of a br…

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

5.0.44.611

Note
Public | 2014-10-06

New

Crucible plugin

Crucible plugin: The plugin has been upgraded to support the newest Crucible version available (v3.5.4).

Bamboo plugin

Bamboo plugin: Now the plugin is fully compatible with Bamboo 5.6.x series.

Item merge tracking

Item merge tracking: The differences of changesets and branches have been improved in the way readonly xlinks are handled in merges. Now, the xlink addition, edition, or deletion is displayed in the 'merge from' category.
In case of a xlink edition (replace the target changeset in the source contributor of the merge), the differences between the old target and the new target are also displayed in the 'merge from' category.

A new tool has been implemented to calculate line…

A new tool has been implemented to calculate line-of-code and source-lines-of code statistics for every modification stored on a given repository. The new tool can be found in the client directory, named 'repostatscalculator'. Output results can be stored into a MySQL database.
To show the tool usage, just type 'repostatscalculator' without arguments in a shell window.

Bug

Merge

Merge: Fixed an error performing a 'merge' operation when a directory is removed and reloaded again during the merge resolution. The file conflicts could be lost if they were related to the reloaded directory.
The failing scenario is the following:
  • Initial structure:
//src/src/bar.c/src/foo.c
  • Changes in source contributor:
add /docch /src/foo.cmv /src/foo.c to /doc/foo.cdelete /src
  • Changes in destination contributor:
ch /src/foo.cch /src/bar.c
Choosing 'keep source' option in the directory conflicts resolutions (DeleteChange + MoveDelete) was causing the file conflict of the
'/src/bar.c'
item was lost.
Now, the file contents are correctly merged.

Command line client

Command line client: Fixed unix date format in 'cm log' command
Previously, tick counts since epoch was returned when
{unixdate}
was requested in
csFormat
string.
Now, the command returns unix timestamp correctly (seconds since epoch).

5.0.44.603

Note
Public | 2014-09-12

New

GUI

GUI: Two new categories have been added in the differences dialog (Diff branch contents, Diff changeset contents):
  • Changed during merge (CC): it groups files changed during the merge by both the source and the destination contributors.
This new category has been added to ease during the review of all branch differences without having to expand each merge looking for merged files.
In addition, an informative panel has been added to keep merge information for each file. From this informative panel is also possible to navigate to the change in the merged category.
  • Only filesystem permissions changed (Fs): it groups files with only filesystem permissions changes (chmod).
This new category has also been added to ease the review of changes.

GUI

GUI: Item search improved in 'Items' view with wildcards and basic regexp. The following wildcards are allowed:
*
-> Will match any character sequence of 0 or more characters
?
-> Will match a single character.
pattern
-> Will match only this pattern, strictly, but this won't match any string that contains the pattern inside.
Basic C# regex are allowed like ^pattern or pattern$ to match only the begining or the end of the string. Additional C# regexp not containing
*
and
?
characters are also allowed.

GUI

GUI: 'Items' view, usability improvement: From now on, after deleting an item, the focused node will be a closer one to the deleted node in order to avoid too much scrolling.

GUI

GUI: Now, the expansion rules of an xlink are listed including the repository on the xlink dialog (the dialog that is used to create or edit an xlink).

Bug

GitSync

GitSync: When an item was added in a branch and merged to another branch in git, the GitSync was deleting and adding the item in Plastic SCM, which could lead to traceability issues. Fixed. Now, the same item is reused, just creating a new revision only when needed (that's it, if the item was also modified).

Unity plug-in

Unity plug-in: Unable to submit a directory that has been previously moved or renamed. Fixed.

GUI

GUI: The differences dialog (Diff branch contents, Diff changeset contents) were showing a wrong path for any change inside an xlink that was inside another xlink.
Example of failing case:
* add + checkin /code (wxlink) * add + checkin /code/win32 (another wxlink) * add + checkin /code/win32/win_local.h * checkout + modify + checkin /code/win32/win_local.h
When the differences were shown, the path of the item
win_local.h
was
/code/code/win32/win_local.h
, which was wrong. Now it is fixed, and the right path is shown, which is:
/code/win32/win_local.h
.

GUI

GUI: When the target changeset of an xlink is changed from the Plastic GUI, an auto expansion rule is generated. But a branch from the xlinked repository is wrongly set as the source branch of the rule. Fixed. Now, the right branch from the parent repository is set as the source branch of the rule.

5.0.44.600

Note
Public | 2014-09-03

New

Visual Studio Package

Visual Studio Package: Now it is possible to use the 'Shelves' view from Plastic SCM Visual Studio plugin. The new view is available from the 'Plastic SCM' menu, where all the other views are located.

GUI

GUI: Improved the selection checkboxes behavior of the pending changes view. From now on, when the user performs a multiple selection and checks/unchecks one of its nodes, the whole selection updates the checkbox value.

GUI

GUI: Several usability improvements in the editable differences:
  • When there are unsaved changes in the 'pending changes' view (right diff textbox), a prompt dialog is shown asking the user for saving the new changes in the following
scenarios:
  • The user changes the selection in the file list.
  • The user refreshes the view.
  • The user tries to close the view.
  • The user close the view
  • When the user selects a textbox in the diff control, the focused textbox is now highlighted.
  • When the user edits the right contributor in the diff control, the right textbox's header is remarked in red.

Eclipse plug-in

Eclipse plug-in: Added support for ignored files. Two context menus have been added to the Eclipse plugin.
The first one is located in the 'Team' context menu from the package explorer. The second one is located in the 'pending changes' view.
The user can add or remove files to the ignored file list('ignore.conf' file), using the full file path, the file extension or the file name.

Bugzilla integration

Bugzilla integration: Integration updated in order to be compatible with latest bugzilla versions (v4.4.5).

Bug

GUI

GUI: Now, the 'update workspace' action in the 'Items in workspace' view, takes into account the 'Behavior when trying to switch / update the workspace with changed items' user option.

Merge

Merge: Fixed an error performing a 'merge-to' operation when the source contributor has performed complex 'move' and 'add' operations with directories. Example:
  • Initial structure:
    //src/src/foo.c
  • Changes in source contributor:
    • move
      /src
      ->
      /doc
    • add
      /src
    • move
      /doc
      ->
      /src/doc
    • move
      /src/doc/foo.c
      ->
      /src/doc/bar.c
Performing a 'merge-to' operation from these changes was causing an error. Now the error has been fixed and the 'merge-to' operation can be successfully completed.

GUI

GUI: If an
after-mkrep
trigger failed when creating a new repository, the
repositories
view was not refresed and the new repository was not listed. Fixed.

GUI

GUI: If an
after-mkworkspace
trigger failed when creating a new workspace, the
workspaces
view was not refreshed and the new workspace was not listed. Fixed.

GUI

GUI: Dragging and dropping views in the Plastic SCM GUI may lead eventually to an error when trying to reallocate the view in the new location. Fixed.

Visual Studio Plugin

Visual Studio Plugin: When working in a
.dtproj
project (SSIS package project), and the user switches to other changeset different than the loaded one, sometimes a 'The hierarchy is not in a valid state' error message is shown. Now, the problem is fixed and no error message is shown.

Visual Studio Plugin

Visual Studio Plugin: After saving a readonly file under version control, a 'Save as/Overwrite/Cancel' dialog was shown when it shouldn't. Now the issue it's fixed: As the file is under the control of Plastic SCM, a 'checkout for edit' operation is performed to remove the readonly attribute and saving the new file contents.

GUI

GUI: The 'diff branch/changeset contents' view was not showing the deleted items as a result of a merge operation inside the top-level 'Merge from' node. They were shown as regular deleted items in a top-level 'Deleted' node. Now, the issue is fixed.

5.0.44.598

Note
Public | 2014-08-22

New

Server

Server: Now, the maximum comment size can be manually configured.
To configure this parameter, add a new tag in the server's
db.conf
file, named
CommentLimit
in order to set the value for the maximum allowed comment length (in characters).
Example:
<DbConfig> ... <CommentLimit>2000</CommentLimit> ...</DbConfig>
However, this configuration will require the sysadmin to manually alter the database tables to match this new value (see column 'scomment' on table 'object'). The comment length limit is set to 1000 characters by default.
Even so, importing data (cm sync or cm fast-import) will only store the first 1000 characters of incoming comments, no matter which value is contained in the 'CommentLimit' tag.
Warning: Please note that replication operations may fail if servers have different comment length limits. Please make sure that all involved servers have their 'CommentLimit' tag set to the same value in the 'db.conf' file and their repository databases have been modified accordingly.

5.0.44.596

Note
Public | 2014-08-15

New

Extensions

Extensions: A new extension supporting CodeBeamer interoperability has been added. This allows the branch explorer and the changesets or branches views to display issue tracking information from CodeBeamer.
Setup: Include these lines inside your 'client.conf' file:
<Extensions> <Extension AssemblyFile="[PATH_TO_PLASTIC]\client\extensions\codebeamer\codebeamerextension.dll" /></Extensions>
Also, you should create a file in the same directory as the 'client.conf' file, called 'codebeamerextension.conf' to configure the extension. You can use this as a template:
<CodeBeamerExtensionConfiguration> <HttpUrl>http://localhost:8080</HttpUrl> <User>tester</User> <Password>tester</Password> <BranchPrefix>scm</BranchPrefix> <WorkingMode>TaskOnBranch</WorkingMode> <!-- TaskOnChangeset is also available --></CodeBeamerExtensionConfiguration>

Command line client

Command line client: Annotate command: Now it is possible to annotate a specific revision from the command line, using its full specification.
Examples:
$ cm ann AclCmd.cs#cs:12548@libs@saturn:8087$ cm ann AclCmd.cs#cs:12548

Bug

Jenkins plugin

Jenkins plugin: The jenkins plugin did not reuse Plastic SCM workspaces correctly when the 'Use update' preference was set. Fixed.

5.0.44.592

Note
Public | 2014-08-06

New

GUI

GUI: Repository servers sync view: Several performance improvements have been implemented, along with new features to sync only a subset of branches:
  • 'Refresh' operation:
Previously the 'refresh' operation was calculating incoming and the outgoing changes for the expanded repositories. So, in order to show all the incoming and outgoing changes, all the repositories should be expanded first.
Now, the 'refresh' operation calculates the incoming and the outgoing changes for every repository, and not only for the expanded ones.
  • New toolbar actions:
'Pull visible': Pull all the visible incoming branches.
'Push visible': Push all the visible outgoing branches.
  • Excluded branches feature:
Now it is possible to exclude branches to be synced. The excluded branches will not be taken into account to obtain incoming and outgoing changes. To exclude some branches from the sync process, select the desired branches, right-click on the mouse and select 'Exclude branches' context menu option.
To enable excluded branches again, select the 'Show excluded branches' context menu option.
  • New 'syncviews.conf' file format:
This file contains the mappings among repositories the sync view shows in Plastic SCM GUI. The file format has been changed in order to be both human-readable and machine-parsable.
The legacy
syncviews.conf
file will be automatically upgraded by its equivalent file contents with the new format.
Example of the format of
syncviews.conf
file:
# comments// or more commentssync: local - azure codice@localhost:8084 -> codice@HADES:7084 excluded: ff583b6c-311d-4178-bb95-74776d4cbef5 excluded: efb96c6c-afc0-4480-9db0-70ac77234ab3 nervathirdparty@localhost:8084 -> nervathirdparty@HADES:7084 devops@localhost:8084 -> devops@HADES:7084 excluded: 1af6ff4b-f7b5-4bd5-8a14-70e0a422bd46sync: local - diana documentation/doc@localhost:8084 -> documentation/doc@blackmore:8086

Eclipse plug-in

Eclipse plug-in: Now the pending merge links (merges in progress, pending to be checked in) are shown in the 'Branch Explorer' view.

Eclipse plug-in

Eclipse plug-in: Implemented a new context menu option 'create branch from this changeset...' in the 'Branch Explorer' view.

GUI

GUI: 'Differences' viewers: Revision metadata, such as changeset, size, author and modification date, is now shown for binary revisions.

Bug

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

Replication

Replication: Fixed an error creating a replication package from a repository's branch that contains Xlinks. Fixed.

Mergetool

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

Eclipse plug-in

Eclipse plug-in: The 'Branch Explorer' view was not automatically refreshed after checkout, checkin or undo checkout operations. Fixed.

GUI

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

Visual Studio Package

Visual Studio Package: History 2D: The 'Branch Explorer' frame was not visible when showing the 'History 2D' view if the size of the windows was too small. Now it's fixed.

Visual Studio Package

Visual Studio Package: An error was shown when trying to undo pending changes from the 'Check in' dialog. Fixed.

Visual Studio Package

Visual Studio Package: Fixed a 'No tab group available to store new view' error when loading projects that don't have it's solution bound to the source control. Fixed.

Visual Studio Package

Visual Studio Package: The 'Diff' view was showing two scrollbars on Visual Studio 2012 or higher. Fixed.

Visual Studio Package

Visual Studio Package: read-only files were not correctly handled. The Visual Studio Package was unable to overwrite read-only files. Now, a dialog to allow the user to decide what to do when saving a read-only file is shown. (The user will be able to choose among 'Overwrite', 'Save as ...' and 'Cancel').

Visual Studio Package

Visual Studio Package: Now, custom 'Branch Explorer' views, such as 'Show selected an related branches in a new diagram', are shown in a new window.

5.0.44.586

Note
Public | 2014-07-22

New

Jenkins plugin

Jenkins plugin: Labels and changesets are now supported in the Plastic SCM selector.

GitSync

GitSync: Support for double-byte characters in comments

Bug

Now triggers can run recursively

Now triggers can run recursively: suppose inside a checkout trigger you decide to checkout another file. Now it will work correctly, previously there was an issue with the environment variables. It is very helpful to enforce workflows like checking out associated files.

Annotate

Annotate: The "annotate on remote repository" option did not save the correct repository mapping when annotating a file under an xlink. Fixed.

Branch explorer

Branch explorer: The GUI crashed after defining a color for the same user in two different branch explorer instances. Fixed.
Also, an scrollbar was added to the user colors panel.

GUI

GUI: The selected item was not remembered after closing and reopening the items view or the GUI client.

GUI

GUI: Fixed cut text in the merge view

Visual Studio Package

Visual Studio Package: Sometimes, a "The hierarchy is not in a valid state" error was showed when working in a .rptproj (Business Intelligence for Visual Studio 2012 projects) and switching to another changeset. Fixed.

Merged releases


5.0.44.581

Note
Public | 2014-07-04

New

Plastic SCM is now packaged with the newest BitRo…

Plastic SCM is now packaged with the newest BitRock release. This fixes installation issues detected by some Asian developers.

Bug

GUI

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

GUI

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

5.0.44.577

Note
Public | 2014-07-18

New

GUI

GUI: Greatly improved checkin progress. Now when the checkin uploads data using a slow network, a detailed progress is displayed so that the user has a much better understanding of what is going on and the detailed upload of each block of 4Mb being uploaded.

GUI

GUI: Annotate (blame) of the diff views (cset, branch, label). Now the diff view is able to show annotations on the left-side and right-side panels. This feature is very useful when reviewing differences, specially checking which lines have been modified during a merge (when a file has been changed on both contributors, annotating the file will show which lines were changed during the merge. This means they were manually edited).
Lines coming from the contributors but not changed during the merge will be marked as coming from the right contributor.
To show the annotations, just right-click in the contents textbox and select the 'Annotate' context menu option.
Also, the look and feel of the annotate panel has been improved.
A tooltip is shown with changeset comments and other info hovering the mouse over an annotation.

GUI

GUI: Drag and drop support added to the items and 'pending changes' views.
Now users can drag files from the "items view" and the "pending changes view" to an external application, like an editor or any other app able to accept the file being dragged.
The drag operation is only available for local files: files that are physically available on disk

Xmerge (mergetool) is now able to display more ad…

Xmerge (mergetool) is now able to display more additional information sent by Plastic SCM during a merge.
  • Added a parameter in mergetool (
    --progress
    ) to notify the current merge operation to the mergetool. This is useful to understand how many files are pending to be merged while you're in the middle of merging a file, without having to switch to Plastic
  • Added a parameter in mergetool (
    --extrainfofile
    ) to get extra information about the current merge in the mergetool
  • Implemented a panel in mergetool to show the extended merge info
  • Improved the symbolic names passed to the mergetool.
  • Recursive merges are now clearly identified and extra info is available to better understand the operation.
  • Symbolic paths are now relative to the workspace.
  • Fixed maximize and restored botton image aligment (also fixed the restore button image, which was wrong)
  • When the contributor text is trimmed in the "select contributor" buttons, the tooltip will show the entire string.
NOTE: To take advantage of these improvements, change the configuration of your Xmerge (Plastic SCM built-in merge tool) as follows:
--progress="@progress" --extrainfofile="@extrainfofile"

Polarion

Polarion: The installer now distributes the Polarion jars and installation instructions. The 'jar' files will be copied in a directory inside the Plastic SCM "client" folder during an install or upgrade.

The update-merge operation (update that requires…

The update-merge operation (update that requires a merge without conflicts) doesn't support cloaked rules yet. A restriction has been added to avoid misunderstandings. If there are cloaked rules, a regular merge will be launched.

New "find in files" added to the diff cset, branc…

New "find in files" added to the diff cset, branch and label window.

Bug

Annotate

Annotate: fixed a bug preventing the annotate to finish
It happened only if the ancestor of the annotated revisions met one of the following conditions:
  • It is a source contributor of a merge
  • The item was modified by both contributors in the merge
  • The merge result was equal to the destination contributor (source changes were discarded or source changes were already included in the destination contributor).
This issue has been fixed.

GUI

GUI: The items view was throwing an 'Index out of range' exception when selecting items in 'list' view mode and pressing the shift key. Fixed.

5.0.44.574

Note
Private | 2014-06-06

New

Annotate operation

Annotate operation: Annotate can now be executed with a different repository than the configured workspace's repository. This is useful when the workspace's repository is a local replica of a repository in a central server, and only contains a subset of the history. (The local repository only has a subset of branches pulled from the central server). This way, now it is possible to annotate a file with the full info of the central repository.
Usage:
* Command line client: 'cm annotate foo.c --repository=centralRep@myserver:8087'* Plastic SCM GUI: Right click on item -> Annotate -> Annotate on remote repository... (selected repository will be added to the 'Annotate' context menu).

GUI

GUI: Diff viewers (such as 'Diff branch', 'Diff changeset'):
Implemented 'Find In Files' feature. The 'Find in files' control is displayed with the
Ctrl + Shift + F
key combination, or clicking in the 'Find in files...' button added in the right side of the toolbar.

GUI

GUI: Diff viewers (such as 'Diff branch', 'Diff changeset'):
Added new Diff options to the context menu of each revision:
  • Diff revision's branch
  • Diff revision's changeset
  • Diff source revision's branch
  • Diff source revision's changeset
Each Diff action will launch a new window with the differences of the specified item.

GUI

GUI: Diff window: Added a 'Copy to clipboard' context menu option for names and specs shown in the diff window.

GUI

GUI: Improved progress during merge operations: Now it is easier to see the files already merged and the files still pending to be merged.
Also, new menu items are provided to run diff actions for each item while the merge is running.

Server

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

Merged releases


5.0.44.572

Note
Private | 2014-06-04

New

Change in the TCP layer to improve counting of ac…

Change in the TCP layer to improve counting of active and inactive threads.

Update operation on Plastic SCM GUI, Visual Studio and Shell Extension

Update operation on Plastic SCM GUI, Visual Studio and Shell Extension: From now on, if the user performs an update operation on a workspace that already loads the last changeset on a branch but with checked out items in the workspace, the update operation will show an informative message telling that the update operation cannot be run because of those pending changes, instead of an error message.

Bug

Fixed an error when the merge operation or the pe…

Fixed an error when the merge operation or the pending changes view includes a deleted xlink as a change.

When the full workspace is cloaked except some fi…

When the full workspace is cloaked except some files or directories, the merge operation was failing with a 'value cannot be null' error when the source contributor has one or more changes inside the cloaked paths. Fixed.
Example of failing cloaked rules:
/ !/08-2014/an-ers/an-cli-improvements

Polarion

Polarion: The URL generated to explore a changeset in an external viewer was malformed. This issue has been fixed, and the external viewer is not able to show Plastic SCM changesets.

Command line client

Command line client: The console output encoding was not restored after a command execution with the '--encoding' parameter set. Fixed.

5.0.44.570

Note
Public | 2014-05-27

New

Command line client

Command line client: 'cm mktrigger' command. Now, Plastic SCM triggers can now be created defining the repository that should match before running the trigger indeed. To do that, use the
'--filter'
option in the
'cm mktrigger'
command as follows:
'--filter=rep:repositoryName'
This way, before running the trigger, PlasticSCM will check whether the scm operation involves the defined repository. If so, the trigger program will be executed.
The repository filter can be used together with the standard filter if the filters are separated by the pipe character (
'|'
).
Example:
cm mktrigger before-checkin "check-files" "/path/to/script" --filter=rep:default|*.cs --server=blackmore:8087
In this example, this filter will be executed only before a file with extension ".cs" is checked in in the 'default' repository hosted in 'blackmore:8087' Plastic SCM server.

Command line client

Command line client:
cm listtrigger
command. Added a 'filter' field to the list triggers output.

Improved filter rules definition for configuration files

Improved filter rules definition for configuration files such as 'ignore.conf','cloaked.conf' and any other configuration file for filtering purpouses: Now, filenames and extensions rules containing regular expression characters will be automatically matched. This means no
**/
prefix is needed from now on.
Previous format:
**/p?m.xml**p*.xml/src/lib/foo.*
Current format:
*/p?m.xmlp*.xmlfoo.*
This way, expressions like
abc.*
are now supported.

Bug

Pending changes view and 'cm status' command. Aft…

Pending changes view and 'cm status' command. After changing the machine time due to a daylight saving, some workspaces were showing changed items when they weren't. Now it is fixed. (If the 'Compare file contents instead of timestamps' option was enabled, the issue was not happening).

5.0.44.569

Note
Public | 2014-05-23

New

Eclipse plugin

Eclipse plugin: Implemented eclipse 3.2 backwards compatibility

GUI

GUI: Now it is possible to create a workspace for a given repository. To do that, just open the 'repositories view', right click on the desired repository and select 'Create workspace for this repository'.

MergeTool

MergeTool: From now on, the built-in mergetool application returns an exit code different than '0' if the merge result file was not saved.
Implemented also a new option, named
'--silent'
, which runs mergetool in silent mode. This is useful combined with the
'--automatic'
option: If both options are present, the mergetool won't show the merge dialog that requires user intervention. Instead, an error code different than '0' is returned.

Bug

Visual Studio 2013 Package

Visual Studio 2013 Package: The installer was not checking whether Visual Studio was running during a Plastic SCM upgrade. Therefore, the VSIX installation might fail because the installer could not replace the old binary files with the new binaries. Fixed.

5.0.44.566

Note
Public | 2014-05-20

New

GUI

GUI: Pending changes view 'moved file detection' functionality now enables 0% to 100% values. The search matches dialog previously had a minimum of 50%. Now it is possible to match any file from the added/deleted list. Other aesthetic and usability issues have been improved.

Command line client

Command line client: The 'cm find review' is now able to filter the output by the following fields:
  • title: The title of the code review
  • targettype: 'branch' or 'changeset'
  • target: The element being reviewed.
I.e. a Branch Spec, a Changeset Spec, or an object Id.
Examples:
* cm find review where targettype = 'branch' * cm find review where targettype = 'branch' and target = 'br:/main/br1' * cm find review where title like '%br2%'

Now, the 'listlocks' command shows the user name…

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

Bug

When the 'listlocks' command is used with the [co…

When the 'listlocks' command is used with the
'--onlycurrentuser'
option with an authentication mode that uses SID's, no locks were returned, although the current user had locked items. Fixed.

Checkin operation

Checkin operation: Fixed an issue when performing a checkin which involves items in an xlinked repository and its parent repository.
If the checkin operation finishes sucessfully in the xlinked repository but the checkin in the parent repository fails, the xlink target is properly updated to the newly created changeset in the xlinked repository.

Command line client

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

GUI

GUI: Merge view: The 'open contents' and 'diff' actions weren't available for xlink conflicts. Fixed.

GUI

GUI: Merge view: Improved 'view contributors' dialog. Added scroll to the 'ancestors' textbox when the merge operation detected more than one ancestor (recursive merge).

Command line client

Command line client: The 'cm ls' command was failing if the workspace contained xlinks and:
  • the
    --tree
    option or the
    --selector
    option were used
  • together with the
    --xml
    or the
    --format
    options
  • and the
    -R
    option was not used.
Fixed.

Server

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

5.0.44.563

Note
Public | 2014-05-05

Bug

Polarion

Polarion: The polarion plugin was designed to work on a single branch. Removed the branch parameter from the polarion configuration. Now the polarion plugin allows to query all the Plastic SCM repository, so all revisions are polled by the plugin.

GUI

GUI: minor aesthetic issues fixed on 'Create / Edit Xlink' dialog.

GUI

GUI: The 'replication sources' panel of the branch explorer was showing an incorrect error message when the branch explorer cannot connect to a certain repository.

5.0.44.562

Note
Public | 2014-05-01

New

The plasticlogstats server diagnostics app has be…

The plasticlogstats server diagnostics app has been modified. It now supports grouping by hour (
--hour
) and output data in XML format to a file (
--xml=outputfile.xml
), which is useful for Excel data analysis. Now the flags are set with --.

Performance

Performance
Server: Improved memory usage when multiple replication operations are running in parallel.

Bug

Update operation

Update operation: The update operation was raising an "Access to the path is denied" error when updatig hidden files on Windows OS's.
Unity users with VCS mode = "Hidden meta files" experimented this issue. Fixed.

Maven

Maven: The Maven 'tag' command was failing on Linux systems when calculating the items that were tagged. Fixed.

Merge

Merge: The recursive merge operation generates virtual revision identifiers to resolve the conflicts between the multiple common ancestors.
These identifiers could be used to track delete operations in the extended merge item information, but they cannot be used in the merge result, as they are temporary identifiers and not real revision identifiers. This issue has been fixed and now the real revision identifiers are used.

Command line client

Command line client: The diff command for changesets was not correctly using the repository spec inside the fully-qualified changeset spec (Example:
cs:529@tools@server:8087
).
It was only considering the repository of the working path. Fixed. Now, the repository will be taken from fully-qualified changeset spec.

GUI

GUI: showing differences from the pending changes view was not setting the configured comparison method to launch the diff tool. Fixed for both the embedded diff viewer and external diff viewer (
Ctrl+D
).

Replication

Replication: unable to replicate new changes in the following scenario:
  • An empty branch was replicated
  • Later new changesets were checked in both in the source
and destination repositories
  • The new replication was unable to replicate new checkins
Scenario to reproduce the issue:
  • Create an empty branch task001.
  • Replicate task001 from repo A to repo B.
  • Create a changeset on task001@repository A.
  • Create a changeset on task001@repository B.
  • Replicate (pull) the branch -> Nothing is replicated (Now it's fixed).

Replication

Replication: problem updating the 'head' of a branch. It happened under the following circumstances:
  • A branch was replicated again from source to destination
  • If the new head or some changesets between the old head and the new head were replicated on different replication operations.
Note: the issue only happened if empty branches were replicated.
Fixed.
Scenario to reproduce the issue:
  • Create two changesets on main branch.
  • Create an empty branch from the last changeset (main head).
  • Replicate the empty branch.
  • Replicate the main branch -> The main head was not updated properly (Now it's fixed).

Merged releases


5.0.44.557

Note
Public | 2014-04-16

New

Eclipse plug-in

Eclipse plug-in: Now, the eclipse plugin's package explorer prints a different decorator on nodes that have children resources with changes.

Web UI

Web UI: Now it is not necesary to restart the web server to reload the avatar images.

Bug

Web UI

Web UI: The Web UI was unable to show image diffs
The Web UI was unable to show image diffs. Fixed.

GUI

GUI: Pending changes view: The 'checkin dependencies' dialog didn't appear when using changelists. Fixed.

Merge

Merge: An error is thrown when the source contributor has an xlink added inside an added directory. The checkin operation after the merge operation will fail. Now, this case has been fixed.

5.0.44.555

Note
Public | 2014-04-08

New

Server

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

Client performance improvements

Client performance improvements
The time loading client.conf file has been improved if the Plastic SCM version is the one compiled in .NET 4. (In .NET 2 these improvements were already available).
Results obtained:
  • .NET 2:
Without the new improvements -> 265 ms.
With the new improvements -> 78 ms.
  • .NET 4:
Without the new improvements -> 156 ms.
With the new improvements -> 63 ms.

Bug

GUI

GUI: When the "diff workspace contents" option is selected on the pending changes view menu from a moved element, which is changed too, an error was shown: "Cannot show diffs. Entry does not have two contributors.". Fixed.

Merge

Merge: Fixed case where directory conflicts are shown again, when they shouldn't, as they were previously resolved. The failing case should met the following conditions:
  • Merge only a subset of files.
  • A writable xlink is involved on the merge operation.
  • There is at least one file conflict pending to be resolved inside the xlink and at least another file conflict on its parent repository.
  • The xlink has two or more directory conflicts that involve the same delete directory operation (Example: two files were changed on source contributor inside a directory that was deleted on destination), so only one of them must be resolved.

Active Directory authentication mode

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

Merged releases


5.0.44.551

Note
Public | 2014-03-27

New

Jira extension

Jira extension: The data logged in the Plastic SCM custom field can now be configured. Also, it is possible to open changeset diffs from JIRA.
Please visit this blogpost to get more info.

GUI

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

Bug

Merge

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

5.0.44.549

Note
Public | 2014-03-25

New

Maven plugin

Maven plugin: The scm:update operation now checks if a workspace exists in the path being updated. If there is no workspace, a new workspace will be created. Otherwise, the workspace is reused.

Bug

Semantic method history

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

5.0.44.548

Note
Public | 2014-03-24

New

Polarion plugin

Polarion plugin: Implemented a basic Polarion integration (Please contact support to get instructions about how to setup the Polarion integration: 'support@codicesoftware.com').

Eclipse

Eclipse: Now the pending changes view shows the pending merge links.

Proxy Server

Proxy Server: Now the Proxy server can be used in 64-bit machines.

Performance

Performance
The add command performance has been improved when it's executed with several paths.
Test performed: 'cm add' command with 250.000 paths:
  • Before: 240547 ms
  • After: 31699 ms

5.0.44.547

Note
Public | 2014-03-18

Bug

GUI

GUI: The context menu of the "Diff branch" and "Diff changeset" dialogs was incorrectly hidden after the first time it was displayed. Fixed.

5.0.44.537

Note
Public | 2014-03-04

New

Eclipse plugin

Eclipse plugin: Implemented Team Project Sets support. The eclipse projects can now be exported to a Team Project Set File (PSF) or import projects from a PSF file.

Eclipse plugin

Eclipse plugin: Show label info when the workspace is configured to work in a specific changeset.

Eclipse plugin

Eclipse plugin: Several improvements performed
  • Implemented label-changeset support when importing from a PSF files. When the PSF points to a label, Eclipse translates it to its equivalent changeset.
  • Implemented the 'switch to changeset' action in the eclipse's branch explorer view.
  • When creating a new workspace, Eclipse plugin now proposes the Eclipse project path instead of the Eclipse workspace path.

Maven plugin

Maven plugin: Implemented the 'status' command for the Maven plugin.

Visual Studio package

Visual Studio package: Now, VSIX installation is silent, so no popups are opened when registering the package.

Command line client

Command line client: XML output is now available for certain cm commands. Flag "
--xml
" has been added to the following commands to get an output in XML format: showacl, log, history, ls and update.

Command line client

Command line client:
cm find
command: Now, the
find
command can show the hash of a revision.
Example:
cm find revision --format={hash}

Bug

Eclipse plugin

Eclipse plugin: The eclipse plugin was not performing the checkin operation of a single deleted file properly. Fixed.

TeamCity plugin

TeamCity plugin: now the plugin preserves executable permissions when creating the build patch so that the agent can run them.
NOTE: To use this upgrade of the plugin, it is required to run TeamCity with Java 7.

GUI

GUI: Method history: When clicking the "Load more" button continuously and very quickly, sometimes the information displayed was not correct.
Some elements were remaining as "loading" when in fact the information was already loaded. Some other revisions appeared as not connected, when in fact, all revisions were also conected. Fixed.

Mergetool

Mergetool: An exception was thrown when clicking on navigation buttons and there were no conflicts in the file. Fixed.

Merge

Merge: interval changesets merge: When the same interval is merged to multiple destinations and, at least one destination is already replicated, the next replication process will fail, showing an error message. Fixed. (Broken since release 5.0.44.502).

GitSync

GitSync: Push branches or tags with non ASCII characters was failing. Fixed.

GitSync

GitSync: Plastic labels with spaces and other illegal git characters were not being pushed to Git. Fixed. Now they are pushed, the name exported to git will be the same in plastic but replacing these illegal characters with a dash ('-'). E.g.: "Label 1" will be pushed as "Label-1".
There was an issue when you had two xlinks to the same repository and a file (or directory) is moved between them manually (not with a 'cm mv' command but directly using the Windows Explorer or command prompt). The Pending Changes view should detect the scenario but it wasn't working properly.
Since the move between xlinks (even on the same repository) is not allowed, the Pending Changes view should show the result as a file being deleted on the source and a file being added (private file) on the destination. Now it's Fixed.

Command line client

Command line client: '
cm describebranchhistory
' command: The command output was not sorted by date. Fixed.

Merge operation

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

Visual Studio package

Visual Studio package: There was an issue wihen uninstalling and reinstalling the VSIX package without opening the IDE. Fixed. Now, the following command is executed in the uninstallation process in order to force to unregister the package inmediately (This affects the upgrade process as well): 'devenv /setup /nosetupvstemplates'.

Visual Studio package

Visual Studio package: Issue when Visual Studio 2012 was installed and Visual Studio 2013 wasn't. The unregistering of the Visual Studio package was not performed during the uninstall process. Fixed.

5.0.44.536

Note
Private | 2014-03-03

New

GUI

GUI: The differences window is able to give more information about the differences at code level, like the number of lines changed, added or deleted.
Using the external application 'cloc' is even able to identify if the changes are only in blank lines and comments.

Bug

GUI

GUI: Starting the GUI on Linux having several tabs opened crashed sometimes. Fixed.

5.0.44.534

Note
Public | 2014-02-25

New

LDAP provider

The LDAP provider was unable to query a subtree if the domain path didn't start with 'dc='. Now, the following format examples are supported:
  • Dotted notation:
'codicefactory.com or mydepartament.codicefactory.com'
  • Path notation:
'dc=codicefactory,dc=com''dc=mydepartament,dc=codicefactory,dc=com'
Also organizational units are supported:
'ou=USA,ou=CODICE SOFTWARE,dc=development,dc=codicefactory,dc=com'

Command line client

Command line client: Added a summary at the end of the output obtained with cm li to provide extended license information.
Example:
cm li -wks=localhost:8084Plastic SCM license information:* User-license information: mark ACTIVE michael ACTIVE santiago INACTIVE (Not licensed) helga INACTIVE (Not licensed) Licensed to: The Cool Company Expiration date: 22/06/2007 13:34:23 Total licensed users: 4 Total activated users: 2 Total available users: 2

Bug

GitSync

GitSync: Fixed a very rare synchronization case: Import a commit where several file paths are now directories, and the original files were moved inside the new directories will fail. This happens if the machine where it is executed is very fast.

Move operation

Move operation: When a move operation was performed between two different mount points loading the same repository, the move operation was wrongly allowed. Fixed.

Unity 3D

Unity 3D: The "ignore.conf" file was not automatically ignored in Mac. Fixed.

Command line client

Command line client: Issuing a
cm status --changelist
command in a partial path was causing that some non-persistent changelists were deleted. Fixed.

Mergetool

Mergetool: An exception is thrown when clicking on navigation buttons and there were no conflicts in the file. Fixed.

GUI Linux

GUI Linux: "Open with" a custom tool was not working from the repository explorer. Fixed.

GUI

GUI: Branch Explorer: The format rules were lost after restarting the GUI. Fixed.

GUI

GUI: Merge view: When pressing 'F5' key in a merge view, the following error was shown: "RefreshView not implemented for this view". Fixed.

GUI

GUI: Branch Explorer: When the "home" changeset was not visible in the branch explorer because of the date filter, an error message was shown refreshing the view. Fixed.

Merge operation

Merge operation: The merge operation could apply a change in the wrong path in an edge case (when the destination contributor had left on the same path another item with the same internal identifier from the same repository but a different mount point. Fixed.

5.0.44.533

Note
Public | 2014-02-19

Bug

GUI

GUI: An error message in the pending changes appeared when showing the embedded diffs for a moved and changed file (locally moved with changed contents) out of the control of Plastic SCM. Fixed.

5.0.44.531

Note
Private | 2014-02-14

New

Branch Explorer

Branch Explorer: When a new branch is created inside a custom Branch Explorer, it is now added to the selected branches used to create the custom Branch Explorer, so the new branch is visible.

CLI documentation improvements

CLI documentation improvements
Command line interpreter help: Command options reviewed and updated accordingly. Some options were not public, some of them were obsolete or confusing.

Bug

Permissions

Permissions: An advanced sequence of operations (that implies breaking the permissions inheritance chain) over a secured path could end up with denied read and view permissions on the secured path. Fixed.

Semantic Method History

Semantic Method History: Fixed a NullReference exception that could happen when showing an item under some special circumstances.

An error ocurred when renaming the working branch…

An error ocurred when renaming the working branch if the branch name was the same of any of its parents.
For example:
/main/task001/task001
. Fixed.
Diff on GUI failed if an involved Xlink was not reachable. Fixed.

Fixed a bug when sorting by date modified in the…

Fixed a bug when sorting by date modified in the Diff View (diff branch, diff changeset).

5.0.44.530

Note
Private | 2014-02-11

New

Internal changes and improvements

Internal changes and improvements

Merged releases


5.0.44.528

Note
Public | 2014-01-31

Bug

The Proxy Server got stuck with some data request…

The Proxy Server got stuck with some data requests when they involved revisions with size 0. This was just happening when the server was using SQL Server as backend.

5.0.44.527

Note
Public | 2014-01-31

New

Now it is possible to add multiline autocomments

Now it is possible to add multiline autocomments: in the preferences window, "Comment options", select "Custom" in the Comments section.
In addition to User (
{0}
) and Date (
{1}
) you can add new lines (
{2}
).

When creating a workspace it is possible to see a…

When creating a workspace it is possible to see a repository list showing all the repositories in all the registered servers.

Bug

Visual Studio Package

Visual Studio Package: Now it does not set a file as non-readonly when it is not controlled by Plastic SCM.

5.0.44.526

Note
Private | 2014-01-30

New

Branch Explorer filter

Now the Branch Explorer can filter the branches to show. The old conditional format tab has been updated to include new filtering rules.
It is possible to define inclusion and exclusion rules. To get further information about this feature please see the blogpost related to this release in our blog.

Added some shortcuts to the GUI

Added some shortcuts to the GUI:
  • Ctrl+D
    to show branch and changeset differences from the Branches View, Changeset View and Branch Explorer.
  • Ctrl+V
    will focus an item in the Items View if you have copied the item path in the clipboard.
  • The diff view (diff branch, changeset) uses the following shortcuts:
    • Ctrl + Alt + +
      to navigate to the next file
    • Ctrl + Alt + -
      to navigate to the previous file
    • Ctrl + Shift + Alt + +
      to navigate to the last file
    • Ctrl + Shift + Alt + -
      to navigate to the first file
    • There is no need to focus the differences control to navigate through differences (
      Ctrl+ + or Ctrl + -
      ).

Bug

When the result encoding is set to NONE, mergetoo…

When the result encoding is set to NONE, mergetool will check the contributors encoding instead of saving the result without encoding.

cm ls
command using
--tree
or
--selector

The cm ls command did not show proper information if the --tree option was used along with a workspace or a non-existent path. Fixed: Now, if --tree or --selector="rep..." are specified, the path provided must be a server path (/dir/file.txt), not a workspace path (C:/Users/myuser/mywk/dir/file.txt).

Documentation

Documentation: cm help reviewed in depth and fixed several issues regarding spelling and formatting.

5.0.44.523

Note
Public | 2014-01-23

New

Now the diff command can download the content of…

Now the diff command can download the content of the changed (modified, added and moved) items to a given folder using the option
--download
.

5.0.44.522

Note
Public | 2014-01-21

New

Maven

Maven: Implemented Plastic SCM Maven SCM plugin, according to the plugin specifications.
The commands the plugin supports are:
* scm:add* scm:branch* scm:checkin* scm:checkout* scm:tag* scm:update
The scm connection spec for a pom.xml file, has the following syntax (in one single line):
scm:plasticscm:[objectSpec]@[rep:]repository_name@[repserver:]@servername:portnumber[:path:repository_path_to_download]
where:
"objectSpec" is: (br:/name | cs:N | lb:name)"repository_path_to_download": is only affected by the checkout and update commands.
Example of repository path "/src/main/java/myapp".
(The repository path must exist in the branch, label or changeset to download).
Example:
"scm:plasticscm:br:/main/Rel1.1@thirdpartytools@blackpearl:8087"
Note
The plugin is not provided by the installers. A manual installation in the maven repository is required instead (using the "mvn install:install-file" or "mvn deploy:deploy-file" plugins). Please, contact support (support@codicesoftware.com) to get the plugin .jar binaries.

Performance improvements

Performance improvements
The changeset trees were not correctly cached by the server when they contained xlinks. It could break the performance in some scenarios with large trees and xlinks. Fixed.

Performance improvements

Performance improvements
The update operation performance has been improved significantly when working with cloaked items.
Example:
Workspace with 192.818 files, 33.877 folders and more 400 cloaked rules:Version 5.0.44.519Update (Nothing to update) * With cloaked: 34102 ms * Without cloaked: 18127 msNowUpdate (Nothing to update) * With cloaked: 14867 ms * Without cloaked: 17722 ms

Bug

Update command

The update command now is able to work correctly (download changes) with the exception rules in the cloaked system. It means that: cloak /src except the /src/code/lib folder and its content will work fine now.