5.x release notes
Review release notes for version 5 of Unity Version Control.
Read time 203 minutesLast updated 13 days ago
This document contains all release notes for Unity Version Control major version 5.x, organized from newest to oldest.
5.4.16.918
Bug
Cloud Edition
Cloud Edition: credentials were asked incorrectly during setup. Fixed.Sync View
Sync View: Under certain circumstances, the sync replication view could fail with the following error: 'An item with the same key has already been added'. This error could happen since 5.4.16.809 on 5.4 versions and since 6.0.16.804 on 6.0 versions. Now it's fixed.Cloud Server
Cloud Server: When the encryption keys were incorrectly set, the decryption process was failing with the following misleading error message: 'Padding is invalid and cannot be removed'. From now on, a more descriptive message will be shown: 'Data cannot be decrypted, please ensure your encryption key password is correct'.5.4.16.867
New
Eclipse plugin
Eclipse plugin: Added support to find locally moved, renamed and deleted files. You can find these options by clicking the "options" button in the pending changes view.Windows GUI
Windows GUI: Added links to the documentation in all views (items, branches, changesets, ...). When you click the "information" button in the toolbar, a new "learn more" links to the online documentation.Bug
Server
Server: An error message containing "The object is currently locked. Try later." was shown every time two users tried to perform an exclusive checkout on the same branch at the same time. Fixed.Mac OS GUI
Mac OS GUI: The diff view in the pending changes view was collapsed (not visible) sometimes after closing and reopening the UI. Now it's fixed.Mac OS GUI
Mac OS GUI: When right clicking an item in any view (items, branches, changesets) the selection did not change. Some users requested to change this behavior. Now, when you right click an item in a view, the selection is changed, and then its context menu is displayed.5.4.16.814
Bug
Mac OS GUI
Mac OS GUI: Macplastic crashes if the server throws an 'user unknown' exception. Fixed.5.4.16.809
New
Plastic server can now abort running methods if t…
Plastic server can now abort running methods if the client closed the connection. Suppose the server is running a long method and then the user doesCTRL-C2016-11-03 17:32:25,004 INFO ChannelCall - protocol:plasticproto recb: 29|rect: 0
|sentb: 0|sendt: 0|queuedt: 0|prt: 5703|th: 12|dest: 0|mt: 0|sert: 0|zip: 0
|cpu: 2921| 127.0.0.1|ExecuteSimpleQuery aborted - client conn closed
Small performance improvements in URL parsing to…
Small performance improvements in URL parsing to avoid doing string operations again and again.Optimization during connection creation
Optimization during connection creation: now connections are cached by server and not by full url. It means that whether you invoke the "branch handler" or the "item handler" you can still reuse the same connection.Linux (GTK) GUI
Linux (GTK) GUI: Now, when the user closes the main window, if there is a background operation running (an update, a switch, a merge...) the user will be asked for confirmation, instead of closing the window, effectively canceling the ongoing operation. This matches the Mac OS GUI behavior.TeamCity plugin
TeamCity plugin: The server-side checkout will now set up a workspace to download the first patch contents.Bug
TeamCity plugin
TeamCity plugin: The agent-side checkout failed if the previous build had left changed files in the workspace.Windows GUI
Windows GUI: The 'find in files' search results were not visible in the diff window when the user moved the top splitter before performing the search. Now it's fixed.Gluon
Gluon: The history view disappeared from the details panel after performing a check-in operation (and then closing the check-in view) from the Workspace Explorer. Now it's fixed.Linux (GTK) GUI
Linux (GTK) GUI: now, the GUI will not throw an exception if an icon is not found. This can happen if the theme directory is not correctly located.5.4.16.806
New
The server can now force a given minimum client b…
The server can now force a given minimum client build number, so that sysadmins can better handle upgrades and make sure their users are updated to at least a given build number. The 'server.conf' flag can now be configured not only with "true" and "false" but also with a given build number as follows:Remark: this check forces both clients and other servers connecting to this one, to be at least upgraded to a given build number.<ForceBuildNumberMatch>800</ForceBuildNumberMatch>
Plastic Tube Windows GUI improvements
Plastic Tube Windows GUI improvements. Implemented a number of improvements in the Tube GUI:- When editing the access to a repo you are sharing with someone, the button to apply changes now says "Apply" instead of "Edit" which was confusing.
- Each time you share a repo with a new user, or remove a user, or edit his access, the selection of the repo is kept.
- If a server is not reachable, the process continues. Before it failed, which made it hard to use.
- Much better progress for remote servers: now the GUI shows which remote server (tube) and repo is accessing, instead of just being silent as before.
- Now it is easy to see if a remote user is connected or not. Connected users are displayed first and a different icon is used.
Mac OS server
Mac OS server: opening the server application bundle (by double-clicking on its icon or otherwise) will now open a descriptive website detailing the available administration/configuration actions on Mac.UserVoice
UserVoice: Keyboard shortcuts in the diff viewer don't always work. Now it's fixed.Bug
Windows GUI
Windows GUI: Diff window: The branch name was overlapping the branch GUID when the name was too long. Fixed.ImageDiff
ImageDiff: The "differences" button was not correctly enabled sometimes when showing image differences in the pending changes view or the diff view. Fixed.Linux (GTK) Mergetool
Linux (GTK) Mergetool: Sometimes the application got stuck when exiting. Fixed.Windows GUI
Windows GUI: Version tree 2D was showing a null reference error when clicking on a branch and the differences panel was visible. Fixed.Windows GUI
Windows GUI: Fixed an error when launching annotations from the diff viewer.5.4.16.803
New
TeamCity plugin
TeamCity plugin: The repository revisions needed to build a server-side checkout patch will be retrieved using a single call from now on.Command line configuration tools
Command line configuration tools: TheclconfigureclientCommand Line Interface
Command Line Interface: Thecm catMac OS GUI
Mac OS GUI: The focus and the scroll position is now kept after checking out, renaming and moving files in the 'Items' view.Mac OS GUI
Mac OS GUI: Dynamic views sizes (such as 'history', 'shelves', 'changesets',... ) are now preserved among application restarts.plasticlogstats server utility gets a 'concurrenc…
plasticlogstats server utility gets a 'concurrency' subcommand to calculate the number of concurrent calls inside the server at a given moment. The new command implements an interactive mode that:- Allows you to list the call segments with concurrency (periods with 1 or more calls in the server).
- Sort the segments by max concurrent calls, date, or segment length.
- Quickly identify slow (>500ms) and super slow (>1sec) calls.
- Navigate the calls inside each segment.
- Group the segment by minute and navigate segments in the minute.
plasticlogstats is now able to export to XML and…
plasticlogstats is now able to export to XML and CSV for easy Excel analysis of channel call files. Example: grep ChannelCall of several files and analyze them all together:grep -a -h ChannelCall plastic.debug.log.txt.20161124 plastic.debug.log.txt.20161125 | plasticlogstats.exeexport --csv=201611-analysis.csv
plasticlogstats gains a new 'analyzer' mode. It l…
plasticlogstats gains a new 'analyzer' mode. It lets you easily and quickly analyze ChannelCall logs to find hot spots, slow calls and more. It is a text based GUI, fully interactive, that basically replaces the analysis we used to do with Excel and pivot tables. plasticlogstats uses less RAM and is much, much faster. Features:- Group all calls by day.
- Group by hour.
- Group by method.
- See methods inside each group - and regroup from here in days and hours.
<500ms500-1000ms>1000msplasticlogstats.exe analyzer --file=allchannelcall.txt
Bug
Eclipse plugin
Eclipse plugin: Sometimes, the content of revisions when diffing two changesets/labels was not correct. Fixed.TeamCity plugin
TeamCity plugin: the server-side checkout was skipping all xlinked contents in the first build. Fixed.ImageDiff
ImageDiff: The image diff viewer displayed an incorrect background color in the properties viewer. Now it's fixed.Mac OS GUI
Mac OS GUI: The 'Branch Explorer' view drawing was incorrect after changing the zoom level. Fixed.When a Plastic client can't reach a server, it tr…
When a Plastic client can't reach a server, it tries to use theserveralias.confWindows GUI
Windows GUI: When editing differences (pending changes view or diff view), the tab key was not accepted. Now it's fixed.5.4.16.802
New
Linux packages upgrade to Mono 4.6.2.7
Linux packages upgrade to Mono 4.6.2.7! We have just upgraded our Mono distro to 4.6.2.7. This means both Linux clients and servers benefit from a newer and faster runtime. We have been performing extensive testing of the new 4.6.2.7 after finding a crash with the previous Mono 4.3 under heavy load conditions. We ran load tests on the new 4.6 (100 concurrent clients doing non-stop operations – means way much bigger load than a setup with 1000 developers) and weren’t able to reproduce any crashes. The performance under heavy load is also much better (response times were 10 times faster on average on our load test scenario). We also stress tested the GTK client running for +10 hours non-stop with automated testing (UI automation) and we didn’t find any issues.5.4.16.801
New
ForceBuildNumberMatch flag in server.conf now mea…
ForceBuildNumberMatch flag in server.conf now means the client build number must be greater or equal than the server. Before it just meant 'equal' but this gives more flexibility to force users to upgrade to newer versions.5.4.16.800
New
TeamCity plugin
TeamCity plugin: The branch name couldn't be set to a variable because it was required to start with the '/' character. This restriction has been removed. Also, Plastic changesets will be identified just by their changeset ID numbers instead of using a complex string ('cs: (guid:').Bug
Gluon
Gluon: There was an issue in Gluon preventing users to create repositories on Cloud during the configuration of the tool. Fixed.5.4.16.799
New
CodeCollaborator
CodeCollaborator: A CLI client to send Plastic SCM differences to CodeCollaborator has been implemented for Windows. It can be found in the Plastic SCM client directory: codecollaboratorclient.exe. Diffs from branches, changesets or changeset intervals can be used. A configuration file named ccollabclient.conf needs to be placed in the regular client configuration directory (typicallyC:\Users\your-user-name\AppData\Local\plastic4-
: the target CodeCollaborator URI
server -
: the user name to be used to authenticate
login -
: the password to be used to authenticate
password
This file can be created through the 'configure' CLI parameter, which will prompt the user for each of these three values. The password value will be encrypted to prevent it from being stored in plain text. WARNING: There's still a limitation regarding the deleted revision diffs. The diff viewer doesn't display the deleted file contents. We're working to solve that issue as soon as possible. This is the command syntax:server=https://mycodecollab.server.comlogin=userpassword=mypwd
Usage: codecollaboratorclient <brSpec|csetSpec|csetRange> [--title <reviewTitle>] [--id <reviewID>] codecollaboratorclient configure codecollaboratorclient -h|--helpExamples:Create a review of branch /main/task1346 in repository myrep@myserver:8084 : codecollaboratorclient br:/main/task1346@myrep@myserver:8084Create a review of changeset 8947 with title "My review": codecollaboratorclient cs:8947 --title "My Review"Add the difference between changesets (536, 539] to the review with ID 6473: codecollaboratorclient cs:536-cs:539 --id 6473
Bug
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: under some circumstances, browsing the repository list of a remote repository server could end up mismatching the credentials of the local server, making following operations from the GUI fail until it was manually restarted. Fixed.Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: The diff on the "Pending changes" view was showing, for certain types of image files, the binary content of the file, instead of the relevant properties of the revisions (changeset, size, created by, and modified date). Fixed.Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: When there are checked out files in the workspace, the so-called 'checkout changeset' that appears in the 'Branch Explorer' view (the changeset with dotted border and a 'home' icon) was not navigable using the keyboard. Now it's fixed.Mac OS GUI
Mac OS GUI: the 'Open with...' dialog was not showing up correctly on the newest versions of Mac OS. Fixed.5.4.16.798
New
Server
Server: The ldap connection is rebooted every 1000 requests to avoid memory leaks of the Novell.Directory.Ldap library.5.4.16.796
New
Server
Server: Now it is possible to customize ldap requests timeout. To do that, add a new entry in theserver.conf<LdapTimeoutSeconds>10</LdapTimeoutSeconds>
Server
Server: Improvements in ServerStats log: cache counters are now printed, GC info is formatted for easier grepping.Server
Server: Improved thread id and user information in the log to ease debugging.- Threads have been cataloged in types so it is easier to debug complex heavy load scenarios. See thread types below.
- Every DEBUG line in the log will now print the cataloged thread id (a prefix + the managed thread id).
- UserId will be now printed on each DEBUG call by default (current users will need to update their loader.log.conf).
- The channelcall log now includes user information so it is now easier to group calls (not only IP like before).
W- Worker thread: Plastic threadpool threads attenting method calls.NetworkThread- Single thread to launch all socket receive async operations.A- Async thread: system threadpool thread attending socket receive async operations.Main- Main process thread.Audit- Audit log thread.ActivityScheduler- ActivityScheduler thread.AutoDiscovery- AutoDiscovery service thread.InitServices- Thread used to start up the system in Windows service and Unix daemon modes. Not used in Console mode.R- Replication thread: threads launched to run replicas.S- Tcp and SSL socket accept threads: there is one of this threads for each port the server listens on.Udt- Udt socket accept threads: one of this for each Udt port the server listens on.Tube- Tube server thread connecting to the remote tube server and accepting requests.ConnCollector- Single thread closing unused connections to other servers every 30 seconds.GitHttpServer- Git http server thread accepting requests.GitHttpServer- Git tcp server thread accepting requests.GitServerRequest- System threadpool thread to attend a GitServer request.GitMappings- Thread calculating object mappings for the GitServer.
5.4.16.795
New
Server
Server: The performance sorting differences has been greatly improved (up to 20x faster than before). This process takes part in several Gluon operations (check-in, update, configure workspace, status and more). All of them will take advantage of this improvement.Windows, Mac OS and Linux installers
Windows, Mac OS and Linux installers: Now, installing a Cloud edition over a Team edition will be gracefully handled during the installation / upgrade process. Plastic will detect such scenarios, and client & server configuration tools will be automatically launched to finish the required configuration changes. The same happens when installing a Team edition over a Cloud edition. REMARKS: Upgrading from Team Edition prior to 5.4.16.795 to Cloud Edition 5.4.16.795 (or higher) will still require to manually runplastic --configuremacplastic --configuregtkplastic --configureMac OS GUI and Mac OS Mergetool
Mac OS GUI and Mac OS Mergetool: The 'Find' action is now available for all (text)file viewers: the 'Differences' panel in the pending changes view, the 'Differences' window for branches and changesets, and the 'diff/merge' panels in Mergetool.JIRA extension
JIRA extension: A new parameter named 'Issue query limit' has been added to the extension configuration parameters. It is used to manually tune the maximum number of returned results in the 'create branch' dialog. Its default value is 50, and it can be set to any positive number.Windows GUI
Windows GUI: PlasticDrive (a virtual drive for Windows to mount changesets and be able to browse them using regular tools): The revisions cache path used by PasticDrive to store temporary files can now be configured (two different options):- Specifying a new configuration file, named .Example of
plasticdrive.conffile contents:plasticdrive.conf
cachepath=C:\tmp\plasticdrivecache
- Mounting a plastic changeset by using the command line. Example of execution:
plasticdrive.exe cs:1@default@localhost:8084 --cachepath c:\tmp\plasticdrivecache -g
Bug
Gluon
Gluon: The filter textbox of 'Changesets' view appeared empty when Gluon application was restarted, but the previous filtered text was being applied indeed. Now it's fixed, and the filtered text is remembered between application restarts.TeamCity plugin
TeamCity plugin: Leaving the 'branch spec' field empty resulted in a null pointer exception. Fixed.5.4.16.793
New
Move changesets to a different branch
Move changesets to a different branch! The top UserVoice request has been released: Move changesets to different branch It helps in a very common scenario: you checkin to the wrong branch by mistake. Now you can move these changesets to the branch were they belong. The feature is supported both from the command line and the 3 GUIs (Windows, Linux, Mac OS X). Command Line Client: thecm changesetcm changeset movecm changeset remove-
deletes a changeset from the repository. Please have in mind that the target changeset must fulfill some requirements. See command help (
cm changeset remove <changeset-spec>) for further detail.cm changeset remove --help -
moves a changeset and all its descendants in the same branch to an empty branch. If the destination branch doesn't exist it will be created in the process. See command help (
cm changeset move <changeset-spec> <branch-spec>) for further detail.cm changeset move --help
Branch Explorer filters now available on Mac OS X
Branch Explorer filters now available on Mac OS X. A new submenu called 'Branch explorer' has been added to the 'Branch Explorer' view context menu. This new submenu contains the previous 'Go to branch base' action and three new actions: 'Filter selected branches', 'Filter selected and related branches' and 'Filter pending merges for selected branches'. Each of them will refresh the 'Branch Explorer', showing only those branches affected by the selected filter. A new 'Remove filter' button will appear. Clicking on it will clear the filter and refresh the 'Branch Explorer' view using the previous conditional filter settings (if any).Windows, Linux (GTK) and Mac OS Mergetool
Windows, Linux (GTK) and Mac OS Mergetool: User voice: Simple diffs in a merge tool Now it is possible to diff the three revisions involved in a merge in a separate window launched directly from the mergetool. To do that:- Click on the new button on the top-right section of the mergetool
- Select the desired diff: source revision with base, destination revision with base, and source revision with destination.
Cloud
Cloud: Improved the exclusive checkout (a.k.a. distributed lock) performance (30% faster than before).Gluon
Gluon: The 'Update report' dialog has been refurbished. The error message for each update conflict has been moved to a dynamic text area on the right hand side of the dialog and errors can be update forced from now on.Server (Linux)
Server (Linux): The server will now run as the 'plasticscm' user, instead of 'root'.Bug
Gluon
Gluon: After deleting or renaming a file in the 'workspace explorer' view, the item position (the scroll position) was unexpectedly changed. Fixed.Mac OS Mergetool
Mac OS Mergetool: Fixed some aesthetical issues- The margin colors were not correctly updated in the result text view when conflicts were edited.
- Sometimes the scroll position was wrong on application startup.
- Fixed clipped text in 'Mark as resolved' button.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: The message 'Can't edit the xlink root' appeared when trying to edit partial read-only xlinks. Fixed.Mac OS GUI
Mac OS GUI: Wrong height and bottom margins in the filter field on 'Available Plastic SCM Branches', 'Server explorer' and 'Changeset selection' dialogs. Fixed.Linux (GTK) GUI
Linux (GTK) GUI: under some circumstances, the GUI could throw an unexpected error. For example, while diffing an item that has no previous revision. Fixed.5.4.16.792
New
Gluon
Gluon: The 'Checkin changes' view now shows a warning message when no changeset is created after a check-in operation. This can happen when files are just checked-out and then checked-in without changing their contents.Bug
Gluon
Gluon: Starting Gluon configuration tool when there is no previous user configuration caused an error when selecting a repository. Fixed.Gluon
Gluon: An error appeared when adding a file on an empty workspace when the workspace was created from Gluon configuration tool. Fixed.Gluon
Gluon: Some panels in the details area were hidden when maximizing / restoring the window size. Now all panels have a minimum size. Also, the 'details' panel preserve the proportion.Windows GUI
Windows GUI: Diff branch/changeset: When clicking the 'analyze refactors' button while a Java file is being loaded in the diff viewer, the following error was shown: 'There was a problem parsing the source file'. Now it's fixed.Server
Server: If the user authentication method is set to 'LDAP' (Oracle LDAP server) and the LDAP tree is very big, the server could not run certain operations sometimes (cm find, cm lrep, cm mkrep...). Fixed.5.4.16.791
New
Branch Explorer multi-selection improvements with…
Branch Explorer multi-selection improvements with search. (Applies to Windows, Mac OS X, Linux).- Now it is possible to select a changeset, find another one using the search, CTRL-click it and do a "diff selected changesets". It is very useful to diff distant changesets.
- Multi-selection and search also works for branches.
- The colors of the selections have been modified so that now it is very clear when you are doing multi-selection (colors are subject to change in coming releases because we are still testing combinations).
Server
Server: The active/inactive users aren't reloaded each hour anymore, improving performance on servers with huge work load.Gluon
Gluon: New context menu options in search dialog New options have been added to the context menu of 'search for files' dialog when right-clicking matched items:- Checkin
- Checkout
- Undo checkout
- Undo changes
- Update
- Open
- Open with
- Open in explorer
Linux (GTK) GUI
Linux (GTK) GUI: The size and position of the application windows are now preserved between application restarts (main application window, 'Switch workspace' window and 'Differences' window).Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Improved look & feel for several dialogs, adjusting them to an unified style, and reviewed some texts (titles and explanations).Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Now it is possible to diff selected chunks of text. To do that:- Select the first text chunk from a 'diff viewer' textbox (pending changes view, diff window, merge window...).
- Choose 'Add diff selection' option in the context menu.
- Select another chunk of text and choose 'Diff with previous selection' option in the context menu.
Diff & Merge tools
Diff & Merge tools: Diff line highlight User voice request: Highlighting of a new line in diffs. Added / deleted lines are now highlighted with a darker color. This way it is easier to distinguish what was really changed, especially for long lines. (Applies to Windows, Mac OS, and Linux GUIs).Eclipse plugin
Eclipse plugin: Improved overall performance when there is no connection with the Plastic SCM server.Bug
Server
Server: The replication process was stopped due to a LDAP exception (LOCAL_ERROR) when trying to resolve an user that doesn't exists anymore in the AD server.Mac OS GUI
Mac OS GUI: The preferences window wasn't being shown in the Cloud Edition. Fixed.Mac OS GUI and CLI
Linux (GTK) GUI, Mac OS GUI, and Command Line Interface for Linux and Mac OS: some special characters were not supported for file and directory names, resulting on an error when handling them from Plastic SCM. Fixed. Please have in mind that there are some unsupported characters on Windows filesystem that Linux and Mac OS filesystems support, and there could be some files added to Plastic SCM from Linux and Mac that might not be available for Windows workspaces. This is not a Plastic SCM related issue, but the way NTFS and Windows handle paths.Windows GUI
Windows GUI: The 'comment' field of the changesets on the 'Explore changesets on this branch' window was clipped on its bottom edge. Fixed.Windows GUI
Windows GUI: The 'help' icon was missing in several views. Fixed.5.4.16.789
New
Server
Server: The active/inactive users aren't reloaded each hour anymore, improving performance on servers with huge work load.5.4.16.788
New
Fifth internal release with Jet backend (filesyst…
Fifth internal release with Jet backend (filesystem-based backend)5.4.16.787
New
Command Line Client
Command Line Client: Command line checkin progress has been improved and now a proper ASCII progress bar is displayed.Checkin operation
Checkin operation: The number of concurrent readers used on the checkin operation can be configured using the 'UploadReadPoolSize' setting in theclient.confclient.confUsing multiple readers on SSD disks improves the upload phase performance significantly.<UploadReadPoolSize>5</UploadReadPoolSize>
Mac OS GUI
Mac OS GUI: New look and feel for the workspace switcher window. It shows workspaces and repositories views inside a Tab control.P4 sync
P4 sync: Preventcm sync p4Ctrl + CBug
P4 sync
P4 sync: Upgraded P4 API used bycm sync p4Windows GUI
Windows GUI: The branch explorer generated for the 'Show pending merges for selected branches' option was showing child branches that were already merged indirectly. Fixed.Linux (Mono)
Linux (Mono): A bug was detected in our bundled mono version. It was preventing child processes to be notified of the closure of their standard input streams. Fixed.5.4.16.784
New
Server
Server: MySQL database connector has been upgraded in order to improve connections handling.Bug
Error "The channel 'normal' is already registered…
Error "The channel 'normal' is already registered" will no longer happen. Initialization of the remoting layer was not correctly protected and under some circumstances 2 threads could end up initializing it concurrently, leading to this error.5.4.16.783
New
TeamCity plugin
TeamCity plugin: The TeamCity's Plastic SCM plugin now allows to track & build changes on multiple branches (a.k.a. 'Feature branches').TeamCity plugin
TeamCity plugin: The 'Configure VCS root' step has been simplified. Instead of requiring a selector, the VCS root will ask for a server, repository and default branch name to track. Also, the 'cm' executable path is no longer required (TeamCity plugin will assume the executable 'cm' is in the PATH environment variable. REMARKS:- Existing projects configured with Plastic SCM VCS roots will need to be reconfigured.
- There's an issue involving the diff of moved + changed files due to limitations on TeamCity API, pending to be adressed.
TeamCity plugin
TeamCity plugin: Server-side workspaces are no longer required. This will improve 'checkout from VCS' step and changes detection performance.Mac OS GUI
Mac OS GUI: Now, every table on macplastic will save and restore your preferences about column ordering and sizing between application restarts. Also, the position of the splitters on each view are saved and resored between restarts.Bug
Mac OS GUI
Mac OS GUI: some windows were not correctly remembering their frame (size and position) between application restarts. Fixed. (Note that some windows such as the preferences window, and all of the dialogs, will still appear centered and with their default sizes).Windows GUI
Windows GUI: The diff window wasn't allowing to edit revision contents on 'text diff' mode when the revision was marked as 'Editable' (it's the same revision as the one loaded in the workspace). Fixed. (Remarks: Edition in 'Semantic diff' mode is still unavailable).5.4.16.782
New
Windows GUI
Windows GUI: The 'Diff' window, the 'Pending changes' view, and the '2D revision tree' view are now able to show image diffs/contents. The following image formats are supported:bmp, gif, jpg, jpeg, jpe, jif, jfif, jfi, png, tiff, tif- Side by side: View both images on two panels (left and right).
- Onion skin: The images are blended. A slider allows to show left or right image.
- Differences: A single image shows the differences between them. This option is only enabled when the size of both images are the same.
- Swipe: View portions of each image moving an slider.
Windows GUI
Windows GUI: Added spell checking when entering comments on 'Pending changes' view and 'Create branch' dialog. Spell check enablement and language preferences can be changed by right-clicking in the comments textbox and using the displayed context menu. REMARKS: In order to enable spell check for a specific language, the windows language pack for that language must be installed.Eclipse
Eclipse: Added a new action that allows 'diff with other label' in the branch explorer's 'label' context menu.Mac OS Mergetool
Mac OS Mergetool:macmergetool/usr/local/binBug
Mac OS GUI
Mac OS GUI: Syntax highlight engine crashed when running 'macplastic' under an account with no admin privileges. Now it's fixed.Mac OS GUI
Mac OS GUI: Fixed a crash loading the preferences dialog in 'Cloud Edition' installer.Mac OS GUI
Mac OS GUI: Themacmergetool5.4.16.781
New
Gluon
Gluon: Improved the way the 'Configure workspace' handles the case-sensitive renamings: the update operation is now able to apply case-sensitive renames in the workspace. See the example below: Given the following repository structure:Before this release, if another user renames the//src/src/Foo.c
/src/Foo.c/src/foo.cNow, a single entry for the//src/src/Foo.c/src/foo.c
foo.c/src/Foo.c/src/foo.cGluon
Gluon: If another user moves a file on the repository, the 'Configure workspace' operation could lead to parent folders of the moved file not to download newly added items on these folders anymore. See the sample below: Given the following repository structure://src/src/foo.c/src/bar.c/doc/doc/map.c
- I have my workspace up-to-date with the described structure.
-
Another user renames to
/src/foo.c/src/qux.c - Now, my 'Configure workspace' view will show the following configuration:
Before this release, clicking the 'Apply' button without changing anything,/ (/)/src (/)/src/foo.c (X)/src/bar.c (X)/src/qux.c/doc (X)/doc/map.c (X)
//src/doc/src/srcWindows GUI
Windows GUI: Improved the look and feel of the diff image viewer. Added Ctrl + wheel support for zooming.Bug
Gluon
Gluon: The 'Configure workspace' operation seemed stuck when there were lot of items ( more than 30K items) involved to load. Fixed.Known issue
Known issue: the 'About' dialog of this release has a typo in the code name: the release name should show 'Diamonds' instead of misspelled 'Diamons'.5.4.16.779
New
Server
Server: Now it is possible to override the ACID isolation level setting for the configured database backend through server'sdb.confdb.confPossible values for isolation level are the following:<IsolationLevel>RepeatableRead</IsolationLevel>
IMPORTANT REMARK: Plastic SCM server already sets the ACID level for the underlying database backend that best performs for each DDBB. We recommend not to touch this setting on your own. For further info, ask Plastic SCM support at "support@codicesoftware.com".ChaosReadCommittedReadUncommittedRepeatableReadSerializableSnapshot
5.4.16.777
New
Mac OS GUI
Mac OS GUI: Added support for Mac OS X Sierra Remarks: Some aesthetical UI glitches are still pending to be addressed.Issue trackers
Issue trackers: Polarion: Added support for distributed scenarios (linked revisions will use changeset GUID instead of changeset ID (integer number)). However, changeset info (such as changeset comment) and its WebUI visualization URI won't be available until the changeset is replicated to the configured Plastic SCM server in Polarion. Remarks:- This update is backwards compatible, so all the linked revisions already added to Polarion using the changeset id will still be browsable.
- The following components should be updated at the same time: Polarion's Plastic SCM extension (the one installed on your Polarion server), and Plastic SCM's WebUI (if you use it alongside Polarion).
Linux (GTK) GUI
Linux (GTK) GUI: Now, the collapsed nodes of the 'workspace explorer' tree are not re-opened between refresh operations if a child node is expanded. The behavior of the items tree is now exactly the same as in the Plastic GUI for Windows and Mac. When a node is collapsed, all its expanded children are collapsed too.Linux (GTK) Mergetool and Mac OS Mergetool
Linux (GTK) Mergetool and Mac OS Mergetool: Now the Mergetool remembers window size between application restarts, correctly saving and restoring the diff window and the merge window position and size.Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Implemented 'Go to source changeset' and 'Go to destination changeset' menu options on Branch Explorer merge links.Command line configuration tools
Command line configuration tools: Some enhancements inclconfigureclientclconfigureserver- clconfigureserver: Now it is possible to configure the database backend from this tool.
- clconfigureclient: Now it auto-detects the server's user authentication mode to automatically ask for the correct credentials. Also, it allows to specify server's SSL port and Plastic SCM proxy server location.
WebUI
WebUI: In order to keep compatibility with Polarion's issue tracker extension last update, changeset contents can now be browsed using both a changeset ID or changeset GUID in the URI.Bug
Gluon
Gluon: Fixed a navigation problem in the 'Explore workspace' view. When the layout is set to 'list mode' (Right click on the 'Explore workspace' panel > 'View as list'), after double clicking a directory on the right side list, the directory item was not correctly selected. Fixed.Mac OS GUI
Mac OS GUI: Several aesthetic fixes- The 'differences' navigation control is now automatically resized to prevent its text from cutting out the navigation buttons.
- The 'History' view now has a progress indicator while downloading two revisions of a file to perform a diff operation.
Linux (GTK) GUI
Linux (GTK) GUI: The 'History' view now has a progress indicator while downloading two revisions of a file to perform a diff operation.Mac OS Mergetool
Mac OS Mergetool: Now, if there are pending unsaved changes, the application will ask the user whether save changes or not before closing.5.4.16.775
New
Mac OS GUI
Mac OS GUI: Enable syntax highlight and line numbers for text files in text editors (diff, merge and plastic tools). These are the supported languages:- Plain text
- ActionScript
- ASP.NET (aspx, ascx)
- ASP.NET (ashx, asmx, asix)
- Boo
- C
- Cg
- Changelog
- C++
- CSS
- C#
- Diff
- F#
- HTML
- IL
- JSON
- Java,
- JavaScript
- Jay
- Less
- Lua
- Makefile
- Python2 v2.x
- Python3 v3.x
- Razor
- Ruby
- ShellScript
- Strings
- Typescript
- Vala
- VisualBasic
- XAML
- XML
"/Users/<the_user_name>/.plastic4/syntaxhighlight/languages.conf"This is a sample file, commented lines starts with <pre>#</pre> symbol:<pre>#syntax language definition by file extension#example:#.js:JavaScript.custom:XML.txt:Plain text</pre>
Mac OS GUI
Mac OS GUI: The changeset/branch/label comment is now selectable in the diff view.Bug
Windows GUI
Windows GUI: The visual diff of the analyze refactors functionality from the diff window was broken since version 5.4.16.771. Fixed.5.4.16.772
New
Mac OS GUI
Mac OS GUI: Improved look and feel for outline and table views (items, pending changes, branches, labels, etc.). Now, the selected rows are highlighted in white color, so the text is more readable. Also, the icon for the selected row in the left sidebar is highlighted in white color.Windows GUI
Windows GUI: When launching the 'Diff...' dialog from an item that is not loaded in your current workspace (Example: the 'Diff...' dialog was launched from 'Browse repository on this branch/changeset' view), the 'Second revision' section didn't allow to select any changeset to compare with. Fixed: now you can choose which changesets or branches you'll be diffing.Bug
Windows GUI
Windows GUI: When the GUI was configured to use a theme different than the 'default' theme, after showing differences for a file that had no changes, a 'Stack overflow' exception appeared. Now it's fixed.Windows GUI
Windows GUI: Diff navigation keyboard shortcuts (Ctrl+N and Ctrl+M) were broken since version 5.4.16.771. Fixed.Windows GUI
Windows GUI: Fixed aesthetical issues in 'Create label', 'Update workspace' and 'Switch to label' dialogs.Windows GUI
Windows GUI: Windows 10 users: The dialog that warns about pending changes on the workspace before a switch operation had the 'Don't ask me again' option hidden. Fixed.Gluon
Gluon: Fixed aesthetical issues in 'connect to server' dialog: if the server name was very long, the ok/cancel buttons were clipped. Fixed.Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: 'Branch Explorer' view: When selecting a branch that has sub-branches, and the click was done in the sub-branch area, the branch was not selected. Now it's fixed.Windows Mergetool
Windows Mergetool: replacing a selection of text on the result box just before a 'deleted' section using paste command instead of keyboard input resulted in a wrong painting of differences. Fixed.5.4.16.771
New
Gluon CLI
Gluon CLI:cm partial configure--ignorecase- If the user types the following command: , the command will work for loading
cm partial configure --ignorecase +/data/teXtures./Data/Textures
Command Line Interface
Command Line Interface:cm listlocks--ignorecase- If the user types the following command: , the command will work for listing locks on
cm listlocks --ignorecase serverpath:/conFIG/enViRonMENt.cnF#cs:499, if any. (It is supposed the /Config/Environment.cnf file exists in changeset tree cs:499)./Config/Environment.cnf
Gluon
Gluon: 'Configuration mode' is now able to automatically unload files from their old location when they need to be loaded in a new location. This is useful when there are files that are checked to be loaded in their new location but they were already loaded in the workspace in an old location. (Before this release, an 'item already loaded' error was shown to the user).Windows, Linux and Mac OS GUIs
Windows, Linux and Mac OS GUIs: Added telemetry to Plastic SCM to track exceptions and useful info that will help on troubleshooting issues.Mac OS GUI
Mac OS GUI: Several aesthetical fixes were made in branch explorer properties viewer, configuration dialogs and pending changes view. Some dynamic texts did not fit inside some labels.Mac OS GUI
Mac OS GUI: AddedCmd + FLinux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Fixed progress message in 'Checkin to another branch' dialog. The name of the newly created branch was not shown.Check in
Check in: The initial step of the 'checkin' operation (generating data to submit) has been improved. On Linux-based OS is 4x times faster. Windows it's 13% faster.Bug
Server
Server: The 'change revision type' command was unnecessarily cleaning the server caches. Fixed.Gluon
Gluon: the check in operation for a moved item with the source parent deleted was failing when the deleted parent was processed before the moved item. Example:If the* move /src/lib/foo.c -> /foo.c* rm /src/lib* cm checkin
rmmove5.4.16.769
New
GitSync & GitServer
GitSync & GitServer: The Plastic '/main' branch is mapped to Git 'master' branch. Now this mapping is also considered for the children branches of '/main' on Plastic, so '/main/task1' is converted to 'master-task1' instead of 'main-task1'. Plastic branches are converted into Git branches by removing the hierarchy and replacing the '/' with '-'. For example: /main -> master & /main/task1 -> master-task1 From now on, every time a Git branch is converted into a Plastic branch, the '-' character is used to recreate the hierarchy in Plastic by keeping in mind the already converted branches. Example: master -> /main & master-task1 -> /main/task1. The '-' character is also allowed as part of the branch name like the following example: master -> /main, master-fix-5.0 -> /main/fix-5.0 & master-fix-5.0-task1 -> /main/fix-5.0/task1Gluon CLI
Gluon CLI: The behavior of the--ignorefailedcm partial checkinBug
Gluon
Gluon: 'Update' operation from item context menu: The 'move' operations were only applied when updating the whole workspace. But now, if the source and destination of the move are selected, the move operation is correctly applied in the workspace from the context menu's 'Update' operation too.5.4.16.768
New
Windows GUI
Windows GUI: Preserve custom Branch Explorer tabs User voice: Re-open custom branch explorers when restarting GUI Now, 'Custom Branch Explorer' tabs are preserved when closing the Plastic SCM GUI.Checkin
Checkin: The data validation step of the checkin operation has been improved. Now it's much faster than before this release. Tested with 315K items in a SSD disk:- Before this release: 45875 ms
- With this release: 1750 ms
Windows GUI, Linux (GTK) GUI and Mac OS GUI
Windows GUI, Linux (GTK) GUI and Mac OS GUI: Configuration dialogs now shows more user-friendly authentication modes:* NameWorkingMode -> "User name from the computer"* NameIdWorkingMode -> "Name + user ID"* ADWorkingMode -> "Active Directory"* LDAPWorkingMode -> "LDAP"* UPWorkingMode -> "Built-in user and password"
Bug
Jenkins plugin
Jenkins plugin: The use of relative paths in cm shell commands was causing Jenkins to crash on Mac OS X. The CI system is setting the current directory to invalid (out-of-workspace) paths. Fixed.Fixed an issue in protocol auto-detection that en…
Fixed an issue in protocol auto-detection that ended up in a hanged server combined with clients having wrong LDAP passwords massively.5.4.16.766
New
Gluon
Gluon: Added a 'comments' panel below the history panel. This panel will show the comment of the selected revision, or the comment of the loaded revision in the workspace if no revision from the history panel is selected.Bug
Windows GUI
Windows GUI: The automatic comments were duplicated after closing and reopening the pending changes view. Fixed.Mac OS GUI
Mac OS GUI: Wrong window title in the configuration window. The title was: 'Welcome to PlasticSCM Cloud Edition' when the installed version wasn't the Cloud Edition at all. Fixed.Mac OS Server Installer
Mac OS Server Installer: Fresh install from scratch wasn't generating a trial license, causing the server to do not startup automatically. Fixed.5.4.16.765
New
Plastic network protocol released
Plastic network protocol released This release includes official support for the new 'Plastic network protocol' (a.k.a. 'plasticproto'). The protocol is not yet enabled by default, and to take advantage of it, a file namedplasticpipeprotocol.conf- Improved API compatibility. Our intention from now on is to keep all clients and servers compatible (from this release onwards). It means we get rid of breaking compatibility on major releases as we did in the past. All of this will greatly simplify deployment, especially on big teams. Users will be able to upgrade to a newer major release even if not the team members upgrade at the same time. Compatibility checks now happen on a per method basis. Methods can be versioned independently, which helps us evolving the API faster while not forcing all users to upgrade.
- Reduced call overhead: the protocol is much more compact than before, because it is lower level and designed ad-hoc for Plastic. As an example: a simple "cm lrep" request (just the request, not including the answer) was about 400 bytes before. Now it is about 50 bytes when a new socket connection is opened, and only 2 bytes if a connection is reused.
- Increased portability. The new plasticproto makes it simpler to port to new frameworks like .NET Core and implement native clients on mobile devices. This is because it doesn't rely on complex RPC like before, but just on plain sockets.
- Better performance: the lighter API helps during both performance and scalability tests. While the initial version is not dramatically faster than the older on LAN, the plan is to use it to greatly improve data transfer.
- For years, communications between Plastic client and servers (including communications between servers) happened through .NET/Mono Remoting.
- In fact, it was a heavily customized remoting layer, improved for scalability, performance, memory reduction and faster serialization, among others.
- It allowed us to run circles around other version controls (more here) but it had issues regarding major version compatibility.
- We had to freeze the API to keep it compatible, and per-method versioning was not easily doable.
-
The 5.4 client and server will still default to "remoting" protocol except if file named is created in the client binaries folder (and another one in the same place as the server binaries to enable plasticproto to be used during replicas among plastic servers).
plasticpipeprotocol.conf - The format of the file is as follows:
plasticprotocol myserver:8080 superserver:8085 ssl://myserver:8084remotingprotocol otherserver:4040defaultprotocol remotingprotocol // it can also be ‘plasticprotocol’
- You can specify how to connect to each server.
-
If you install this new version on client and server and you want to give plasticproto a try, the following file will do:
plasticpipeprotocol.conf
(This file is meant to be temporary and as soon as we enable protocol autodetection, it will no longer be used).defaultprotocol plasticprotocol
5.4.16.762
New
Server - User Authentication
Server - User Authentication: From now on, Plastic SCM supports LDAP user authentication without anonymous access enabled.Windows GUI
Windows GUI: The 'branch explorer' view now allows to navigate to mergelink's source/destination changesets even if the target changeset is visible on the screen.Windows GUI
Windows GUI: Explore changesets on branch: Added "Changeset Guid" field to the changeset list. And from now on, all the displayed fields (datetime, owner, cset guid, cset id and comments) can be copied to the clipboard.All Platforms
All Platforms: Remember comments in Pending Changes view User Voice: preserve pending changes comments when closing the view 'Pending changes' view comments are now remembered when closing/reopening the view.Windows GUI, Linux (GTK) GUI and Mac OS GUI
Windows GUI, Linux (GTK) GUI and Mac OS GUI: Always display branch comment in Branch Explorer User Voice request: always display branch comment in Branch explorer (not only from issuetracker) The branch info is now displayed as follows in 'branch explorer' diagram:- If an issue tracker is configured in "Task on Branch" mode, the associated task info (if any) from the issue tracker is displayed.
- Otherwise, the branch comment is used to display the branch task info.
Bug
Linux (GTK) GUI
Linux (GTK) GUI: The undo changes operation were wrongly cleaning the checkbox status (checked) of the selected items if the operation was not actually performed (the user refused to confirm it). Fixed.Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: The locking status was not checked when checking in 'changed' items from the 'Pending Changes View'.Gluon
Gluon: Update operation from a directory's context menu: If there are fully checked directories to be updated under the selected elements, the new added items were not downloaded to the workspace. Fixed.5.4.16.761
New
Add operation
Add operation: The 'add' operation has been improved, up to 2x faster than previous release.Cloud
Cloud: The perfomance of 'differences' operation has been reviewed and improved.License reload has been improved. Auto-renewal li…
License reload has been improved. Auto-renewal licences installed with token were not reloaded on server startup. It means that if you added 3 users to your Team Edition, you had to wait a few hours for the server to reload the new lic. Now the server detects the change on startup, so a quick server restart will enable the 3 new users to start working.Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Added context menu for 'checkout changeset' on 'branch explorer' view (dotted line changesets).Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: The 'pending changes' view now allows multiple items to be checked/unchecked by clicking one of the checkboxes in the selected rows.Linux (GTK) GUI
Linux (GTK) GUI: The 'pending changes' view now allows the space bar to be used to activate/deactivate all the checkboxes in the selected rows.Linux (GTK) GUI
Linux (GTK) GUI: The 'Workspace Explorer' view now allows multiple items to be opened at once by selecting several rows and hitting the 'Enter' key.Security
Security: Update-merge failed with checkouts (co/add/rm/mv) under a path where the user lost "read" permission. Now the case is better handled and the following error is returned: "The merge cannot be done because some local changes cannot be processed. Most likely, you don't have the proper permissions to make changes in some of the paths involved. Check the server log for more information." Remarks:- It happens when you download code to /src/project, and then later the admin revokes access to this directory but you already had checkouts inside.
- Update-merge happens when you are on a branch, you have checkouts, you update to latest, and your checkouts are simply moved to latest using a merge under the hood.
- Previously the error message was something like "item 12386 could not be found in the tree. The new tree cannot be built").
Bug
Cloud
Cloud: When a user is member of multiple organizations, the groups membership for that user were wrongly calculated. Fixed.5.4.16.760
New
Changes in Team Edition and Cloud Edition to simp…
Changes in Team Edition and Cloud Edition to simplify the evaluation process. We have redesigned the initial installation and configuration steps to make it much easier and intuitive for users evaluating Plastic SCM. Changes start in the installer and then continue in the initial tool configuration (server selection, credentials and so on) and finally new dialogs help the user creating a new repo or joining an existing project. Summary of installer changes:- Windows Installer: Gluon or Plastic will be started on Windows at the end of the installation, instead of simply finishing and waiting for the user to start the right tool.
- Windows Installer: initial tool configuration happens with non-elevated user now. During installation you're asked for "elevation" (admin rights on Windows) to be able to copy the files under "Program Files". Once the installation is finished, the elevation is reverted so that initial tool configuration happens on the unprivileged user account and not admin's. This worked fine for user in the admin's group, but not for regular users. We finally got it fixed.
- Linux: after configuring with gtkplastic running the first time, the tool was closed and you had to rerun. This has been finally fixed so it is much simpler now.
- All platforms: Cloud Edition credentials dialog: first time you run Cloud Edition client you are prompted to enter your Plastic Cloud credentials. The dialog has been redesigned to make it simpler.
- All platforms: Cloud Edition first steps dialog. Once you enter your credentials, you have to create a new workspace, new repo and so on. Now a new dialog helps you doing all that. It is capable of creating a new Cloud project with a local repo to push/pull changes, join an existing one or simply create a workspace (which is the option for users who are already familiar with Plastic and just want to do some quick operation). We made this change after listening to evaluators of Cloud Edition struggling to complete the first steps. The dialog is even capable of creating a new Sync View to synchronize the local and Cloud repos.
- All platforms: Team Edition server configuration dialog: first time you run Team Edition client you have to configure your server and enter your credentials. During evaluations it is very common that users install a server on their own machine. Now the configuration detects it and directly shows the "localhost:8087" as default server. The dialog has been redesigned too in Mac OS X, Linux and Windows.
- All platforms: Team Edition first steps dialog. Similar to what we did for Cloud Edition. Once you configure your server and enter your credentials, a new dialog guides your steps creating a new "project" (new repo indeed) or joining an existing one, and creating the associated workspace.
- Once you start the Plastic GUIs (Windows/Linux/OS X) for the first time, there are a few hint panels explaining what you can do. It will not be useful for experts, obviously, but we think it can save newcomers a lot of time.
- We have created a new Cloud view. It is just a "repositories view", connected to Plastic Cloud. For Cloud Edition users it will simply list the repos on their cloud organization. For Team Edition users, it will show them that Cloud is there to help, and of course will show the repos in their Cloud organization as soon as they get one. The operations here were all previously doable from the regular "repositories view", but introducing this Cloud button on the GUIs we think we make it much more obvious to use, more visible and easy.
- New "create sync view" option has been added to the "repositories view" and the new "Cloud view". We just make it easier to create a sync view to synchronize a pair of repos (local and Cloud).
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Allow undo unchanged User Voice: undo unchanged 'Undo unchanged' option is now available on the 'Pending changes' view. It is located in the 'Advanced' button on the right side of the main actions toolbar. ('Shelve' option has been moved to the 'Advanced' options on both GUIs).Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: 'Branch Explorer' view: 'zoom' buttons are now available. They are located next to the 'Home' button.Gluon
Gluon: Added a 'Show update report' button on the 'Workspace explorer' view in order to show a list of updated, loaded or unloaded items when an 'update' or 'apply configuration' operation is performed. (The button will remain hidden until the first operation is performed).Windows Installer
Windows Installer: Prior to this release, when a standard user was installing Plastic SCM and the installer asked the user for 'admin' privileges, the Plastic SCM client configuration tool launched at the end of the install process was taking the 'admin' user instead of the standard user that originally launched the installer. This windows limitation was preventing the standard user from being configured to use Plastic SCM indeed. Now, this limitation has been workarounded starting the client configuration tool with the "explorer.exe" process.Windows installer
Windows installer: Now it is possible to choose whether start Plastic SCM classic GUI or Plastic Gluon before the install process finishes.Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Allow checking in to a different branch User voice: add checkin to a new branch to MacPlastic and GtkPlastic Added 'Checkin to a different branch' feature to the 'Pending changes' view (the new option is located in the 'Advanced' button). The changes can be checked in into a new branch or to an existing empty branch (in both cases the branch base will be the current changeset). The changes can be checked in into the selected branch or just moved without checking in them.Global configuration files
Global configuration files: The location for the following config files: 'ignore.conf', 'cloaked.conf', 'hidden_changes.conf', 'writable.conf', 'readonly.conf' and 'filetypes.conf' in Plastic SCM's global configuration repository has changed. Although we still support the previous configurations, now you need to commit the configuration files in the "plastic-global-config" repository following the next folder structure:- Example for MyRepo:
- Example for allrepos
Bug
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: When creating an xlink using the CLI'scm xlinkLinux (GTK) GUI
Linux (GTK) GUI: When a controlled file was locally moved, the items view didn't render the deleted file correctly. Fixed.Windows Mergetool
Windows Mergetool: Several aesthetical improvements Several aesthetical improvements have been made:- Fixed maximize / restore contributor buttons tooltips. All contributors were showing de same tooltip messages ('Maximize src contributor' / 'Restore src contributor') instead of using each own contributor name.
- The 'merge info' panel was not properly closed when the splitter was moved. Fixed.
- Aesthetical improvements on the 'XMerge' wizard.
Windows GUI and Windows Mergetool
Windows GUI and Windows Mergetool: The colored 'diff' regions bars were overlapping the 'search' bar sometimes. Fixed.Mac OS GUI
Mac OS GUI: The 'progress wheel' in the 'dynamic pending changes' view was not properly centered. Fixed.Eclipse plugin
Eclipse plugin: Fixed a NullReference exception when trying to decorate the text in the 'WorkspaceRoot' resource.Command line client
Command line client: Undelete command: Since release 5.4.16.748 thecm undeleterevid:7455.4.16.756
New
Windows GUI - PlasticDrive
Windows GUI - PlasticDrive: Upgrade to Dokan 0.7.4 Dokan 0.7.4 is now required to get PlasticDrive working properly.Core
Core: 'add' operation: The 'add' operation performance has been improved. Our internal benchmark states that initial adding of 51K files and 3.4K folders, the 'add' operation is six times faster than before this release.Bug
Core
Core: 'status' operation: In some circumstances, undoing a move produces other pending changes to dissapear from the list (but their contents aren't undone) in the workspace. Example:In the scenario described above, when the first move was undone (/|_ src |_ lib |_ foo.c (mv-dst) |_ foo.c (mv-src)|_ doc |_ bar.c (additional-mv-src)|_ bar.c (additional-mv-dst)
foo.cbar.cLinux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Merge operation: Branch cherry-pick operation was not working as expected: It was just picking the changes from the last (HEAD) changeset. Now it's fixed, and all changesets in the selected branch are considered.5.4.16.753
New
Windows GUI
Windows GUI: Diff configuration for Office files: Updated 'diff' scripts for Office Word, Excel and Powerpoint to support newer versions of Office. Supported versions: From Office 2007 (except Powerpoint 2007) to Office 2016. Added a new diff script for 'Open Office Writer'. The Open Office Writer diff script is automatically configured on new installations. If you already have diff tools configured, you can configure the diff tool by adding the following line to your 'client.conf' file in the 'DiffTools' section as follows:Remember to add it with a higher priority than the default binary diff tool. You can also configure it on the 'Diff Tools' tab in the 'Preferences' dialog form Plastic SCM GUI for Windows.<DiffToolData> <FileExtensions>.odt;.ods</FileExtensions> <Tools> <string>wscript.exe "C:/Program Files/PlasticSCM/client/diffscripts/diff-odt.vbs" "@sourcefile" "@destinationfile" //E:vbscript</string> </Tools></DiffToolData>
Mac OS Server Installer
Mac OS Server Installer: Updated server log configuration file. This new config file allows to classify log messages in different files according to their severity.Linux GUI (GTK) and Mac OS GUI
Linux GUI (GTK) and Mac OS GUI: Added 'Delete changeset' context menu option to 'Changesets' and 'Branch Explorer' views. This new option is available inside 'Advanced options' submenu.Bug
Gluon
Gluon: The 'History' panel on the 'Checkin' view was not properly refreshed when the lock of the modified file was kept after the checkin operation. Fixed.Axosoft OnTime issue tracker
Axosoft OnTime issue tracker: Fixed connectivity issues between OnTime issue tracker extension and the OnTime API.P4 sync
P4 sync: Improved the way the sync process calculates whether the p4 user has enough privileges to push plasticscm changesets into p4 depot. Moreover, this check is omitted if no extra privileges are required (flag--bypassmetadatatocommentcm syncWindows Mergetool
Windows Mergetool: Fixed a localization issue in the mergetool options menu.5.4.16.750
New
Gluon
Gluon: Now it is possible to add private files inside a directory that exists on the server but it's not configured in the workspace (so, it appears as 'Private' in the workspace explorer). The folder will be automatically loaded in the check-in operation in order to allow adding the file.Gluon
Gluon: Improved 'partial read-only xlinks' feature in Plastic Gluon workspaces where multiple xlinks pointing to the same repository are loaded.FMOD Plugin
FMOD Plugin: The FMOD Studio plugin is now compatible with version 1.08. Please contact us atinfo@codicesoftware.comSecurity
Security: Restrict 'read' access to certain paths (A.K.A. 'pruned workspace' feature, first released in version 5.4.16.746): Denying 'read' access permission to the root item was causing 'null reference' exceptions when trying to update the workspace or view repository contents. Nevertheless, this case was a known limitation. Now, the 'read' permission can be safely revoked from the root item, which will result in receiving an empty items tree. However, we suggest users to deny access to the desired repository instead.Windows GUI
Windows GUI: Now it is possible to show the 'Path permissions' dialog from the 'items' view context menu, even if the repository of the selected item was loaded multiple times in the workspace.Linux (GTK) GUI
Linux (GTK) GUI: New 'Diff' options have been added to the context menu on 'Automatic merges' tab in the 'Merge' view.Bug
Users management server tool (A.K.A. umtoolgui
)
Users management server tool (A.K.A. umtoolguiumtoolguiGluon
Gluon: Sometimes, Plastic Gluon gets stucked in the 'Loading...' status just after opening the application. Fixed.5.4.16.749
New
Server
Server: Introduced a new configuration setting in server.conf to be able to finely tune the different buffer pools used by the server. The new setting has the following format:It is helpful on multi-core servers under heavy load to reduce contention and make better use of the underlying CPU power. This way you can avoid cores to lock waiting on an available buffer, at the expense of consuming more memory. Buffer pools are used to avoid unwanted memory allocations to manage data to be serialized and sent to the client. Continuously allocating and freeing memory is bad in terms of performance and overall memory usage. If your server is under heavy load (teams with hundreds of developers) and you think you can benefit from this setting, please contact us first so we can help you optimize the server. The goal is to create a comprehensive server tuning guide, but it is not yet there at this point.<BufferPoolSizes>DataPacketBufferPool=10;DataPacketPool=20;TreeBufferPool=5</BufferPoolSizes>
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Now it is possible to cancel a 'process all merges' ongoing operation.Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: When 'macplastic' or 'gtkplastic' applications were launched with the '--configure' option and the client configuration file didn't exist, a warning message appeared instead of opening the configuration window. Fixed.Update operation
Update operation: Now, the 'fast-update' feature is able to load an added xlink under an added directory.Bug
Server
Server: Fixed an issue that was able to crash a server when dealing with socket disconnections. It was very unlikely to happen (only seen it twice in a Linux server, never in all other installations). The address of the client was tried to be retrieved when the socket was no longer connected, raising an unhandled exception. Fixed now.5.4.16.748
New
XLinks
XLinks: Added support to allow repositories containing Xlinks to be Xlinked multiple times from a single separate repository. IMPORTANT REMARKS: The following scenarios are not allowed while upgrading to this version:- Merges in progress or pending to checkin: Please finish any merge in progress and checkin/undo its changes before upgrading.
- User-defined changelists with pending changes inside an xlinked repository.
- Please move all pending changes inside user-defined changelist to the default changelist, or checkin/undo them before upgrading.
- Tranformer rules: Please undo any transformer rules in your workspace (or remove the workspace entirely) before upgrading.
Bug
Windows GUI
Windows GUI: 'Branches' view on tree mode was not properly showing the results when using a custom query. If parent branches of those that really match with the query aren't included in the result set of the query, the matched branches won't be shown. Fixed: now, several subtrees with all the expected branches are built and the expected branches are shown on the result view.5.4.16.747
New
Security
Security: The performance of the secured path permissions check has been improved by 80% for big trees ( > 700K items).Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Now, you can merge a selection of files in the Merge view, instead of having to process all merges at once.Jenkins CI plugin
Jenkins CI plugin: Updated to version 2.5. The workspace issue in cross-platform setups (workspaces were being always removed before build, regardless of the "Use update" option value) has been fixed.Bamboo plugin
Bamboo plugin: Added compatibility with Bamboo 5.10. Warning! The Bamboo Plastic SCM plugin is now incompatible with Bamboo versions 3.x and older.Bug
Sync View
Sync View: Very rarely the Sync View failed with a "Binary Stream '0'" error. If you were unlucky enough to see one of these, don't worry, you are safe now. It was a very rare bug, hard to reproduce, that almost nobody suffered. It has been fixed thanks to Unai Landa from Digital Legends ;-). The wild and crazy bug has been around for about 7 years and it was a problem in the network layer. The server zips every response sent back to the client. When the compression didn't succeed (very rare) the client was eating some header bytes incorrectly, expecting compression to happen. Then the error showed up. Fortunately, it has been caught and jailed.5.4.16.746
New
Security
Security: Now it is possible to restrict "read" access to certain paths so that some parts of the repository are not visible to certain users. It is useful in centralized setups where sensitive areas of the project must be protected in such a way they can't even be seen by some project members. The way to secure the paths is very easy: just deny or remove the "read" permission for certain paths (what we know as "secured paths" internally). This way the users without effective "read" permissions won't be able to download (doing update) these secured paths. These paths won't be visible in diffs or merges either. What happens during merge? If a user needs to merge a branch and there are changes in a path he can't "read", the merge will fail notifying that the merge can't proceed due to security restrictions. Note about effective permissions: remember that permissions on paths inherit from repository permissions and can be applied to all branches or a subset of branches. Most relevant behavior changes:- The update operation will not download files and directories where the user doesn't have "read" permission.
- The diff operation will filter out the differences. If the source of the diff can't be seen, the diff won't be visible. (Remember there is always a "src" and "dst" on diffs).
- The merge is rejected if the user doesn't have "read" permission for any change in the source contributor.
- If the user doesn't have "read" permission for the root item, any try to update or view the repository content will end up in a "null exception". This is an ugly one that will be fixed soon, but it doesn't make sense to remove root "read" permission (it is better to deny access to the repo).
- The update-merge (you know, when you are on a branch, you have checkouts, you update to latest, and your checkout is simply moved to latest using a merge under the hood) will fail with a weird message if there is a local change (co/add/rm/mv) under a location where the user doesn't have "read" permission anymore (you had permissions, you downloaded the content, and then someone remove access to this path). The message will be something as follows: "item 12386 could not be found in the tree. The new tree cannot be built". While the error is ugly, we consider it will be an uncommon case, so we decided to release and fix the issue later.
-
When you configure path permissions for an Xlink directory entry, the permissions are applied to the root path of the Xlinked repository instead of the specified path in the parent repository, which will lead to the same issues defined in the first 'known issues' point. This is something we need to get fixed soon. Example: you have => pointing to
/src/subrepo. Well, you try to set permissions to/@cset:1320\@opengl-libbut they are set to/src/subrepoinstead, which is not what you really want to achieve. We'll fix it ASAP./@opengl-lib
- GitSync & GitServer ignore any path based security.
- You must update both clients and servers to take advantage of this new security functionality.
- Diff will show secured paths if the user has permissions to "read" the change in the destination changeset. We still have to decide whether
- If the user has permissions to "read" an item/path, he will have permissions to see all its revisions from the history views.
- In distributed scenarios, enable the following setting inside server.conf: <SecuredPaths>true</SecuredPaths>. This will reject operations when the path permissions of a revision cannot be checked because its changeset was not replicated yet.
- It is recommended to configure the path based security to protect "read access" prior to start using the repository. Otherwise, the admins must take into account that the users will have to run update operations (without local changes) to propagate the new "read" permission rules to their workspaces and avoid further issues with the fast-update, merge & update-merge operations.
XLinks
XLinks: Partial readonly Xlinks are now available We finally added support for "partial Xlinks" (readonly) as requested on top User Voice request. It means that from now on you can Xlink not only to the root of another repo, but also to any path inside, mounting a "subtree" on the parent repo. The reason why "writable partial Xlinks" are not supported yet is because they would overly complicate the merge (what if you have conflicts on parts you are not mounting?). Remarks:- At this point you need to use the command line to create Partial Xlinks. GUI support will come soon.
- This restriction only applies to the Plastic Gluon client. It is not recommended to use the 'partial readonly Xlink' feature in Gluon workspaces where multiple Xlinks pointing to the same repository are loaded. The reason is that Gluon workspaces use a single cache per repository, so if there are multiple Xlinks pointing to the same path with different root paths, it can potentially lead to weird issues.
Gluon
Gluon: Improved 'switch workspace' usability. From now on, when a user switches to a new workspace, other Gluon windows + 'switch workspace' dialog will be closed. (Nevertheless, this new behavior can be overrided by choosing to keep them open with the new option: 'open workspace in a new window'). We did this due to we had feedback from several users suggesting that having too many open windows wasn't comfortable.Windows GUI
Windows GUI: The 'merge' view is now automatically closed after a 'merge-to' operation. Also, the dialog to enter comments has been aesthetically improved.Bug
Cloud
Cloud: The replication operation was being silently canceled on the server side (the client operation finished without errors) when performing big push operations to the cloud server (Example: When the 'introducing data'/'data upload' steps were taking more than an hour). Fixed.Mac OS GUI
Mac OS GUI: Under uncommon circumstances, MacPlastic GUI didn't show the 'create branch' dialog when the context menu option was clicked. Fixed.Mac OS GUI
Mac OS GUI: The 'diff' viewer was not refreshed after undoing all changes when there were private files. Fixed.Mac OS GUI
Mac OS GUI: Sometimes, the application was performing unnecesary server queries in a short period of time to retrieve branch information to be displayed on the 'Workspace Explorer'. Fixed.Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Under uncommon circumstances, an 'item already exist' error was thrown when trying to check-in items from 'dynamic pending changes' view. Fixed.Linux (GTK) GUI
Linux (GTK) GUI: A 'null reference' error was thrown when the 'diff' window was closed when the diffs calculation progress didn't finished. Fixed.Client core
Client core: All Plastic SCM clients were having trouble on application startup if they had global configuration setup enabled ('plastic-global-config' repo) against a SSL server. Fixed.Proxy Server Windows Installer
Proxy Server Windows Installer: The Proxy Server service was unable to start due to a missing file. Fixed.Replication
Replication: 'Push' & 'Pull' operations were failing when the metadata size of a replica was bigger than 2GB. This issue was only affecting to huge replica operations. Nevertheless, the issue is now fixed.Windows GUI
Windows GUI: SemanticSCM: When diffing a declaration from 'visual diff' feature, the newly created 'diff' window was not focused. So, pressing 'Alt + F4' was closing the 'visual diff' window instead of the 'diff declaration' window. Fixed.5.4.16.743
New
Merge operation
Merge operation: conflicts detection on merge operation has been improved: Conflicts involving files with no changes were previously handled as automatic merge conflicts during the merge. These conflicts are now discarded on the server, so they will no longer appear in the conflict list.Bug
Windows GUI
Windows GUI: Sometimes, the 'sync' view replication progress dialog wasn't properly handling 'retry' or 'skip' actions, leading to an infinite number of blocking error messages. Fixed.Mac OS GUI
Mac OS GUI: 'Diff' viewer: The first difference was not focused after loading differences. Fixed.Linux (GTK) Mergetool and Mac OS Mergetool
Linux (GTK) Mergetool and Mac OS Mergetool: Unchanged regions were wrongly painted in the textboxes and splitters as if they were a kind of difference. Also, the red color used for the splitter regions with conflicts was not correct. This bug, which happens since 5.4.16.742, has been fixed.Visual Studio plugin
Visual Studio plugin: When moving or dragging & dropping a changed file in the 'Pending changes' view, the file was accidentally opened. Fixed: the sensitivity of the drag & drop has been decreased (now there is a 15px threshold) to prevent such mistakes. This closes a User Voice request.5.4.16.742
New
Windows GUI
Windows GUI: New 'Show in Branch Explorer' context menu option has been added in 'Branches', 'Changesets' and 'Labels' view. This action shows the selected branch, changeset or label in the 'Branch Explorer', scrolling to it directly (unless the object is not shown due to the current 'Display options' settings, such as date filter). This closes a User Voice request.FMOD Studio plugin
FMOD Studio plugin: The FMOD Studio plugin is now compatible with version 1.07 and higher. Two script files are now needed to enable Plastic SCM inside FMOD Studio: PlasticSCM.sc.js and PlasticSCM.js. Warning! The previous 1.06 plugin script is not compatible with FMOD Studio 1.07 and higher. Please make sure you're using the appropriate scripts for your FMOD Studio version.Gluon
Gluon: Added a new option to add files to the 'ignored list' both in 'pending changes' and 'explore workspace' views.Windows GUI
Windows GUI: New 'owner' field added to 'Explore changesets on this branch'. This closes a User Voice request.From now on, all filter configuration files ('ign…
From now on, all filter configuration files ('ignore.conf', 'hidden_changes.conf', 'cloaked.conf', etc.) will check the global config as well as current workspace config and local client config files. A 'workspacetree' directory will be expected for each configured repository. Users/admins can store their config files inside it. For instance, you can configure your 'plastic-global-config' repository to store a global cloaked configuration for all its repositories:This closes a User Voice request. REMARK: Starting from release 5.4.16.760, the preferred location for these files is the corresponding workspace directory, not 'workspacetree' folder. (Although 'workspacetree' folder will be still supported for backwards compatibility reasons)./allrepos/workspacetree/cloaked.conf
Windows Mergetool
Windows Mergetool: Usability improvements- Diff/Merge: The deleted regions are now represented in the editors.
- Merge: Improved solved/unsolved conflicts visualization. When the conflict is pending to solve, a red line around the conflict is displayed. Once the conflict is solved, the line turns to green color. The border line is also visible in the result textbox.
- Merge: Added a new option in the editor options menu to allow the user to view border lines for unselected regions.
Bug
Windows Mergetool
Windows Mergetool: When using the mergetool to diff two files semantically, the diff options panel, in the lower right, was not being displayed correctly. Fixed. This closes a support ticket.Windows GUI
Windows GUI: Some views didn't remember user selection after refreshing the view (such as 'changesets', 'labels', 'attributes', 'shelves', 'code reviews' and 'attributes'). Fixed. This closes a User Voice request.Windows GUI
Windows GUI: Fixed an error that was happening after creating a repository from a 'Select Repository' dialog invoked from a 'Create Workspace' dialog.Windows GUI
Windows GUI: The 'Select Repository' dialog wasn't being refreshed after repository creation. Fixed.Windows GUI
Windows GUI: SemanticSCM: When clicking in the 'diff' action from the visual diff dialog, the diff window appeared hidden in background. Fixed.5.4.16.740
New
Gluon
Gluon: directory sizes are now displayed on 'Workspace explorer' view. A new option has been added to the workspace explorer view menu which allows to include / exclude private items when calculating directory sizes. Remarks: If private items are excluded, the size of the private files will still appear in the workspace explorer view. However, the private directory sizes will not be calculated and all private items will be discarded when calculating non-private directory sizes.Server - User Authentication
Server - User Authentication: From now on, servers configured to use Active Directory or LDAP authentication will show more descriptive errors if a user cannot be translated during a push/pull operation due to unexpected Active Directory or LDAP server errors.Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Several usability improvements regarding item selection in views have been made:- The 'Pending changes' view now keeps the previous row selection after refreshing the view.
- 'Repositories', 'Workspaces', 'Branches', 'Labels', 'Pending changes', 'Shelves' views now keep the selection after delete/undo operations.
Bug
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Deleting a file/directory from the command line while Plastic SCM client GUI application is running were causing certain view drawing errors. Fixed.5.4.16.739
New
GitServer is out! The Plastic SCM server can now…
GitServer is out! The Plastic SCM server can now be configured to work as a Git server and attend push/pull operations directly from Git clients. It means that you can use the Plastic SCM server as the central server for teams with mixed Plastic and Git users. But even more important: GitServer works as a universal connector so that any Git compatible tool can now be connected to Plastic. Consider Continuous Integration software, code analysis, DevOps, and so on. Learn more about GitServer here.Issue trackers
Issue trackers: Included support for multiples repositories for Polarion ALM issue tracker extension. Now it is possible to configure this feature by unchecking the 'Default Repository' checkbox from the 'Preferences' > 'Issue Trackers' dialog.Issue trackers
Issue trackers: Polarion ALM extension is now bundled with Linux (GTK) GUI.Labels
Labels: Plastic SCM now allows label names to have slash ('/') characters.Windows GUI
Windows GUI: The 'Update operation report' dialog now shows workspace-relative paths instead of absolute paths.Windows GUI
Windows GUI: new 'Save as...' option in the 'Browse repository' window, so you can now save to disk file revisions while browsing a branch or changeset.Proxy server
Proxy server: A whitelist feature has been implemented to automatically accept remote SSL certificates. To do so, create a file namedplasticcached.trustedservers.confproductionserver.mydomain.compre.productionserver.mydomain.com#currently non-trusted servers:#dev.mydomain.com
Mergetool
Mergetool: New conflict resolution actions implemented for Linux, Mac and Windows mergetools:- Keep source contributor & exit -> selects the complete source contents as the merge result.
- Keep base contributor & exit -> selects the complete base contents as the merge result.
- Keep destination contributor & exit -> selects the complete destinaion contents as the merge result.
Linux (GTK) Mergetool
Linux (GTK) Mergetool: improved 'search' feature on diff and merge windows:-
Pressing keys after selecting some text automatically fills the 'search' textbox with the selected text, and search matches are highlighted in the target contributor textbox in a single step.
Ctrl + F -
Pressing navigates to the next match.
Enter - Tooltips to the 'search' buttons added.
Bug
Mergetool
Mergetool: When merging file contents with no conflicts among them, the conflict resolution panel should not appear. Fixed.Linux (GTK) Mergetool
Linux (GTK) Mergetool: diff window was unexpectedly increasing its size when opening a 'search' panel. Fixed.Windows Mergetool
Windows Mergetool: The 'Info about this merge' button was not correctly toggling the 'Info' panel, so it was not possible to close it once it was opened. Fixed.Windows Mergetool
Windows Mergetool: Non-default encodings were not properly detected in the 'Encoding' options menu. Fixed.Mac OS Mergetool
Mac OS Mergetool: 'Split conflict blocks' menu option fixed. The 'Result' panel was not updated with the expected contents after click on this option.Mac OS Mergetool
Mac OS Mergetool: Fixed an 'Index out of bounds' error when changing the file encoding to Unicode.Command line client
Command line client: The 'cm find mv' command was throwing a null exception when it was executed outside a workspace. Fixed.Windows GUI
Windows GUI: Diff window: The title of the 'Find in files' feature in the diff window was unreadable. Also, it was hard to distinguish the 'Find matches in ...' and 'Look in ...' menu options from the background. Fixed.Windows GUI
Windows GUI: The progress icon was not being shown in the default theme and 'Montana' themes in certain windows (such as 'Merge' or the 'Branch / changeset diff' window. Fixed.Issue trackers in Linux (GTK) GUI and Mac OS GUI
Issue trackers in Linux (GTK) GUI and Mac OS GUI: Log checkin info to the issue tracker was not working in 'TaskOnBranch' mode (Bind issues to Plastic branches). Fixed.Linux (GTK) GUI
Linux (GTK) GUI: Dynamic 'pending changes' view (from the 'items' view window): selecting a moved item caused the changed row for the same item (if exists) to be automatically selected also, which maybe is not the desired behavior for the user. Fixed. Now, to submit a 'moved + contents changed' item, it is neccesary to select the item in both categories ('Moved' and 'Changed').5.4.16.738
New
Plastic SCM Cloud Edition release
Plastic SCM Cloud Edition release Plastic Cloud Edition is the sum of the Plastic SCM software plus a Plastic Cloud server and storage all packaged together in a single pay-as-you-go subscription. Teams can forget about managing infrastructure and licensing since this is all handled by Plastic Cloud. Client software and local repositories are installed on the developer's computer, and then they push/pull to the cloud organization (or directly checkin to the cloud using Gluon). Plastic Cloud Edition is designed with fully distributed teams in mind. Teams that don't want to consider running their own servers, and prefer hosting everything online. For further info, please visit the Plastic SCM Cloud Edition page.5.4.16.736
New
Windows GUI
Windows GUI: Now it is possible to diff selected chunks of text. To do that:- Select the first text chunk from a 'diff viewer' textbox (pending changes view, diff window, merge window...).
- Choose 'Add diff selection' option in the context menu.
- Select another chunk of text and choose 'Diff with previous selection' option in the context menu.
Gluon
Gluon: Now, a warning message is shown if the communication with the issue tracker system detects an error when submitting the checkin data log.Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: New 'Size' column added to the 'History' view. The column is only shown for file revisions.Mergetool
Mergetool: When the merge window is displayed, the tool now navigates automatically to the first manual confict. If there are no manual conficts, the tool navigates to the first automatic confict, if any.Mergetool Linux
Mergetool Linux: 'search' feature is now available! Just click on the 'Find...' button located at the toolbar, or pressCtrl + FMac OS GUI
Mac OS GUI: The 'Pending changes' view will now display a side panel to link the new changeset to issue tracker tasks. It is required to have an issue tracker extension configured to 'bind issues to Plastic changesets' mode. How to configure issue trackers on Linux: There are two options:- Using global configuration
- Manually editing the issue tracker configuration, an example using our internal issue tracking system (please note it will be different for JIRA, but you get the idea)
.plastic4/issuetrackers/yourserver_port/allrepos/configfile.conf/Users/pablo/.plastic4/issuetrackers/192.168.221.138_6060/allrepos/tts.confFinally, you have to edit theWorkingMode=TaskOnChangesetName=TTS host;Value=tts.com;Type=Host;IsGlobal=FalseName=User;Value=pablo;Type=User;IsGlobal=FalseName=Password;Value=|SoC|veryencrypted;Type=Password;IsGlobal=FalseName=Branch prefix;Value=scm;Type=BranchPrefix;IsGlobal=FalseName=View defect URL;Value=http://tts.com/tts/visualize.php?iddefect={0};Type=Text;IsGlobal=False
.plastic4/client.conf<Extensions><Extension AssemblyFile="/Applications/macplastic.app/Contents/MonoBundle/extensions/ttsextension/ttsextension.dll" /></Extensions>
Mac OS GUI
Mac OS GUI: The 'Create branch' dialog has been completely refurbished. It offers users the possibility to select a pending task from the configured issue tracker to automatically fill in the branch name and comments text fields. Additionally, a request can be sent to the issue tracker to mark the selected task as 'opened'.Bug
JIRA extension
JIRA extension: The 'mark task as open in issue tracker' functionality is now compatible with JIRA >= 7.x.Unity 3D plugin
Unity 3D plugin: Fixed path printing in windows when configuring the working path the first time a project is binded to Plastic SCM as VCS system.Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: If Plastic was configured to use an issue tracker extension in 'Task On Changeset' mode, double clicking the tasks list to add a task to the new changeset didn't properly solve JIRA issue IDs. Fixed.5.4.16.735
New
Linux (GTK) GUI
Linux (GTK) GUI: The 'Pending changes' view will now display a side panel to link the new changeset to issue tracker tasks. It is required to have an issue tracker extension configured to 'bind issues to Plastic changesets' mode. How to configure issue trackers on Linux: There are two options:- Using global configuration
- Manually editing the issue tracker configuration, an example using our internal issue tracking system (please note it will be different for JIRA, but you get the idea)
.plastic4/issuetrackers/yourserver_port/allrepos/configfile.conf/home/pablo/.plastic4/issuetrackers/192.168.221.138_6060/allrepos/tts.confFinally, you have to edit theWorkingMode=TaskOnChangesetName=TTS host;Value=tts.com;Type=Host;IsGlobal=FalseName=User;Value=pablo;Type=User;IsGlobal=FalseName=Password;Value=|SoC|veryencrypted;Type=Password;IsGlobal=FalseName=Branch prefix;Value=scm;Type=BranchPrefix;IsGlobal=FalseName=View defect URL;Value=http://tts.com/tts/visualize.php?iddefect={0};Type=Text;IsGlobal=False
.plastic4/client.conf<Extensions><Extension AssemblyFile="/opt/plasticscm5/client/extensions/ttsextension/ttsextension.dll" /></Extensions>
Linux (GTK) GUI
Linux (GTK) GUI: The 'Create branch' dialog has been completely refurbished. It offers users the possibility to select a pending task from the configured issue tracker to automatically fill in the branch name and comments text fields. Additionally, a request can be sent to the issue tracker to mark the selected task as 'opened' (*). (*): The 'open task in issue tracker' feature won't work with JIRA versions >= 7.x. This incompatibility will be addressed soon.5.4.16.734
New
Gluon
Gluon: Now it is possible to create a repository from 'Create new workspace' dialog.Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Added 'Create XLink' and 'Edit XLink' context menu options in the items view.Windows GUI
Windows GUI: Issue tracker task selection dialog before checking-in changes has been visually improved. Also, showed item paths are now workspace-relative paths.Issue tracker system
Issue tracker system: Issue tracker tasks can now be linked through comment hashtags. Starting the comment with the '#' character followed by the issue key (and optionally followed by a colon) will log the checkin information in the related issue. REMARK: This feature is only available if an issue tracker extension is configured in 'Bind issues to Plastic Changesets' mode. Example: If Plastic SCM is configured to use JIRA, this checkin comment:Will automatically add the checkin information to issue 'TD-136'.#TD-136: Added new texture files.
Triggers
Triggers: A new variable namedPLASTIC_REVIEW_IDBug
Visual Studio plugin
Visual Studio plugin: 'Options' panel in the 'Branch explorer' view, and 'Properties' panel in other views (such as list of branches, labels, changesets ...) where not properly displayed when using the Visual Studio dark theme. Fixed.Mac OS Installer
Mac OS Installer: The 'MacPlastic' and 'PlasticSCMServer' installers were not properly saving some configuration files during upgrade. Fixed.Windows GUI
Windows GUI: Semantic Method History: Selecting any entry on the semantic method history changes list caused an error dialog to appear, leaving the diff control in an inconsistent state. This disturbed the user experience and prevented users from seeing the differences between two method versions. Fixed.5.4.16.731
New
Gluon
Gluon: Update operation over a directory now recurses into its subdirectories.Unity 3D plugin
Unity 3D plugin: Improvements in Gluon support from Unity 3D Plugin:- Assets VCS status now shows remote status flags, such 'Out of Sync' (there are newer changes in the repository) and 'Deleted remotely'.
- 'Get Latest' context menu option has been implemented in order to allow the user to perform update operation over single assets.
REST API Linux
REST API Linux: The Plastic SCM REST API listener app is now also available on Linux platforms! To start the API listener, typeplasticapiLinux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Now it is possible to resolve multiple conflicts in a row in the 'Merge' view. (There is also a checkbox to allow the user to apply the same action for the next conflicts to resolve).Bug
Windows GUI
Windows GUI: Sometimes a 'NullReference' error was displayed in the 'History 2D' view. Now it's fixed.Windows GUI
Windows GUI: The branch explorer's re-layout mode did not work properly. Branches were not moved when pressing up/down arrow keys. Now it's fixed.Windows GUI
Windows GUI: If the preference 'Diff and merge -> Close merge view ... when a merge is completed' is enabled, when using the 'Advanced merge - Merge from this branch to...' feature, the GUI failed with a NullReference exception after the merge was fully done. Now it's fixed.5.4.16.729
New
Unity 3D plugin
Unity 3D plugin: Enhanced Gluon support from Unity 3D Plugin. A new button (named 'Select loaded Assets') is available in Unity's 'Versioning' tab. Clicking this button, the Gluon's 'Configure workspace' view will be show, allowing the user to select Assets to be loaded/unloaded in the workspace. The Assets selection in Gluon automatically selects Unity's '.meta' files if they exist.Unity 3D plugin
Unity 3D plugin: The Unity 3D plugin now show progress when downloading incoming changes (update operation).Windows GUI
Windows GUI: SemanticSCM: Implemented a mechanism to disable Semantic Diff for certain file extensions. Asemanticexcluded.conf%HOMEPATH%/AppData/Local/plastic4semanticexcluded.confThe semantic diff won't be displayed for the following items (server path format):*.h/src/core
/lib/headers/core.h/kernel/kernel.h/src/core/main.cpp/src/core/modules/network.c
Pending Changes
Pending Changes: Improved performance when looking for changes (status command) on disk. Test performed: Having a workspace with: 330967 files and 800 Folders (60.7 GB) Before these performance improvements, the find changes operation took 18 seconds. Before these performance improvements, the find changes operation took 2,7 seconds.FMOD plugin
FMOD plugin: Greatly improved plugin performance by executing commands in a background shell. WARNING: requires FMOD Studio version <= 1.06.xLinux
Linux: The linux packages will now sync the Mono certificates with the machine certificates during the install/upgrade, taking advantage of thecert-syncLinux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: When diffing a branch or changeset and there are no diffs to show, an informative message appears on the bottom message panel to inform about this fact.Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Added default action for shelves view. When double clicking a shelve, a diff window is launched showing the contents of the shelve.Bug
Windows GUI
Windows GUI: 'Diff' viewers: Fixed an 'index out of range' exception using the editable diffs in a border-case scenario: Set 'Ignore EOL and whitespaces' comparison method option and then remove a difference in the last line of the file.Windows GUI
Windows GUI: The tab order in the 'Diff and merge' preferences page was incorrect. Now it's fixed.Unity 3D plugin
Unity 3D plugin: Fixed a 'client authentication mode mismatch' exception during the check-in operation from a workspace that points to a different server than the one configured in theclient.confGluon
Gluon: The main window cannot be resized beyond the screen size. Now it's fixed.Gluon
Gluon: The theme color of the workspace explorer's 'items' tree was not properly restored after entering in 'Configure workspace' mode and come back to the workspace explorer. Fixed.Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: The cloud encryption dialog was not appearing in the replication operation. Fixed.Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: The 'items' view was throwing an error when there was an unresolved xlink in the workspace. Fixed.Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: Several aesthetic improvements Several aesthetic improvements have been made:- Missing 'Shelve' icon in the 'Shelves' view has been fixed.
- Info displayed in the 'About' dialog has been updated.
- Added task bar icons.
Linux (GTK) GUI
Linux (GTK) GUI: Under some circumstances, an 'argument is out of range' exception is thrown when the user changes the selection in the 'Pending changes' view. Fixed.Mac OS GUI
Mac OS GUI: The 'Diff' viewer was not properly refreshed after undoing or checking-in all the changes in the pending changes view. Fixed.Mac OS GUI
Mac OS GUI: Fixed wrapped lines containing tabs in the 'Diff' and 'Merge' viewers.Linux (GTK) and Mac OS mergetools
Linux (GTK) and Mac OS mergetools: when toggling contributors on automatic conflicts, a wrong information was displayed in the conflict resolution panel. It showed that the current conflict was 'non automatic' when it was resolved by the user indeed. Fixed.Linux (GTK) mergetool
Linux (GTK) mergetool: Several aesthetic improvements Several aesthetic improvements have been made:- Fixed file names padding on diff viewer.
- Hide notification message bar when the diff tool is launched.
Visual Studio plugin
Visual Studio plugin: using the dark theme, the 'Differences' textbox couldn't be read because of an inaccurate foreground color. Fixed.Polarion plugin
Polarion plugin: Unable to list newly created changesets after a 'delete changeset' operation. Fixed.5.4.16.726
New
Linux
Linux: Upgrade to Mono 4.3. Starting on release 5.4.16.726 all the Plastic SCM packages for Linux distros depend on our build of Mono 4.3. For months we relied on Mono 3.x, but after detecting stability issues on some distros (specially OpenSUSE 13.2) leading to crashes, we decided to upgrade. The key issue was related to a given zlib packaged on some distros forcing a strange crash on the GTK GUI. We've tested 4.3 for months and it probed to work fine on the scenarios that used to crash. That's why now we decided to upgrade all Linux packages to depend on our own Mono 4.3 custom build. (Compiled Mono Source changeset:https://github.com/mono/mono;b6dfce621f70115cd16e75a743cbbdee5ac6610eWindows GUI
Windows GUI: Added a preference to automatically close the 'merge' view and open the 'pending changes' view after processing a merge. This feature was an User Voice request finally implemented.Visual Studio
Visual Studio: New plugin available to show current workspace selector info inside Visual Studio window title. More info and Source code.Bug
Windows GUI
Windows GUI: The 'Issue tracking' tab on the Preferences dialog wasn't saving some fields after modifying them. Fixed.Mac OS GUI
Mac OS GUI: Fixed some navigation and scroll issues in the 'diff' viewer:- The 'diff' viewer did not navigate to the last line properly.
- The 'current difference' was not properly highlighted when after loading the contents for the first time, or after changing the comparison method.
- The 'diff count' labels were not being displayed correctly when the numbers have more than a digit.
Linux (GTK) GUI and Mac OS GUI
Linux (GTK) GUI and Mac OS GUI: 'Branch explorer' view: When a workspace was not up-to-date, the branch explorer did not display any changeset because the scroll was not correctly set. Now, when this scenario is detected, the scroll is moved to make the last changeset visible.ReviewBoard plugin adapted to correctly parse the…
ReviewBoard plugin adapted to correctly parse the 'cm lrep' command output.5.4.16.725
New
Gluon
Gluon: The context menu 'Add directory tree to source control' was disabled for controlled items when right clicking on a controlled item. Now it's enabled (it adds all private items under the selected item to the source control).Server
Server: performance improvements to support thousands of repositories on a single server:- When a new user is used or an existing user membership was changed, certain unrelated security info was recalculated when it wasn't neccesary. From now on, only the related security info is updated.
- The load of active/inactive users only happens on startup now.
- ActivityScheduler thread was locking the task list on execution. It could end up delaying system initialization if repositories failed to be upgraded. Not a big deal, but fixed.
- The ACLs for all repositories are now loaded on server startup instead of on demand.
Server
Server: Added a new flag toserver.confDatabaseUpgradeDisabledBug
Linux GUI (GTK)
Linux GUI (GTK): Several issues have been fixed on the 'diff' viewer:- 'Null reference' error was shown when closing the diff window before completing the diff calculations.
- 'Collection was modified; enumeration operation may not execute' error was shown sometimes when closing the diff window.
- The diff search layout was broken when entering text on the search box or resizing the window.
5.4.16.724
New
Windows GUI
Windows GUI: Branch Explorer: Now it is possible to enable/disable format rules, inclusion and exclusion rules and reorder format rules. To enable/disable a specific rule, go to the 'Filters and conditional format' tab in the 'Branch Explorer' options and just click on the checkbox located on the rule definition. Don't forget to click the 'Apply' button afterwards. To reorder a format rule, use the button in the rule to move it up. Rules are evaluated from top to bottom order. It means, if a branch or changeset matches more than a rule, the first matching rule is applied, discarding the others.Linux GUI (GTK)
Linux GUI (GTK): The diff tree view and the sync view tree menus now include keyboard shortcuts.Linux GUI (GTK) and Mac GUI
Linux GUI (GTK) and Mac GUI: New informative messages added to the diff viewer: 'identical revisions', 'filesystem permissions changed' and 'encoding changed'.Mac MergeTool
Mac MergeTool: A new options menu button has been added to select 'encoding', 'comparison method' and 'split conflict blocks'.Mac MergeTool
Mac MergeTool: Now it is possible to diff just two text files. To launch a diff just run the mergetool application using the-s=<path_to_left_file>-d=<path_to_right_file>Eclipse plugin
Eclipse plugin: The eclipse plugin can now can import projects from a PSF file with CVS format. To use this feature, go to the 'Package explorer' and choose 'Import' -> 'Plastic SCM' -> 'Projects from a CVS team project set file'.Bug
Server
Server:plasticdGluon
Gluon: If the workspace explorer was configured to show items as a list, items appeared as 'not on disk' (with a red icon) after restarting the app. Now it's fixed.Eclipse plugin
Eclipse plugin: The diff viewer was throwing an error (NullReferenceException) when the diffs set had a xlink. Fixed.Cloud
Cloud: The push operation with more than 50 labels or branches in the replication package threw an 'object reference not set' exception. Fixed.Cloud
Cloud: Edit lock rules are failing on organizations with capital letters. Fixed.5.4.16.721
New
Linux GUI (GTK)
Linux GUI (GTK): Now, the 'pending changes' view monitors the file system for changes detection, increasing the 'pending changes' calculation performance. Previously, each time the user asked for 'pending changes', Plastic SCM walked the workspace directory structure looking for changes. Now, Plastic SCM takes advantage of 'INotify' (when available) to do that. Although the workspace directory structure is walked the first time the user requests showing the 'pending changes', the next requests will only check the notified 'dirty' directories. As a result, the 'pending changes' calculation will be much faster! Important remarks:- This functionality is not compatible with shared workspaces (changes done from a remote machine will not be detected).
- 'INotify' requires a 'watch handle' to be set for each directory in the workspace. Unfortunately, the default limit of watch handles (8192) may not be enough for reasonably sized workspaces, and reaching the limit will force Plastic SCM to disable the usage of this new improvement. So, it is recommended to increase the 'watches' limit to a higher value (e.g. 32768). To do that in Debian, RedHat or SuSE distros, run the following command in a terminal (root privileges required):
If you are running ArchLinux distros, run the following command instead:echo fs.inotify.max_user_watches= 32768 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
echo fs.inotify.max_user_watches= 32768 | sudo tee /etc/sysctl.d/40-max-user-wa
- To force disabling this new feature, add the following line in the Plastic SCM's 'client.conf' config file:
<WatcherEnabled>no</WatcherEnabled>
Gluon
Gluon: Now, private items can be hidden in the 'Explore workspace' view using the context menu option 'Hide private items'.Gluon CLI (cm partial
)
Gluon CLI (cm partialcm partialcm partial configureWindows GUI
Windows GUI: 'Add to ignore list' dialog now allows to edit rules before saving them. This option is also available for cloacked elements. For further info about configuring ignored items, please visit our blog.Bug
Gluon
Gluon: Trying to add + checkin files to a new repository using Gluon, failed with the following error: 'The operation can't be performed in standard workspaces'. Now it's fixed.Cloud
Cloud: The exclusive checkout rules were not working for submodules. They were wrongly stored on their parent repositories. Fixed.5.4.16.719
New
TeamCity plugin
TeamCity plugin: The agent's workspaces are now created in the standard build directory instead of placing them inside subdirectories.Gluon
Gluon: From now on, the workspace path textbox in the configuration window (gluon.exe --configureGluon
Gluon: Connections to remote, non profiled servers are now supported. Gluon will prompt users for the remote server credentials if needed.Gluon
Gluon: SSL certificates from Plastic SCM servers can now be accepted.Linux GUI (GTK) and Mac OS GUI
Linux GUI (GTK) and Mac OS GUI: A new option has been added to the 'pending changes' view in order to enable/disable notifications of newer changes in the current working branch, and optionally apply those newer changes in the workspace.Bug
MergeTool Windows
MergeTool Windows: Fixed an out of range exception when enabling the 'Ignore EOL and whitespaces' option.MergeTool Windows
MergeTool Windows: Fixed an out of range exception using the XMerge feature when the replaced selection was at the end of the file.Client core
Client core: After applying newer changes from the repository from the current working branch in the workspace (a.k.a. update-merge), and the workspace revision of an item had the same content than the server revision recently applied, the workspace revision metadata was not properly updated. As a result, when a further change in that item is about to be checked-in, the checkin operation will fail with a 'The parent revision of the item X is inconsistent with the loaded one in the changeset…' error. Fixed.MergeTool Windows
MergeTool Windows: Fixed an 'ArgumentOutOfRangeException' using the XMerge feature when the replaced selection was at the end of the file.5.4.16.717
New
MergeTool Windows
MergeTool Windows: MergeTool (xmerge!) gets a new look to get ready for 2016! We have improved the overall look and feel of the tool. Now conflicts are clearly highlighted, conflict navigation buttons change color depending on the status and in general everything looks much better. The same tool, but lots of small details changed here and there to make it better than ever.MergeTool Mac OS
MergeTool Mac OS: Mac Mergetool is out! The native mergetool for Mac (Cocoa based) has been released! No need to continue using an external tool to deal with manual merges on Mac, you can finally switch to the familiar Plastic merge style. It is the first release of the tool and there are still things to improve, but it is already usable. The Mac MergeTool is bundled together with Mac Plastic SCM installer package, and the GUI allows to choose the new MacMergeTool as the default tool in the preferences dialog (which will be the default option on fresh installations indeed). While the new tool is fully functional, there are some small remarks and limitations to keep in mind:- Xmerge (tracking moved code feature) is still not available.
- Line numbers and Syntax hightlight not available yet.
- No shortcuts for conflicts navigation yet.
- Some options are still missing: you can't change the comparison method or encoding. The comparison method is set to 'recognize all' by default, which means it won't ignore EOLs & whitespaces.
- Failed to merge files with a single byte encoding that has non-ASCII characters (System.Text.DecoderFallbackException). The workaround for this issue is setting the file encoding to UTF-8. (This issue also affects to Linux GTK MergeTool).
Windows GUI
Windows GUI: New Christmas greetings 'About' dialog5.4.16.712
New
TeamCity plugin
TeamCity plugin: Automatic checkout on agent is now supported REMARK: Path-mapping checkout rules (e.g.+:mypath => mypath/is/now/mappedLinux GUI (GTK) and Mac OS GUI
Linux GUI (GTK) and Mac OS GUI: Requesting encrypted data from cloud server will now prompt the user to enter the encryption key (if there is no previously configured encryption key for that server).Eclipse plugin
Eclipse plugin: Implemented a new diff view in eclipse. This view is displayed after executing the following actions: From branch explorer:- right click + diff changeset (or double click in a changeset)
- right click + diff branch (or double click in a branch)
- select two changesets -> right click -> Diff selected changesets
- right click on resource -> Compare with -> Previous version. This option compares the working changeset with the previous one.
- right click on resource -> Compare with -> Changeset... This option compares the working changeset with the selected one.
- right click on resource -> Compare with -> Label... This option compares the working changeset with the changeset the label belongs to.
Bug
Gluon
Gluon: The cloud encryption password was not requested to the user when the Gluon UI was started in configuration mode (first run or using the '--configure' argument). Fixed.5.4.16.711
New
Command Line Interface
Command Line Interface:cm shellcmGluon CLI (cm partial)
Gluon CLI (cm partial): The--ignorefailedconfigurecheckoutaddBug
Linux GUI (GTK) MergeTool
Linux GUI (GTK) MergeTool: Removed lines in the result textbox are now read-only lines (they cannot be edited as they only indicate a removed line as a result of a conflict resolution). Before this fix, there were some inconsistences when editing the result textbox and there were removed lines in the edited text.Installers
Installers: Fixed some strings in Spanish language that were wrongly displayed due to an encoding issue.Server Database Administration tool
Server Database Administration tool: (a.k.a. 'admintool.exe') The tool was overriding certain configuration parameters when exiting the tool, which in turn caused the server wasn't unable to start. Fixed.5.4.16.710
New
Eclipse plugin
Eclipse plugin: The 'Pending changes' view now allows to launch file diffs when double-clicking an item. Remark: Deleted items don't show differences.REST API
REST API: Two new endpoints have been implemented to address possible URI ambiguities: a)/api/v1/repos/:repname/branches/:branchname/contents?item=:itempathitempathbranchname@repname/api/v1/repos/:repname/branches/:branchname/contents/:itempath/api/v1/repos/:repname/branches/:branchname/history?item=:itempathitempathbranchname@repname/api/v1/repos/:repname/branches/:branchname/history/:itempathBranch naming
Branch naming: The name of a new branch with any leading/trailing whitespaces will be trimmed before creating it.Command Line Interface
Command Line Interface:cm diff{date}{owner}{srcfsprotection}Windows GUI and Gluon
Windows GUI and Gluon: The 'Open in Windows Explorer' menu option was opening folders using the '/root' switch. This prevented Windows Explorer navigation to parent folders of the selected item. Fixed.Bug
Windows GUI
Windows GUI: SemanticSCM: An 'index was out of range' error was thrown when clicking the 'skip format changes' button and there were format changes in the file declaration. Fixed.Windows GUI
Windows GUI: 'New branch' dialog: The 'Switch workspace to this branch' checkbox was disabled while the issue tracker query was still running. Fixed.Windows GUI
Windows GUI: Sorting by size in the 'Pending changes' view was not working as expected. Fixed.Linux GUI (GTK) and Mac OS GUI
Linux GUI (GTK) and Mac OS GUI: Reloading the 'Pending changes' view did not refresh the diff/contents panel. Fixed.JIRA Issue tracker extension
JIRA Issue tracker extension: 'Resolved' bugs were not showing up on the 'Branches view' and 'Branch explorer' view. Fixed.Command Line Interface
Command Line Interface:cm diffCommand Line Interface
Command Line Interface:cm diffTriggers
Triggers: TheTriggerVariablesInstallers
Installers: Fixed some typos in the installer's text fields REMARK: Some strings in Spanish are still wrongly displayed due to an encoding issue, which will be fixed in the next Plastic SCM release.Server configuration tool
Server configuration tool: During the upgrade of the Plastic SCM server, the license could be wrongly overridden. Fixed.Server configuration tool
Server configuration tool: The tool wasn't loading & saving the configuration parameters properly (such as server ports and user authentication mode). Fixed. IMPORTANT REMARK: The Database Administration tool (a.k.a. 'admintool.exe') is still affected by this issue. It could lead to miss some server configuration parameters, so its usage is not recommended until the next Plastic SCM release.5.4.16.707
New
Linux native Merge Tool available in preview mode
Linux native Merge Tool available in preview mode: The new Linux native 3-way mergetool (a.k.a. 'gtkmergetool') is available and it is installed as the default tool on new installations. For existing installations remember to go to preferences and choose the "default" merge tool to use the new software. While the new tool is fully functional there are some small remarks and limitations to keep in mind. They do not prevent users to start testing the new tool and providing feedback though:- The tool doesn't remember the size yet. It always shows up with the same size regardless of the last one you set. It will be fixed on the next release.
- Xmerge is still not available. We'll be adding these soon. Remember, we refer to the technology capable of tracking moved code based on a text-based similarity algorithms.
Linux GUI (GTK) and Mac OS GUI
Linux GUI (GTK) and Mac OS GUI: New context menu options on the 'Branch Explorer' view have been added. Now it is possible to navigate to the branch's base changeset, and changesets allow navigating to their parent changeset.Gluon GUI and Windows GUI
Gluon GUI and Windows GUI: Image preview has been greatly improved. Now, thumbnails are created in higher quality, and the preview panel can be resized to better see the picture details. Also, small icons are displayed at its real size, instead of zoomed.Gluon
Gluon: Selected item in checkin view is preserved (if possible) after refresh, checkin and undo operations. Also, after deleting an item in the checkin view, its parent or a suitable item is selected.Usability improvement
Usability improvement: when you do your first push or push to Plastic Cloud and need to configure encryption settings, the replica is retried after entering the password instead of failing and letting the user do the retry.JIRA extension
JIRA extension: The checkin data log in JIRA will now show a warning message if the communication with the issue tracker system detects an error.Unity plugin
Unity plugin: the 'Gluon mode' configuration parameter is now an optional parameter. By default, the 'Gluon mode' parameter is set to 'false'.Mac OS Installer
Mac OS Installer: Addedclconfigureclient/usr/local/binMac OS Command Line Interface
Mac OS Command Line Interface: ThecmcmWindows GUI
Windows GUI: Added shortcuts to navigate first/previous/next/last file in diff and code review dialogs.- Ctrl + Shift + '-' : Go to the first file.
- Ctrl + Shift + '+' : Go to the last file.
- Ctrl + '-' : Go to the previous file.
- Ctrl + '+' : Go to the next file.
Command Line Client
Command Line Client:cm fast-importAll GUI clients
All GUI clients: 'Size' columns now appear aligned to the right on all Plastic SCM GUIs.Bug
Linux GUI (GTK)
Linux GUI (GTK): Excluding branches in the sync view was taking an unacceptable amount of time when a large number of branches (more than 50) were selected. Fixed.Gluon
Gluon: private read-only items couldn't be deleted. An error 'Access to the path is denied' was thrown. Fixed.Gluon
Gluon: The 'Esc' key was not cancelling the 'undo changes' operation in the confirmation dialog. Now it's fixed.Windows Merge Tool
Windows Merge Tool: In some circumstances, the regions of the contributors in the result textbox are not correctly updated when the result is edited. Fixed. Also, the removed lines in the result textbox (which are drawn with crossed lines), were not correctly updated when the user was editing the result (these lines should be read-only indeed). Fixed.Server configuration tools
Server configuration tools: Theconfigureserveradmintool5.4.16.704
New
Command Line Interface
Command Line Interface: Thecm addcm partial add--ignorefailedServer
Server: Security checks for 'Branch Explorer' view andcm findBug
Linux GUI (GTK)
Linux GUI (GTK): Fixed several error messages that were dumped on the console:- Gtk-CRITICAL **: IA__gtk_widget_add_accelerator: assertion `GTK_IS_ACCEL_GROUP (accel_group)' failed- Gtk-CRITICAL **: IA__gtk_text_layout_get_iter_location: assertion `GTK_IS_TEXT_LAYOUT (layout)' failed- Gtk-CRITICAL **: _gtk_accel_group_attach: assertion 'g_slist_find (accel_group->acceleratables, object) == NULL' failed
Mergetool (Windows)
Mergetool (Windows): When the user clicked on the Windows's 'X' button to close the dialog, the Mergetool didn't ask the user for saving changes. Now it's fixed.Command Line Interface
Command Line Interface: Thecm findon repository5.4.16.701
New
Linux GUI (GTK)
Linux GUI (GTK): Improved 'Diff' window performance when there are a large number of rows. Loading, sorting and filtering now perform faster.Linux GUI (GTK)
Linux GUI (GTK): 'Diff' window: The 'Filesystem permission changes' category has been added to the 'Diff' categories.Linux GUI (GTK)
Linux GUI (GTK): Changed the mouse wheel behavior in 'Branch Explorer' view. Now, the Linux GUI has the same bahavior as the Windows GUI:- "Mouse wheel" -> horizontal scroll.
- "Ctrl + mouse wheel" -> zoom.
- "Shift + mouse wheel" -> vertical scroll.
Linux GUI (GTK) and Mac OS GUI
Linux GUI (GTK) and Mac OS GUI: New 'Options' button added to the embedded 'Diff' views. New supported actions are the following:- change the comparison method (Ignore EOL's, whitespaces or recognize all).
- manually set the target character encoding for each side.
- manually set the syntax highlight (Linux GTK GUI only).
SSL channel
SSL channel: The way to accept and install SSL certificates on the Plastic server from the client side has been improved (works only for admins): 1- Now the client side accept certificate options will be available on the server: add to the store and accept without installing. 2- When a certificate is already installed on the client (manually or by a previous client execution), no user intervention will be needed to accept it on the server. 3- A concurrency issue has been fixed: the same server certificate accepted by different clients concurrently.Cloud Server
Cloud Server: several core improvements to increase performance in security checks when the database is on a separate server. It will also help regular setups with separate server. A full refactor of the security caches was done. Queries of branches and labels should be noticeable much faster (security check on the test env went down from 500ms to only 32ms).Bug
Windows GUI
Windows GUI: SemanticSCM: Fixed an error when the files cannot be parsed. Now, an informative message is shown and the text-based differences are automatically calculated.Linux GUI (GTK) and Mac OS GUI
Linux GUI (GTK) and Mac OS GUI: Opening the 'Items' view when the remote server is not reachable (or invalid credentials were set) resulted in a large number of dialogs being displayed (one dialog per different item revision's branch). Fixed. Now, only a dialog per different repository will be displayed.Linux GUI (GTK)
Linux GUI (GTK): The filter was causing inconsistencies in the visualization when the 'Pending changes' view was showing more than one category (changed, added, moved, deleted, ...). Fixed.Bamboo plugin
Bamboo plugin: Setting up several external agents on the same machine lead to duplicate workspace names. This has been fixed by appending a random UUID to each workspace name.Server
Server: Pushing data to Cloud Server (or an encrypted server) without encryption settings failed to ask for the password and raised an error. It is fixed now and it correctly asks for credentials.Windows GUI
Windows GUI: The 'Item' -> 'Diff' -> 'Diff revisions' dialog was failing with an 'Incorrect object specification' error when typing a changeset number instead of selecting it on the item history dialog. Fixed. Now, the changeset number is not editable and the user must select the changeset from the list of available changesets in the history.5.4.16.700
New
FIPS support
FIPS support: Plastic SCM can now be configured to work on FIPS compliant environments. Once set to work in FIPS mode, both client and server will use only Windows Platform FIPS validated cryptographic algorithms. To configure FIPS, add the following line to yourserver.confclient.confConsider the following restrictions:<FIPSCompliant>true</FIPSCompliant>
- At this point, the server won't start in a FIPS machine until it is configured in FIPS mode. The server log will say "LicenseReader - There was an error reading the license: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.". Once the server is configured in FIPS mode, it will be able to start normally.
-
The server won't start in a FIPS machine with an SSL channel unless there is the PFX certificate file in the Plastic SCM server installation folder to use SSL. The server log will say "WARN Channel - Failed to autocreate sha256 self-signed certificate (file:
ssl-certificate.pfx)."C:\Program Files\PlasticSCM5\server\ssl-certificate.pfx - To use User/Password authentication mode in a FIPS machine, it is necessary to configure the server in FIPS mode before adding users. Otherwise, when clicking OK in the "New Plastic SCM user" dialog, an error message box will appear: "This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.".
- Not compatible with other clients/servers that are not FIPS compliant.
- Not compatible with the cloud server
- Encrypted replication is not available.
Windows GUI
Windows GUI: SemanticSCM: Built-in semantic diff now includes a new 'reformat' option. The new toggle button in the semantic options panel reformats the code before diffing it, so the format-only changes can be ignored.Windows GUI
Windows GUI: Added 'Diff' key shortcutShift + Ctrl + D- Diff two selected changesets on the 'Branch Explorer' view.
- Diff two selected changesets on the 'Changesets' view.
- Diff two selected items on the 'Items' view
- Diff two selected revisions on the 'History' view.
- Diff selected revisions with another revision on the 'History' view.
- Diff selected branch with another branch on the 'Branch Explorer' view.
- Diff selected branch with another branch on the 'Branches' view.
Bug
Mac GUI
Mac GUI: The 'Diff' viewer was not available in Mac OS X 10.11 (El Capitan). Fixed.Mac GUI
Mac GUI: 'Branch Explorer' view: If a merge link was hovered over a changeset, the user was unable to select the changeset. Now it's fixed.Gluon
Gluon: On the changesets view, double-clicking on a group header caused a null reference exception. Fixed.Gluon
Gluon: On the changesets view, double-clicking on the column header panel was wrongly triggering the double-click action on the currently selected row. Fixed.Linux GUI (GTK)
Linux GUI (GTK): The pending changes view was not automatically scrolling to the first difference when switching among files. Fixed.Windows GUI
Windows GUI: SemanticSCM: In some scenarios, the differences were not correctly painted for C language files. Fixed.Windows GUI
Windows GUI: Ampersand ('&') character was not properly encoded on several views (Changesets, Branches, Labels, Blog News...). Fixed.Server
Server: User Management tool (umtoolUnity plugin
Unity plugin: A 'null reference' error was thrown when there are private files that match with an 'exclusive checkout' (a.k.a. 'locking') rule. Fixed.5.4.16.699
New
Mac GUI
Mac GUI: A new native, side-by-side 'diff' viewer is out! The 'diff' viewer has been added to the 'diff branch/changeset' window and to the 'Pending changes' view. It shows differences for changed files and the contents for added, deleted and moved files. The new diff works also for xlinks, directories and binary metadata. This is an initial release, so there are a list of limitations to consider:- Some options are still missing: it is not possible to change the comparison method, syntax highlight or encoding. The comparison method is set to 'recognize all' by default, which means it won't ignore EOLs & whitespaces.
- Partial Xdiff support: it already detects moved fragments, but there are no buttons to navigate to the moved code or show the 'sub-diff' of the fragments yet.
Command Line Interface
Command Line Interface: Nowcm diffAnd get a correct text diff from CLI. All commands can now be configured as follows:diff.exe "@sourcefile" "@destinationfile"
Where "/window diff.exe "@sourcefile" "@destinationfile"
/window/nowindowLinux GUI (GTK)
Linux GUI (GTK): Performance: Improve 'Pending changes' view performance when there are a large number of rows. Loading, sorting and filtering time has been improved significantly.Linux GUI (GTK)
Linux GUI (GTK): A message bar has been added in the embedded diff viewer in order to show the noticeable messages for the user.Gluon
Gluon: The 'Apply configuration' operation now shows a report if something goes wrong loading or unloading files (just like the 'update' operation does).Issue tracker extensions
Issue tracker extensions: Settings can now be customized per repository. Different specific settings for the same issue tracker can be adjusted to work with different Plastic SCM repositories. To get further info about issue tracker global configuration, please visit this link.Jenkins plugin
Jenkins plugin: Added build parameters support Jenkins allows to define certain build parameters) Plastic SCM is now able to use those parameters. Example:- Imagine that there are two build parameters in a project:
branchname: default value (/main)
repositoryname: default value (default)
- These parameters can now be used in Plastic SCM selector using . In this case you could write a selector as follows:
%parameter_name%
REMARKS: When using parametrized builds, the 'PollSCM' feature may not work as expected, because Jenkins performs the polling with the 'LAST USED' workspace, so maybe the selector is not pointing to the expected branch. When using parametrized builds, we recommend setting up two Jenkins projects:repository '%repositoryname%'path "/" smartbranch '%branchname%'
- One for the parametrized build
- Another one to perform the poll with a non-parametrized, static selector.
Bug
Jenkins plugin
Jenkins plugin: When a changeset was a result of a merge, Jenkins was not able to properly present modified elements in 'Changes' chapter. Now it's fixed.Windows GUI
Windows GUI: After checking out a file in the 'items' view, the status column was not properly updated. Fixed.Windows Installer
Windows Installer: Fixed several aesthetic issues in 'server-only' installer.5.4.16.698
New
Linux GUI (GTK)
Linux GUI (GTK): Embedded 'diff' viewers are now capable of showing directory contents, directory filesystem protection changes, binary files metadata diffs and showing diffs of moved/changed files.Eclipse plugin
Eclipse plugin: New actions implemented in 'Compare With' menu- 'Compare with' -> 'Previous revision': Compares the local version with previous version on repository.
- 'Compare with' -> 'Changeset...' : Compares the local version with the version loaded by selected changeset
- 'Compare with' -> 'Label... ' :Compares the local version with the version loaded by selected label
Eclipse plugin
Eclipse plugin: Support for Eclipse-registered comparators when showing diffs has been implemented.Bug
Linux GUI (GTK) and MAC GUI
Linux GUI (GTK) and MAC GUI: In the query views, when there are elements from different servers with same id and repository id, the selection after any operation is not correct. Fixed.Linux GUI (GTK)
Linux GUI (GTK): A 'null reference' error was thrown sometimes when closing the main window when it was opened from 'workspace switcher' window. Fixed.Server
Server: The Admin Tool database migration had issues copying between SQLServer CE and SQLite. Fixed.Windows GUI and Windows Installer
Windows GUI and Windows Installer: Several aesthetical issues have been fixed. Also, fixed alignment in 'XMerge' information dialog.5.4.16.696
New
Eclipse plugin
Eclipse plugin: A new 'Team -> Label workspace' action has been implemented. With this new action, the user can select several projects and label all workspace contents belonging to these projects.REST API
REST API: All workspace-locking operations have been protected against simultaneous requests.Bug
Linux GUI (GTK)
Linux GUI (GTK): The 'diff' viewer was showing an error when clicking on a changed file. Fixed.Linux GUI (GTK)
Linux GUI (GTK): Several fixes have been performed in the embedded 'diff' viewer:- A 'null reference' error was thrown when diffing files with no differences (same contents in left & right revision). Fixed.
- 'Pending changes' view: when selecting a file with no differences, the diff viewer was painting the differences from a previously selected changed file. Fixed.
- Poor performance when diffing a branch or changeset and navigating across the affected files with cursor keys. Fixed.
Branch names containing the '$' character weren't…
Branch names containing the '$' character weren't properly handled when renaming them, causing the rename operation to display a 'branch not found' error message. Fixed.Mergetool for Windows
Mergetool for Windows: In some circumstances, an 'out of range' error is shown when the text of a contributor is restored for a selected conflict. Fixed.5.4.16.695
New
Mergetool for Windows
Mergetool for Windows: New version ofmergetool.exeJIRA issue tracker extension
JIRA issue tracker extension: JIRA Extension now supports the JIRA REST API Checkout this URL to get info about configuring the JIRA Extension.JIRA issue tracker extension
JIRA issue tracker extension: Changeset Guid is now available in the 'checkin log' of JIRA extension. The Guid is written in the Plastic SCM custom field. Find below an example of the logged data:Date: 9/10/2015 12:25:25 PMChangeset 4424@default@localhost:8084 by dhernandezChangeset guid: 5372daf7-f740-4d05-b9d2-a30823907bb2Branch: /main/scm029Comments: Rename csproj filesItems: Changeset 4424@default M /client2008.csproj -> /client2010.csproj M /server2008.csproj.-> /server2010.csproj
Mac OS installer
Mac OS installer: macplastic installer is now compatible with Mac OS 'El Capitan'.Command Line Interface
Command Line Interface: Thecmcm syncUser/Password management tool GUI
User/Password management tool GUI: The lists of users, groups and group members are now alphabetically sorted. The groups are shown before the users.Windows GUI
Windows GUI: 'Permissions' dialogs: The list of users and groups, and the list of permissions are now alphabetically sorted.Bug
Windows GUI
Windows GUI: 'Permissions' dialogs: Fixed an issue which prevented setting the owner of a repository when there weren't secured paths defined.Windows GUI
Windows GUI: 'Permissions' dialogs: Fixed an issue with the 'permissions' panel's scroll which prevented to show the last permission in the list when other permission was clicked.Windows GUI
Windows GUI: Several aesthetical improvements when the language is set to 'Spanish'.Windows GUI and Visual Studio plugin
Windows GUI and Visual Studio plugin: The 'Diff with previous' menu option didn't warn about possible unsaved changes on the right revision. Fixed.Mergetool
Mergetool: The result file could miss a 'new line' character when there was a non-automatic conflict affecting to the last line of the contributor files and the last line of these contributor wasn't an empty line. Fixed.Linux GUI (GTK)
Linux GUI (GTK): The pending changes's diff viewer was displaying an error message when showing the contents of an ignored file. Fixed.5.4.16.694
New
Windows Explorer Integration
Windows Explorer Integration: The Windows Explorer Integration (a.k.a. 'Plastic SCM Shell Extension') is available to be installed again.Encryption config is requested only once instead…
Encryption config is requested only once instead of once per file. Suppose there are 100 files to be downloaded from a server with encryption activated, the config dialog shows up but 'cancel' button is clicked: before it kept asking once per file. Now it only asks once per operation (once per update, for instance).Windows GUI
Windows GUI: SemanticSCM: Usability improvements for moved code blocks in diff viewers: Now it is possible to align the affected moved blocks of each contributor so that the differences can be detected easily.Windows GUI
Windows GUI: A new option to diff two selected files has been added to the 'Items 'view. To use it, just select two files in the view, right click and thenDiff -> Diff selected itemsWindows GUI
Windows GUI: Custom shortcuts can now be specified for the defined 'Open with' applications (Preferences -> Custom "Open with..."- Valid shortcut values are the shortcut enumeration values defined in the .NET Documentation.
- Take into account that you can define some values that can override the existing predefined shortcuts.
Windows GUI
Windows GUI: A 'comments' textbox has been added to the 'create shelve' dialog. The 'comments' textbox is automatically set to the current text value of 'checkin comments' textbox. Also, when applying a shelve to a workspace, the shelve comment is automatically appended to the current 'checkin comments' textbox.Linux GUI (GTK)
Linux GUI (GTK): The provided GTK# binaries have been updated to version 2.12.29. This will prevent the following error message to be displayed on console:Error: (gtkplastic:15873): GLib-CRITICAL **: Source ID <number> was not found when attempting to remove it
Linux GUI (GTK)
Linux GUI (GTK): Embedded diff viewer: Header labels are now text fields in order to select and copy text. Also, the look & feel of the comments in the diff viewer has been reviewed.Linux GUI (GTK)
Linux GUI (GTK): 'Ctrl+F' accelerator key has been implemented, enabling finding an item in the 'Items' view and in the 'Branch explorer' view.Bug
Workspace-relative patterns of global 'cloaked.co…
Workspace-relative patterns of global 'cloaked.conf', 'ignore.conf', etc. files (e.g./src/libWindows GUI
Windows GUI: The 'Extended information' panel (that can be shown in branches, changesets, labels, and shelves views) was not properly updated when the view was refreshed. To update the displayed info, it was necessary to select a different item before. But now this is not required anymore, and the displayed info is properly refreshed for the selected item after the view is refreshed.Windows GUI
Windows GUI: If the 'Extended information' panel of the 'Branches' view is shown after selecting a branch, the 'Issue tracker' info was not displayed. Fixed.Linux GUI (GTK)
Linux GUI (GTK): Several improvements Several improvements have been made:- The scroll is not properly restored in some views after performing certain operations. Fixed.
- The columns of some views didn't have a default width, causing, for example, the comments column grow to adapt to the longest. Fixed.
- Fixed an error trying to diff a branch/changeset from a repository different than the default one.
- The 'update forced' button in the update report dialog is cut. Fixed.
- The directory conflict resolution panel was wrongly restored to the original location after moving it and clicking on a directory conflict. Fixed.
- The application name will be now 'gtkplastic'.
Linux GUI (GTK)
Linux GUI (GTK): Fixed unexpected behavior pressing the 'Del' key in the checkin comments textbox or in the filter textboxes of some views.Linux GUI (GTK)
Linux GUI (GTK): Selecting multiple incoming/outgoing branches (more than 100 branches) in the sync view, or right-clicking on them to display the context menu was downgrading the application performance, even freezing the application. Fixed.FMOD plugin
FMOD plugin: Closing the commit dialog was causing all changes to be reverted without a warning message. Fixed.FMOD plugin
FMOD plugin: The 'revert' action was not refreshing the FMOD project layout. Fixed.5.4.16.693
New
Gluon
Gluon: Now, the checkout operation skips the item that cannot acquire the exclusive checkout. Similarly, the checkin operation now also skips locally changed items that cannot acquire exclusive checkout.Gluon
Gluon: Command Line Interface (cm partial-–ignorefailedWindows GUI
Windows GUI: Improved highlight colors for search results in 'Branch explorer' view. Changed some default colors used for the filters and conditional format rules.Windows GUI
Windows GUI: Autocomments for checkin operation are now auto-refreshed with the new branch name and datetime when switching from a branch to another branch.Merge operation
Merge operation: Now, file conflicts could be resolved with 'Preserve workspace changes' and 'Preserve source changes' options even when no merge tools are defined for those conflicting files.Replication
Replication: Now, the replication operation will fail at the beginning of the operation if the remote server uses encryption and the local server has not been properly configured to work with remote server's encryption. (Previously, the replication operation failed after 'processing metadata' step).Bug
Windows Installer
Windows Installer: SemanticSCM: The Plastic SCM Windows Installer did not include the necessary YamlDotNet libraries to allow external parser interaction. Fixed.Windows Installer
Windows Installer: Reviewed .NET Framework dependencies for Plastic SCM Windows Installer. The server component and some other components (such as SCC plugin and Office plugins) requires .NET Framework 3.5 (CLR 2.0 version), which is not enabled by default in Windows 8 and Windows 10. The installer will ask for the .NET Framework 3.5 if any of these components are selected to be installed. Moreover, fixed the 'vsixpackager.exe' application, which is used to install the Visual Studio Package component, so the installer won't require .NET Framework 3.5 if this component is selected to be installed.Windows GUI
Windows GUI: several fixes on theme configuration have been performed (changed some colors in 'Pending changes' view and 'Diff' viewers).5.4.16.692
New
Linux GUI (GTK)
Linux GUI (GTK): A 'diff' viewer has been added in the 'Pending changes' view. It shows differences for changed files and the content for added, deleted and moved files.Bug
Linux GUI (GTK)
Linux GUI (GTK): Message dialogs were not showing the text message when it contains some special chars (e.g:<>Linux GUI (GTK)
Linux GUI (GTK): Message dialogs were appearing behind the main window sometimes. Fixed.Linux GUI (GTK)
Linux GUI (GTK): In some circumstances, a 'collection was modified' exception is thrown in the items view. Fixed.Linux GUI (GTK)
Linux GUI (GTK): Fixed several error messages which were dumped on the console:Gtk-CRITICAL **: gtk_list_store_get_path: assertion 'iter->stamp == GTK_LIST_STORE (tree_model)->stamp' failed
GdkPixbuf-CRITICAL **: gdk_pixbuf_composite: assertion `dest_x >= 0 && dest_x + dest_width <= dest->width' failed
Gtk-CRITICAL **: gtk_tree_model_sort_get_path: assertion 'tree_model_sort->stamp == iter->stamp' failed
Gtk-CRITICAL **: IA__gtk_tree_selection_select_path: assertion 'path != NULL' failed
Gtk-WARNING **: Failed to set text from markup due to error parsing markup
Gtk-CRITICAL **: gtk_tree_model_sort_iter_nth_child: assertion 'VALID_ITER (parent, tree_model_sort)' failed
Gtk-CRITICAL **: gtk_tree_model_sort_get_value: assertion 'VALID_ITER (iter, tree_model_sort)' failed
GLib-GObject-CRITICAL **: g_value_unset: assertion 'G_IS_VALUE (value)' failed
Gtk-CRITICAL **: gtk_tree_model_sort_get_path: assertion 'tree_model_sort->stamp == iter->stamp' failed
Gtk-CRITICAL **: IA__gtk_tree_selection_select_path: assertion 'path != NULL' failed
Gtk-CRITICAL **: gtk_tree_store_get_value: assertion 'VALID_ITER (iter, tree_store)' failed
GLib-GObject-CRITICAL **: g_value_unset: assertion 'G_IS_VALUE (value)' failed
5.4.16.691
New
Windows GUI
Windows GUI: Now it is possible to save changes usingCtrl + SREST API
REST API: Added 'revision history' feature. Please have a look at the API documentation for further information.Command Line Interface
Command Line Interface: Improved command help output forlreplwkWindows GUI
Windows GUI: SemanticSCM: Built-in semantic diff in the cset/branch diff has a new 'skip format changes' option. It's a toggle button that allows to ignore indentation and EOL changes when the semantic differences are calculated.Gluon
Gluon: Workspace Explorer view: some item icons from the 'Workspace Explorer' view were changed. Locked items are now displayed with a different icon and color.Gluon
Gluon: Checkin operation: Now it is possible to finish a checkin operation submitting non-conflicting local changes and discarding local changes in conflict with server changes (which are reported by the checkin operation). Previously, when any local change was in conflict with server changes, the entire checkin operation was cancelled.Server
Server: Now the client is able to work against an encrypted server. Previously only replication operations could be performed against an encrypted server. The client will decrypt the data during the download operation and encrypt them on the checkin operation. The encryption is configured on the same way than on the servers working against an encrypted server. The encryption is configured using the 'cryptedservers.conf' file. This file contains server - encryption file pairs. The encryption/decryption is performed when uploading/downloading data and the targeted server is included in 'cryptedservers.conf' file. 'cryptedservers.conf' file example:The encryption file contains the encryption method and password (see example below).delta:8085 delta.keymorgan:8084 mrg.key
- :
delta.key
AES128 |SoC|ictrT7pgBSRDJ1m7nOlj96NTl0I23jI7T6K6ADf5X3ry0sDe0InYkOdmyLcpdnX5PzoD5yCphkw=
- :
mrg.key
Supported encryption methods are: AES128, AES192 and AES256. Password can be either plain text or cyphered as any other password in Plastic SCM (using the cm crypt command).AES128 cleanpassword
Issue trackers
Issue trackers: Polarion: Included the new issue tracker plugin for Polarion ALM. This way, 'Branch explorer', 'Changesets' and 'Branches' views are now able to display issue tracking information from Polarion. The new issue tracker extension for Polarion can be configured through 'Preferences' > 'Issue Tracking' dialog.Linux GUI & Mac GUI
Linux GUI & Mac GUI: The checkin results are now logged into the issue tracker's tasks if an issue tracker extension is properly configured.Server
Server: Windows installer: Now, the default backend for new Plastic SCM Server installations will be set to SQLite (instead of SQLServer CE). Remember that SQLite 3.8 was already supported by Plastic SCM Server, including WAL (Write-Ahead Logging). WAL enables SQLite backend users to avoid locking when multiple threads try to read simultaneously from the database.Windows GUI
Windows GUI: 'Diff with previous revision' is now the default action to execute when double-clicking a revision in the 'History' view.Bug
Security
Security: Fixed an 'unhandled exception' error when trying to set an ACL for a revision identifier (it's not supported to set acl's for revisions, but the command was failing after showing an informative message).All application icons were wrongly (blurry) displ…
All application icons were wrongly (blurry) displayed in the Windows task manager. Now they are correctly displayed.GitSync
GitSync: Pushing changes to GitHub resulted in a 'Stream terminated early' error, even if all changes were correctly pushed. Fixed.Server
Server: The server applications 'umtoolgui' and 'admintool' had an incorrect layout in high DPI screens. The issue is now fixed, and these applications are correcly displayed.Windows GUI
Windows GUI: SemanticSCM: Fix a "null reference" error when the files cannot be parsed. Now, a message is shown and the text-based differences are calculated automatically.Windows GUI
Windows GUI: SemanticSCM: The Microsoft C Runtime 2013 dependencies, which are required by the C language parser, were missing. Fixed. Now, they are included in the client installer.Windows GUI
Windows GUI: Comments were not properly refreshed on the 'Items', 'Branches', 'Changesets' and 'Shelves' views after editing and saving them. This issue has been fixed.Windows GUI
Windows GUI: Working with I3 (old school theme), all scrollable views did not scroll using the mouse wheel. The scrollbar did scroll, but the content didn't. Not it's fixed.Windows GUI
Windows GUI: The action bars in the diff viewer were not drawed after changing from semantic differences to textual differences. Now it's fixed.TeamCity plugin
TeamCity plugin: The plugin failed to poll changesets after a Plastic SCM server address/port change or a repository rename. This issue was partially fixed in version 5.4.16.680, but was still failing in some configurations. Now it's fully fixed.Linux GUI (GTK GUI)
Linux GUI (GTK GUI): The side-by-side diff viewer's dependencies were missing. Fixed. Now they are included in the client's '.zip binaries' installer.Linux GUI (GTK GUI)
Linux GUI (GTK GUI): Category titles in the 'Diff' window and 'Pending changes' view were not properly refreshed after applying a filter. Fixed.Linux GUI (GTK GUI)
Linux GUI (GTK GUI): The 'Diff' window was displaying incorrect category icons for merged revisions. Fixed.'Revert-to' operation
'Revert-to' operation: When reverting to a revision that was previously reverted, an error was thrown. Fixed. Now it is possible to revert to a revision several times without undoing changes between revert operations.5.4.16.689
New
Linux GUI (GTK GUI)
Linux GUI (GTK GUI): A new native, gtk-based side-by-side diff viewer is out! The new built-in diff has been added to the 'diff branch/changeset' window. The new diff works for changed files and the contents for added, deleted and moved files. This is an initial release, so there are a list of limitations to consider:- Right now you can't directly diff moved files under the "moved" group. We will add it later. In the meantime, go to the same file under "changed" to see the diffs.
- There are no diffs for xlinks, directories and binary meta-data yet.
- Some options are still missing: you can't change the comparison method, syntax highlight or encoding. The comparison method is set to "recognize all" by default, which means it won't ignore EOLs & whitespaces.
- Partial Xdiff support: it already detects moved fragments, but there are no buttons yet to navigate to the moved code or show the "sub-diff" of the fragments.
Windows GUI
Windows GUI: SemanticSCM: Added support for external language parsers. Follow these steps to configure a custom parser:-
Open or create the 'externalparsers.conf' file located in your Plastic SCM configuration directory (usually )
C:\Users\<your_user_name>\AppData\Local\plastic4 - Add a line to set the parser's executable path for each file extension, as follows:
2.1. Make sure there's no white space between the file extension and the '=' character..pas=C:\MyParsers\pas2yaml.exe
- Once Plastic SCM is started, all files having the defined extensions will be semantically parsed in all diff viewers.
Windows GUI
Windows GUI: Branch Explorer: Replication sources can now be hidden from the options panel in the 'Branch Explorer' view. To do that, open the 'options' panel and press the 'close' button on the replication sources you want to hide. To show them again, just select 'Show excluded replication sources' option and the excluded sources will be shown on their original position. To remove them from the 'excluded' list, press the 'add' button.Replication operation
Replication operation: Improvements on the replication progress on Windows:- Metadata transfer (after fetching data) now has progress.
- Improved localization of the messages during the replica.
- Data transfer on Windows get progress in MB (size).
- Cancel improved on Windows. It can't lock the GUI now.
Bug
Sync View
Sync View: "Cancel" operation has been fixed. Now you can press 'cancel' button and the GUI won't look "hanged up" anymore. In fact it wasn't a server thing, just a GUI thing: the cancel button was disabled and everything looked "hanged up" while it really wasn't. Also improved the status retrieval during replica to make it more responsive for very quick to push/pull branches. Improved texts on the sync dialog so now you know if you're pushing or pulling and from/to where. A "grey panel" was displayed when loading big sync view config files. It is now gone.Windows GUI
Windows GUI: Branch explorer: 'Display options' -> 'Enter visibility/relayout mode'. The explanatory text was not line-wrapped, so the text was not visible. Now it's fixed.Users management server tool
Users management server tool:umtoolguiUsers management server tool
Users management server tool:umtoolgui5.4.16.688
New
Multi-level submodule support
Multi-level submodule support Now a full hierarchy of submodules can be added. It is possible to have repositories as follow:Before only 1 level of submodules was allowed, but now a full hierarchy can be created, which is useful when a certain namespace policy must be enforced. All the submodules inside a given repository are stored inside the same database as the repository, actually using different table name prefixes or schemas in the case of SQL Server. Remarks:default/codicedefault/codice/plasticscmdefault/codice/plasticscm/windowsguidefault/codice/semanticmerge
- A submodule can't be moved to a different repo. It stays on the repo where it was created.
- A submodule can be moved "inside" a different submodule and submodule hierarchies can be freely modified just applying repository rename operations. It means you can start with
And transform the hierarchy as follows:default/codicedefault/codice/plasticscmdefault/codice/plasticscm/windowsgui
And even rename "codice" to "plastic-code" and then:default/codicedefault/codice/plasticscmdefault/codice/windowsgui
default/plastic-codedefault/plastic-code/plasticscmdefault/plastic-code/windowsgui
- When you delete a submodule, you delete all the submodules inside it! Remember that delete doesn't really remove the submodule, it stays on the database and it is just unlinked from Plastic (as happens with repositories).
- A submodule inherits permissions from its parent submodule. When you move a submodule, the permissions from the new parent will be applied.
GTK/Mac GUIs
GTK/Mac GUIs: 'Open' and 'Open with...' context menu options are now available in the 'Pending changes' view.Gluon
Gluon: Usability improvements. When deleting an item from the workspace explorer, the the nearest sibling is focused (instead of the root item as it was done before).Gluon
Gluon: Usability improvements. When typing text in the comments textbox, the focus is preserved even if the 'checkin' view is being refreshed.Bug
Gluon
Gluon: If the workspace is configured with the 'Compare file contents instead of timestamp when determining changed status' setting, the 'workspace explorer view' was showing an error when it was refreshed and a file was delete in the workspace. Fixed.Windows GUI
Windows GUI: Several fixes have been made on the GUI theme configuration (wrong colors on dialogs and buttons).Installer
Installer: The windows installer did not optimize assemblies (NGEN) in some OS, such as Windows 10 or some Windows 8.1. Now it's fixed. The assemblies are optimized during the installation process in background. Remark: The assembly optimization will only be executed if the installation is run with elevated (administrator) privileges. So we recommend to install Plastic SCM with elevated privileges to enforce optimizing its executable files.5.4.16.687
New
GTK GUI
GTK GUI: The diff window now includes a filter textboxAnnotate
Annotate: Little improvement in 'Annotate' view. The column for 'Show whether line was changed in a merge' preference now shows 'Merged' string for affected lines.Bug
JIRA integration
JIRA integration: The Branch Prefix configuration parameter was being ignored when working in the 'Branch per task' mode. Fixed.Triggers
Triggers: The 'merge-to' operation was not firing the server checkin triggers. Fixed.Visual Studio integration
Visual Studio integration: The Visual Studio Package (>=VS2010) did not track moved and renamed files properly. Fixed.5.4.16.686
New
Gluon
Gluon: when sorting the workspace contents by status, folder and files are not mixed anymore.Gluon
Gluon: changeset differences can now be launched by double-clicking on a changeset in the changesets view.Windows GUI
Windows GUI: The issue tracker integration icons on the Windows GUI have been updated.Windows GUI
Windows GUI: 'Attributes' tab icons in 'Branch Explorer' options panel were updated. Some GUI improvements were also performed.GTK/Mac GUIs
GTK/Mac GUIs: If the server auth mode is 'Active Directory' working mode, the client configuration wizard will automatically set the client auth mode to a compatible 'LDAP' working mode to connect to the 'Active Directory' server. User and password texboxes will be shown to fill in the user's LDAP credentials. REMARK: Remember to start the Plastic SCM server with a valid Active Directory user account.GTK/Mac GUIs
GTK/Mac GUIs: Added 'diff selected changesets' context menu option when 2 different changesets are selected either in the 'Changesets' view or in the 'Branch Explorer' view.GTK/Mac GUIs
GTK/Mac GUIs: Added 'diff selected revisions' context menu option when 2 different revisions are selected in the 'History' view.GTK/Mac GUIs
GTK/Mac GUIs: Added a new "Diff workspace contents" context menu option to added/deleted items on the Pending Changes View.GTK GUI
GTK GUI: Accelerator keys have been implemented for major context menu options (same as in Windows GUI).Command line client
Command line client: Improved format string forlreplwk{repname}{wkname}Command line client
Command line client: Thecm status--wrp----wkrootrelativepaths--fp--fullpaths-
command will still print workspace root relative paths by default. The
cm status --xml(or--fp) will print absolute paths instead.--fullpaths -
The and
cm status --machinereadablecommands will remain unchanged, and they will print absolute paths (as they are commonly used for automation purpouses).cm status --short
Command line client
Command line client: Thecm diff--fp--fullpathsCommand line client
Command line client: Thecm log--fp--fullpaths--repositorypaths--fpServer
Server: Theumtoolchangeuserpasswordumtool changeuserpassword username newpassword newpasswordchangeuserpasswordpasswdLinux
Linux: Added Debian 8.1 compatibility. Please have a look at the linux package installation instructions.Bug
Linux
Linux: The client didn't accept a ssl server certificate when replicating against a ssl remote server. It only happened in Linux. Fixed.GitSync
GitSync: When a Git commit contains a directory reference from an old commit (different than the parent commit), its content could be wrongly deleted during the synchronization process. FixedWindows GUI
Windows GUI: Some aesthetical improvements have been done on the Preferences tab in the 'Options' dialog.Windows GUI
Windows GUI: Fixed an usability issue in the annotate view. The metadata textbox (the left one) scrolled right automatically after clicking when the line was long.5.4.16.685
New
Gluon
Gluon: The Gluon views can now be refreshed by pressingF5Issue trackers
Issue trackers: The 'Create branch' dialog is now able to list all pending issues assigned to a user with JIRA 'multiple projects' working mode. Please check this link out for further info about JIRA multi-project configuration in Plastic SCM.Eclipse plugin
Eclipse plugin: Now it's possible to checkin files from different workspaces from the package explorer.Eclipse plugin
Eclipse plugin: Improved the single branch development pattern in the Eclipse plugin. When checking in files, if other users performed changes in the same branch, the Eclipse plugin tries to perform an automatic 'update merge'. If user intervention is required to solve merge conflicts, the merge dialog is shown.Server Installers
Server Installers: SQLite backend configuration: The built-in server's database backend config file (db.conf) is now configured to enable the WAL (Write-Ahead Logging) feature. WAL enables SQLite backend users to avoid locking when multiple threads try to read simultaneously from the database. SQLite is the default database backend on Linux/Mac installations and optional on Windows.GTK & Mac GUIs
GTK & Mac GUIs: 'diff branch/changeset' window can now be launched by double-clicking them in the 'Branch Explorer' view.Windows GUI
Windows GUI: The 'Branch Explorer' view background colors are now customized with the selected theme.Windows GUI
Windows GUI: The 'Analyze differences' feature in the 'diff branch/changeset' window are now calculated using only text files (ignoring binary files).Bug
Windows GUI
Windows GUI: 'diff branch/changeset' window: The 'current difference' index was incorrectly updated when navigating forward or backwards. Fixed.Windows GUI
Windows GUI: A 'null reference' exception was thrown when browsing the repository on a given changeset or branch, and there is a xlink pointing to a repository that doesn't exist. Fixed.Windows GUI
Windows GUI: Fixed an error when the GUI was trying to connect to a server using SSL with a not valid certificate host.Command Line Interface
Command Line Interface:cm listtriggers5.4.16.684
New
Windows GUI
Windows GUI: Analyze Refactors – to help you diff refactored code that has been moved between different files. It is only available for Windows. Diff a branch or a changeset and you will see a new "Analyze Refactors" button. Click on it and it will parse your C#, Vb.net, C or Java code to detect refactors. This way you can easily diff a method that was moved between two files as a result of a class being split. Plastic will locate the two versions of the method, on different files!, and you'll be able to easily diff it. This is what we call multi-file semantic diff and it is another step ahead towards Semantic Version Control.Server autodiscovery has been improved. Now there…
Server autodiscovery has been improved. Now there are more chances to find active servers on LAN or WiFi networking.Tube
Tube: Now the control connections retry after 500ms, then 1 sec, 5 secs and up to 60secs. Try to react faster if a short network cut happens.Triggers
Triggers: New 'change attribute value' server side trigger implemented. The trigger type ischattvaluechattvaluecm mktrigger before-chattvalue before-chattvalue-trigger-name "c:\triggers\check-before-chattvalue.exe"
When acm mktrigger after-chattvalue after-chattvalue-trigger-name "c:\triggers\check-after-chattvalue.exe"
chattvalue-
'before chattvalue' format:
object_spec attribute:"att_name" value:"att_value" -
'after chattvalue' format:
object_spec attribute:"att_name" oldvalue:"old_att_value" newvalue:"new_att_value"
-
'before chattvalue' :
br:/main/task985 attribute:"STATUS" value:"OK" -
'after chattvalue' :
lb:BL145 attribute:"RELEASED" oldvalue:"FALSE" newvalue:"TRUE"
REMARKS: To take advantage of this new kind of triggers, both Plastic SCM client and server should be upgraded to this version.PLASTIC_USERPLASTIC_CLIENTMACHINEPLASTIC_SERVERPLASTIC_REPOSITORY_NAMEPLASTIC_ATTRIBUTE_NAME
GTK & Mac GUIs
GTK & Mac GUIs: The 'diff' window now supports showing the contents of added and deleted files.Installers
Installers: client .zip installers now sets a+x permissions to application launcher scriptsBug
Mac OS server package
Mac OS server package: There was an error when configuring MySQL as database backend: "codepage 1252 not supported". Fixed.5.4.16.683
New
Windows GUI
Windows GUI: SemanticSCM Outline: Added support for mouse wheel. Also improved the look and feel for the available themes.Windows GUI
Windows GUI: SemanticSCM: When a declaration has been moved and renamed, the adornment for the moved difference is not drawn in the visual diff. Fixed.Code review triggers
Code review triggers: The SEID now is resolved to a user name and stored in thePLASTIC_REVIEW_ASSIGNEEBug
Visual Studio plugin
Visual Studio plugin: Fixed aNullReferenceExceptionUnity 3D plugin
Unity 3D plugin: Fixed an error when showing the differences of a changeset/branch from the 'Branch Explorer' dialog in Unity 3D plugin.Merge Tool
Merge Tool: Conflict's position were not properly updated when resolving a previous non-automatic conflict. Fixed.5.4.16.682
New
REST API
REST API: Now, Plastic SCM Windows installer contains a REST API listener, namedplasticapi.exeCommand Line Interface
Command Line Interface: Added a '--ignorefailed' parameter to thecm partial configureWindows GUI
Windows GUI: Added a new text box on the 'branch creation' dialog to filter 'pending tasks' list on 'From task' mode.Bug
Windows GUI applications layout was incorrect in…
Windows GUI applications layout was incorrect in high DPI screens. Fixed. (GUI applications such as 'Plastic SCM GUI client', 'Gluon', 'Mergetool', 'Binmergetool' and client/server configuration wizards).Windows GUI
Windows GUI: When moving the mouse cursor over the vertical splitter in the 'Diff' viewer, the cursor becames a hand icon, and it won't change back to the default cursor icon anymore. Fixed.TeamCity plugin
TeamCity plugin: Fixed a bug in TeamCity plugin. Now the plugin can reuse the same workspace for all VCS configuration when the parameter 'Workspace directory' is filled.5.4.16.681
New
codeBeamer Extension
codeBeamer Extension: The new codeBeamer issue tracker extension is now included in Plastic SCM. To enable this new integration, go to 'Preferences' -> 'Issue Tracking' dialog in Plastic SCM GUI client.Windows GUI
Windows GUI: The diff view now shows an info message when an encoding change is detected.Windows GUI
Windows GUI: Creating branches from issue tracker information is now available for all supported extensions: BugZilla, Mantis, FogBugz, Rally, VersionOne, Trac and Axosoft. However, we regret to inform you that the 'Mark task as open in issue tracker' option won't be available for VersionOne.Plastic SCM release names are now song names. A l…
Plastic SCM release names are now song names. A link to the Spotify song can be found in the 'About' dialog.Windows GUI
Windows GUI: Syntax highlight and Semantic diff are now enabled in the 'method history' feature.Windows GUI
Windows GUI: Semantic diff now shows the changes in the comments for the .NET languages (C# and Visual Basic).Windows GUI
Windows GUI: Fixed an error when closing the 'checkin pending changes' dialog when no checkin comment is provided. Previously, if the dialog was closed using the close button, the checkin was still performed. Now, when closing the dialog, the checkin operation is cancelled.Windows GUI
Windows GUI: The Plastic SCM theme for Windows can now be changed from the 'Preferences' dialog. To change the theme, go to 'Preferences' -> 'Theme'. Two new themes (Montana and Montana Dark) are now included within the Plastic SCM installer. The theme can be also changed by using the--theme=themenameSeveral improvements in the differences calculation
Several improvements in the differences calculation have been done:- Calculate xdiff moved regions inside semantic changed declarations
- Calculate moved regions inside other xdiff moved regions (recursively)
Bug
Merge Tool
Merge Tool: The encoding is not taken into account when the result file is saved. Fixed.Windows GUI
Windows GUI: Diff control: Update the textboxes info correctly when changing the syntax hightlight. Before, the adornments (semantic and xdiff buttons) and the outlining mode got lost. In addition, enable or disable the outlining menus depending on its availability.5.4.16.680
New
Windows GUI
Windows GUI: the 'Mount this changeset in Plastic Drive' changeset context menu option is now visible by default in both the 'Changesets' and 'Branch explorer' views. 'Plastic Drive' is a virtual drive for Windows to mount changesets and be able to browse using regular tools like Visual Studio.GTK/Mac GUIs
GTK/Mac GUIs: Avoid showing tons of error messages when the views are rendered and the credentials are not valid.Bug
JIRA extension
JIRA extension: The client wasn't updating the custom JIRA field when the issue tracker working mode was set to "Task on branch". Fixed.The TeamCity plugin failed to poll changesets aft…
The TeamCity plugin failed to poll changesets after a PlasticSCM server address/port change or a repository rename.Diff control
Diff control: The options button remained disabled when switching between text and semantic diffs. Fixed.configureserver was broken on Linux due to a wron…
configureserver was broken on Linux due to a wrong dependency with WPF. Fixed.Mac server
Mac server: The new installer was wiping out all user configuration and repository data on upgrade. Fixed.5.4.16.679
New
Windows GUI
Windows GUI: The diff view (branch, cset) now adds Semantic Outline as part of the Semantic Version Control initiative. Once you enter in semantic mode, an outline of the changes is displayed, highlighting the changes on methods, classes, attributes and so on. Clicking on an element on the outline highlights the corresponding declaration on the right side of the diff view.Windows GUI
Windows GUI: A new feature has been added in the Semantic version control initiative: the 'Visual Diff'. It shows the semantic differences for a file in a visual mode. The feature provides three different display modes: hiding unchanged declarations, showing them or grouping them.Windows GUI
Windows GUI: Improvements on the semantic diff navigation. When you clicked a difference the navigation panel wasn't updated for the moves. The same happened for adornments. Both are now working fine.Bug
Windows GUI
Windows GUI: The annotate lines didn't match the textbox lines when collapsing nodes. Now it is fixed and the annotated lines are correctly collapsed.Windows GUI
Windows GUI: Semantic diffing wasn't correctly matching methods under certain circumstances. Sometimes a method was marked as renamed and matched to the wrong one. It has been fixed so these sort of issues shouldn't happen now.Pending changes view
Pending changes view: Fixed an error calculating pending changes when setting the similarity level to 0% to match locally moved items. Fixed. (The error happened having several files manually moved into a private directory and at least one of moved items has also several content changes).5.4.16.677
New
Initial release of the Semantic version control i…
Initial release of the Semantic version control initiative. Now the Windows GUI includes built-in semantic diffing for C#, VB.net and Java. Each time you diff a branch, a changeset or a file from "pending changes" you'll have the option to switch to semantic mode. The new diff with semantic capabilities is able to:- Match methods (declarations of any type in fact) to calculate the diffs. You moved a method down? No problem!
- Decorate the side by side text diff with symbols (A- added, D- deleted, C- changed, M- moved, R- renamed) to better understand the changes.
- Ignore code format changes such as indentation and EOL changes. Suppose you just split a method call in several lines without other changes – the diff will be ignored by default.
Windows GUI
Windows GUI: A workspace can now be activated by double-clicking on it on the 'Workspaces' view.5.4.16.676
New
Windows GUI
Windows GUI: Look and feel of Plastic SCM Windows GUI adapted to Windows 10.GTK GUI
GTK GUI: 'Sync replication' view has been implemented and it is fully functional.The 'find branches' performance has been improved…
The 'find branches' performance has been improved. Now it's about 20 times faster for a large number of branches.Bug
Installer
Installer: Upgrading from versions less than 5.4.16.672 (with Windows Explorer integration installed) to upper versions failed with an error message. There was a compatibility issue that has been fixed.5.4.16.675
New
CLI
CLI: Thecm lscm ls /code --tree=br:/main/scm13596@myrep@denver:7070
CLI
CLI: Thecm historyThese are some valid examples:[rev:]serverpath:{path}#(cs:{cset_id}|br:{br_name}|lb:{label_name})[@{repname}[@{host}:{port}]]
serverpath:/src/lib/foo.c#br:/main/fix-1.3/task135@codebase@secure:8088
rev:serverpath:/src/main/bar.c#cs:9371@codebase // If default server is secure:8088
Additionally, other commands (such asserverpath:/doc/readme.md#lb:BL035 // If executed inside a workspace whose server is codebase@secure:8088
cm catcm diffcm cat serverpath:/src/lib/foo.c#br:/main/task5591@otherrepo
cm diff serverpath:/src/lib/foo.c#cs:135@mainrepo serverpath:/src/lib/foo.c#cs:351@mainrepo
CLI
CLI: thecm listlocks--server=address:portcm listlocks--serverExamples:cm listlocks [revspec [revspec ...]] [--server=address:port] [--onlycurrentuser] [--onlycurrentworkspace]
cm listlocks
cm listlocks --onlycurrentworkspace
cm listlocks --server=myserver:9090 --onlycurrentuser
cm listlocks revid:93152@codebase@mainserver:9095
cm listlocks itemid:1115#cs:611@extensions
cm listlocks serverpath:/src/foo.c#br:/main@game@gameserver:8084 serverpath:/doc/readme.md#br:/main@doc@docserver:9090 --onlycurrentuser
Windows GUI
Windows GUI: New features in the textbox editor are now available, such as:- Enable the edition for the added and moved files.
- Enable the edition when the revision on the right side (destination) is on disk for the 'diff branch/changeset', 'changeset explorer' and 'code review' windows.
Bug
Merge
Merge: On certain complex structure refactors (with several directories moved, causing cycles, reusing paths, etc.), the differences could omit some deleted items. As a result, the merge operation could fail when a file that is inside an omitted deleted directory is changed on the other contributor. Fixed.5.4.16.674
New
Windows GUI
Windows GUI: This release includes several improvements in text editors, described below with more detail. These improvements cause the minimum .NET framework required to run Plastic SCM GUI is .NET 4.0 or higher.Windows GUI
Windows GUI: Textbox editor usability has been greatly improved. New features have been implemented, such as:- Undo/Redo stack.
- Intellisense (DotNet, javascript and python).
- Smart editing: match braces and parenthesis.
Windows GUI
Windows GUI: Configurable .NET namespaces for intellisense. By default, intellisense for .NET languages only references 'mscorlib' assemblies, and the following namespaces:- System
- System.Core
- System.Xml
Example:<plastic_config>/syntaxhighlight/dotnetlanguage.conf
# type a list of namespaces to be available in the intellipromptSystem.Collections.GenericSytem.IO
Windows GUI
Windows GUI: New features in the textbox editor are now available, such as:- Convert tabs to whitespaces
- Configure tab width (4 or 8 chars)
- Show margin line (none, 60, 80, 100, 120 or 140 columns)
Windows GUI
Windows GUI: Outlining support in the diff viewers. The outlining actions are the following:- Collapse regions without diffs: Collapse all regions except those that have differences.
- Collapse to definitions: Collapse all implementation nodes (such as 'methods', 'comments' and 'properties') as Visual Studio does.
- Expand all: Expand all nodes.
Windows GUI
Windows GUI: Differences calculation performance has been gratly improved. The improvements are very noticeable when calculating differences of big files (60-70% faster).Windows GUI
Windows GUI: Syntax highlight support in the diff viewers. Supported languages:- (Plain text)
- C#
- Visual Basic
- Python v2.x
- Python v3.x
- JavaScript
- JSON
- XML
- Batch file
- C
- C++
- CSS
- HTML
- INI file
- Assembly
- Java
- Lua
- Markdown
- MSIL
- Pascal
- Perl
- PHP
- PowerShell
- RTF
- Ruby
- SQL
- VBScript
- XAML
Example:<plastic_config>/syntaxhighlight/languages.conf
#syntax language definition by file extension.js:JavaScript.custom:XML.txt:Plain text
Windows GUI
Windows GUI: XDiff functionality integrated in the diff viewer: The moved fragments now highlight the inner differences.Visual Studio integration
Visual Studio integration: The Visual Studio Package now supports Visual Studio 2015.Bug
Mergetool
Mergetool: Conflicts counters were wrongly displayed when clicking on 'previous manual conflict' button and manual conflict count was zero. Fixed.Web UI
Web UI: Repository progress charts on the dashboard will no longer appear as 'unavailable' if their data are available but not up-to-date.5.4.16.671
New
Command Line Interface
Command Line Interface: A new parameter for thecm partial update--reportIssue tracker extensions
Issue tracker extensions: The issue tracker extension system has been completely refurbished. You'll note that custom-made issue tracker extensions referencing the previous extensioncommon.dll library will no longer work. Please feel free to contact us at our forum if you developed your own issue tracker extension and need some hints to adapt your code to the new interface structure.Windows GUI
Windows GUI: The 'Create Branch' dialog has been completely refurbished. It offers users the possibility to select a pending task from the configured issue tracker (displayed as a list) to automatically fill in the branch name and comment text fields. Additionally, a request can be sent to the issue tracker to mark the selected task as 'open' if it wasn't before. However, only JIRA is supporting this functionality at this moment. New issue tracker compatibility will be implemented in the upcoming releases.JIRA extension
JIRA extension: JIRA fields mapping support is now available. However, the format has changed. Instead of using XML fields, there's now a "Fields mapping" configuration parameter (see Issue tracker configuration panel). It stores field name pairs (from->to) separated by '|' (vertical bar) characters. The parameter syntax is:This is a valid example of JIRA fields mapping:[ jira_field_name -> plastic_property_name [ | jira_field_name -> plastic_property_name [ | ... ] ] ]
In this case, the displayed Description would contain the project key, the displayed Owner would be the JIRA user who created the issue and the displayed Title would be the JIRA issue description.issue.project->Description|issue.reporter->Owner|issue.description->Title
GUI
GUI: The 'profile' creation/edition dialog ('Profiles' tab on the 'preferences' window) has been improved. Now it's a single form instead of a wizard. The most important improvement is that it won't require to fill the destination server's working mode anymore when creating/editing a profile.Bug
FMOD Plugin
FMOD Plugin: The 'sync' operation has been fixed. However, only global updates are allowed; the 'Sync selection' option will perform the same action as the "Sync & merge" one.Command Line Interface
Command Line Interface: thecm unco --all-
Have a workspace with the following items: ,
/srcand/src/foo.c/src/bar.c -
copy to
/src/src_bak -
delete
/src/foo.c -
execute -> Error.
cm unco --all
GUI
GUI: Fixed the server autodiscovery dialog. It used to fail when only one server was detected but it is working fine now.5.4.16.669
New
Issue tracker extensions
Issue tracker extensions: The issue tracker extension system has been completely refurbished. You'll note that custom-made issue tracker extensions referencing the previous extensioncommon.dll library will no longer work. Please feel free to contact us at our forum if you developed your own issue tracker extension and need some hints to adapt your code to the new interface structure.Windows GUI
Windows GUI: The 'Create Branch' dialog has been completely refurbished. It offers users the possibility to select a pending task from the configured issue tracker (displayed as a list) to automatically fill in the branch name and comment text fields. Additionally, a request can be sent to the issue tracker to mark the selected task as 'open' if it wasn't before. However, only JIRA is supporting this functionality at this moment. New issue tracker compatibility will be implemented in the upcoming releases.JIRA extension
JIRA extension: JIRA fields mapping support is now available. However, the format has changed. Instead of using XML fields, there's now a 'Fields mapping' configuration parameter (see Issue tracker configuration panel). It stores field name pairs (from->to) separated by '|' (vertical bar) characters. The parameter syntax is:This is a valid example of JIRA fields mapping:[ jira_field_name -> plastic_property_name [ | jira_field_name -> plastic_property_name [ | ... ] ] ]
In this case, the displayed Description would contain the project key, the displayed Owner would be the JIRA user who created the issue and the displayed Title would be the JIRA issue description.issue.project->Description|issue.reporter->Owner|issue.description->Title
Command Line Interface
Command Line Interface: A new parameter for thecm partial update--reportBug
FMOD Plugin
FMOD Plugin: The 'sync' operation has been fixed. However, only global updates are allowed; the 'Sync selection' option will perform the same action as the "Sync & merge" one.Command Line Interface
Command Line Interface: thecm unco --all-
Have a workspace with the following items: ,
/srcand/src/foo.c/src/bar.c -
copy to
/src/src_bak -
delete
/src/foo.c -
execute -> Error.
cm unco --all
5.4.16.668
New
Mac GUI
Mac GUI: The 'macplastic' client installer now includes command line tools, such as 'cm' and 'clconfigureclient' as bundled applications. These applications can be found at the following locations:-
/Applications/macplastic.app/Contents/Applications/cm.app/Contents/MacOS/cm -
/Applications/macplastic.app/Contents/Applications/clconfigureclient.app/Contents/MacOS/clconfigureclient
5.4.16.667
New
Unity 3D Plugin
Unity 3D Plugin: The 'ignore.conf' for Unity plugin has been improved in order to avoid adding '.private.N' files accidentally when the 'automatic add' option is set.Bug
Checkin operation
Checkin operation: Fixed an error that could happen when the checkin operation is canceled during the upload stage. The detailed checkin progress for big files on slow networks was broken and has been fixed (it was broken in the task to implement 'retries' during replica at the network level, from release "5.4.16.661").Create label operation
Create label operation: Several issues labeling xlinked repositories have been fixed:- Readonly xlinked repositories were wrongly labeled. Now, they are not labeled as these repositories cannot be modified through the readonly xlink.
- Labeling different writable xlinks pointing to the same repository was not supported (the create label operation failed with the error: ' The label already exists'). Now, this scenario is supported.
-
Command Line Interface: The command now allows to specify a given changeset to be labeled, even if the
cm mklabelflag is set.--allxlinkedrepositories
5.4.16.666
New
GTK GUI
GTK GUI: Release number and release name are now displayed in the 'About' dialog. A link to the release notes is also available.Bug
Replication
Replication: Fixed an issue introduced in release 5.4.16.662 that prevented replica to proceed with older 5.4 servers depending on language settings: an exception was incorrectly handled and it is fixed now.5.4.16.665
New
JIRA Issue tracker extension
JIRA Issue tracker extension: The JIRA extension can now be configured to reuse the same LDAP credentials used in Plastic SCM user authentication to log in in JIRA. Both Plastic SCM Server and JIRA must share the same LDAP user directory for this functionality to work properly.File type configuration
File type configuration: The 'filetypes.conf' config file allows users to associate the file extensions to file types (binary or text). This config file can now be placed at the root directory of the workspace. This way, the file type configuration can be easily distributed among users.Gluon
Gluon: 'after-checkin' triggers are now supportedBug
Annotate
Annotate: The Plastic SCM GUI could show a 'TimeSpan overflowed' error when the annotated file was too large and its lines were old (unchanged since several months or years ago). Fixed.Windows Installer
Windows Installer: Some components previously installed were not remembered to be re-installed when upgrading to a newer version. Affected components were:- Windows Explorer Integration
- IntelliJ IDEA plugins
- Office plugins
Windows GUI
Windows GUI: Branch Explorer: Associated branch's issue tracker info was not being displayed if the 'Display full branch names' option was disabled. Fixed.Windows GUI
Windows GUI: Xlinks: When a checked-out xlink with changes inside is checked-in to a different branch using the option 'Checkin changes to a different branch…', the xlinked full branch name and expansion rules were not correctly set. Fixed.5.4.16.664
New
GUI
GUI: The repository explorer views and dialogs now include a text field to retrieve repositories from a custom server. Leave it empty to retrieve repositories from the default sources: default server in client.conf, repositories from workspaces, stored profiles and from 'plastic.servers' configuration file.Mac & GTK GUIs
Mac & GTK GUIs: Connect to remote, non profiled servers dialog is now implemented. The GUI will now prompt users for the remote server credentials if needed.Mac GUI
Mac GUI: 'Sync replication' view has been implemented and it is fully functional.FMOD plugin beta
FMOD plugin beta: Moved items are now displayed on the commit dialog. Also, items locked in a different workspace will now be marked with a 'ghosted' checkbox. Remember to ask 'support@codicesoftware.com' for further info about FMOD Studio plugin.5.4.16.663
New
Gluon
Gluon: Reverting to another revision now shows item status as 'copied/replaced' in the 'workspace explorer' view.Windows GUI
Windows GUI: Application startup performance improvement: the GUI now starts 80% faster.Windows GUI
Windows GUI: Improved the mechanism to remember the focused item in the 'Items' view.Bug
Gluon
Gluon: The scroll did not reach the bottom of the 'workspace explorer' view when the view was showing tons of files. Fixed.5.4.16.662
New
The client can now accept SSL certificates requir…
The client can now accept SSL certificates required by the server for replication operations. Before, the certificate had to be accepted on the server side, but now it can be done from the client side and installed on server provided the user is the admin of the server (owner of the repository server). This is useful for individual distributed servers.Server
Server: Now, if the encryption configuration is changed on the 'cryptedservers.conf' file, the new configuration will be applied without restarting the server.Command line client
Command line client: 'cm sync' command: Changed the way the sync mappings are stored. Now, they are stored in the local user folder, instead of attributes linked to Plastic SCM objects (such as changesets, branches, and revisions). The 'cm sync' performance has been improved. With these changes, syncing the 'mono' repository from github is 80% faster.5.4.16.661
New
Unity 3D Plugin
Unity 3D Plugin: 'Gluon Mode' setting has been added in order to configure the plugin to work with partial workspaces.Unity 3D Plugin
Unity 3D Plugin: Now, the plugin uses the 'MacPlastic SCM' application instead of the old X11 version.Replication operations can now handle network iss…
Replication operations can now handle network issues and reconnect if the network is gone for a few seconds. It works as follows:- If a socket gets closed in the middle of a replica then the operation is retried after 1, 5 and then 20 seconds.
- If it is able to reconnect then everything works. Otherwise the operation fails.
5.4.16.659
New
Replication operations reuse network connections…
Replication operations reuse network connections between replicas, something that was not happening before. It means it is now slightly faster to replicate several branches.Gluon
Gluon: A 'checkin' option has been added to the context menu on the 'Workspace explorer' view. This option will open the 'Checkin changes' view on the right side of the view.Gluon
Gluon: Small fixes in texts and iconsFMOD plugin beta
FMOD plugin beta: We're proud to announce a brand new plugin to integrate Gluon and FMOD Studio. Ask us! (support@codicesoftware.com)Bug
GitSync
GitSync: The 'cm sync' command didn't check correctly if the item were already loaded in the server tree, leading to 'item loaded twice' exceptions. Fixed.5.4.16.657
New
Windows GUI
Windows GUI: Usability - the 'create xlink' dialog has been improved:- The 'xlink name' text input field will be autocompleted when the target repository is selected if the user doesn't manually alter it.
- The 'use relative server' checkbox is enabled by default.
- Added a tip to remember that the content of the xlink is not loaded until the user performs an 'update' operation.
Bug
Windows GUI
Windows GUI: The embedded diff on the pending changes view was throwing an error if the 'previous' button was clicked when the current selected difference was the number 0 (this could happen right after modifying an unchanged file). Fixed.5.4.16.656
New
Gluon
Gluon: A new feature to undelete files has been added. A new view lists the recently deleted files (and the filter is customizable). Right clicking on a deleted file shows two options:- 'Undelete revision'
- 'Undelete revision to this path...' in case you need to recover to a different path (if the original one no longer exists, for instance).
Gluon
Gluon: A new view mode in the 'Explore workspace' view has been implemented: 'view as a list' mode. There is a new context menu option to toggle the view mode: 'view as a list' / 'view as a tree'.Gluon
Gluon: Local changes under a readonly xlink can now be undone.Gluon
Gluon: The 'diff' option is now available in the context menu of the 'Explore workspace', 'Checkin changes' and 'Changesets' views.Gluon
Gluon: The Configuration mode's "Explore" button (Workspace Explorer) has been renamed to "Cancel". It's behaviour, however, stays the same: when clicked, the Workspace Explorer will end the configuration mode. Please note that clicking this button having pending changes will no longer ask for confirmation. Any changes you might have will be lost.GUI
GUI: Create label: Users can now choose to label all xlinked repositories when creating a new label. Plastic SCM will retrieve the xlink changesets stored in the selected changeset tree and will label them accordingly. Warning messages will be displayed if the selected label name is already existing in any of the xlinked target repositories.GUI
GUI: Implemented a tree-mode for the repositories view, so the repositories can be displayed as a list (as always) or as a tree.GTK & Mac GUIs
GTK & Mac GUIs: Usability improvements- After performing an operation, always try to focus the same focused widget before the operation.
- After deleting an item in the items view, try to focus a close item.
Command Line Interface
Command Line Interface: The 'fileinfo' command now includes a RepSpec field, which prints the repository specification of items.License
License: the license grace period after expiration has been increased to 15 days.Bug
GUI
GUI: The embedded diffs on the pending changes view displayed empty contents on refresh, when an item was selected. Fixed.GUI
GUI: The SSL server certificates couldn't be accepted from the Plastic GUI. Fixed.5.4.16.655
New
Mac OS X native server installer is now available
Mac OS X native server installer is now available. The package includes the server plus two command line tools:- 'clconfigureserver' to configure the server
- 'umtool' to configure users and groups in "User-Password" auth mode.
- Port 8087 (and 8088 for SSL)
- Name auth mode - uses the builtin users and groups in the computer
- SQLite database backend
- Use 'clconfigureserver' to change the server settings
- Use 'umtool' to create users and groups only if you select UP working mode
- Restart the daemon to apply changes
sudo /Applications/PlasticSCMServer.app/Contents/Applications/clconfigureserver.app/Contents/MacOS/clconfigureserver
Example to add a user:sudo /Applications/PlasticSCMServer.app/Contents/Applications/umtool.app/Contents/MacOS/umtool
How to restart the Plastic Server:sudo /Applications/PlasticSCMServer.app/Contents/Applications/umtool.app/Contents/MacOS/umtool cu pablo pablo-password
sudo launchctl unload /Library/LaunchDaemons/com.codicesoftware.plasticscm.server.plist
sudo launchctl load /Library/LaunchDaemons/com.codicesoftware.plasticscm.server.plist
The encryption configuration can now be set from…
The encryption configuration can now be set from the Plastic SCM GUI after a 'missing encryption configuration' error during the replication process.(This configuration can only be set by the Plastic SCM server administrator).Branch Explorer
Branch Explorer: The search feature will now apply to the actual branch names being displayed. (Before, it was limited to full branch names).5.4.16.654
New
Command Line
Command Line: A new command, named 'restore' or 'rs', has been added to the command line client. Its purpose is to restore an item to a previous revision. Examples:cm restore itemid:68#cs:2 C:\mywks\dir\myfile.pdf
To get further information, please check the documentation ('cm help rs').cm rs revid:304 C:\mywks\Dir
Gluon
Gluon: Added 'undo changes' option to the context menu of the 'workspace explorer' view.GUI
GUI: The 'Create workspace' dialog elements have been reordered. The text input fields will be autocompleted if the user doesn't manually alter them.Mac & GTK GUIs
Mac & GTK GUIs: The 'search' feature of the 'Branch explorer' view has been improved. Now, the results are updated after refreshing the view or applying changes in the options. Also, the caption of the changeset is taken into account in the search operation.Mac & GTK GUIs
Mac & GTK GUIs: Usability: the 'Preferences' window has been improved:- Added a 'Save' button to the 'Diff tools' and 'Merge tools' tab views.
- Replaced the 'Apply' button with the 'Ok' button, which saves the changes performed in all the tab views and closes the 'Preferences' window afterwards.
The default ssl certificate generated by the Plas…
The default ssl certificate generated by the Plastic SCM server has been changed to use a more secured algorithm (SHA256 instead of SHA1). Now, the 'Secured' Plastic channel supports the TLS protocol. (Previously, only the SSL3 was supported).Windows GUI
Windows GUI: Now, the GUI can be opened even when the server connection is not available. Mac & GTK GUIs: Now, both GUI's are able to reconnect to the server when the connection is lost.Bug
Gluon
Gluon: Checkin operation: Gluon was not properly setting the read-only attribute for items to be checked-in whose contents haven't changed. Fixed. Now, the read-only attribute for those items is set according to user preferences ("Update and Checkin operations set files as read-only" preference).Mac & GTK GUIs
Mac & GTK GUIs: The 'end date enablement' setting of the Branch explorer's display options is not taken into account when the Branch explorer is loaded. Fixed.5.4.16.653
New
Checkin
Checkin: The checkin operation for 'locally deleted' items has been improved. Performance optimization benchmark: Run a 'checkin' operation having 1376 'locally deleted' files distributed among the workspace tree. Results:- Before the optimization, the checkin operation took 74 seconds.
- After the optimization, the checkin operation took 9 seconds.
Some improvements have been made to support more…
Some improvements have been made to support more compiler optimizations during the building stage of Plastic SCM.Bug
Automatic upgrade system
Automatic upgrade system: Fixed a bug that prevented the upgrade system to download the specified Mac OS installers. More info about the automatic upgrade system can be found at:https://plasticscm.com/documentation/administration/plastic-scm-version-control-administrator-guide.shtml#Chapter11:Upgradesystem
Web UI
Web UI: The repository data storage process, used by stats graphs, has been improved.5.4.16.652
New
Triggers
Triggers: The 'before-checkin' and 'before-clientcheckin' triggers are now able to use a new environment variable calledPLASTIC_PENDING_MERGE_LINKSEach MergeLinkSpec is composed of several fields separated by comma (,). Each field is separated from the value by the":" character. The following is an example:Merge_Link_Spec1;.....;MergeLinkSpecN
The variables are: -mergetype: can be one of the following constants: "merge", "cherrypick", "intervalcherrypick", "cherrypicksubtractive", "intervalcherrypicksubtractive". -source: the source changeset spec of the mergelink, composed by the changeset number, the repository and the server. -base (optional): if mergetype is "Intervar cherry pick" or "Interval cherry pick substractive", it's the base changeset spec of the selected interval. Otherwise, the field doesn't appear in the serialized string.mergetype:Merge,source:2@rep:default@localhost:8084
Windows GUI
Windows GUI: Server file paths are now displayed in the caption on both sides of the embedded Diff View.GUIs
GUIs: improved the way to list repositories on known servers. Now each time you refresh the Repositories View, the list of known servers is created as follows: default server, servers.conf and the servers on 'automatic' profiles. Before the list of repos was loaded only once, so if you changed to a different network the result didn't change until app restart. Now it works as expected.Bug
Windows GUI
Windows GUI: If the active workspace on the Windows GUI is removed (by using the Command-Line clientcm rmwk WK_PATH5.4.16.651
New
Triggers
Triggers: Web triggers are now available. The script path value will be interpreted as an URI endpoint if it's preceded by the 'webtrigger ' string (mind the whitespace!). That endpoint will receive POST requests whenever the trigger is executed. The request body will be a JSON dictionary containing the trigger variables. Additionally, the standard input data will appear as an array under the 'INPUT' dictionary key. For example, a web trigger can be created this way:A request body example of that trigger would be as follows:cm maketrigger after-checkin "Notify team" "webtrigger https://www.mysite.com/api/team/checkin"
Notice that once the web trigger is created, updating it (using the 'changetrigger' command) will interpret the '--script' parameter value as the 'maketrigger' command would. For further information, please take a look at the 'maketrigger' and 'changetrigger' commands help.{ "PLASTIC_CHANGESET": "cs:2341@br:/main/task4638@rep:product@repserver:plastic.mysite.com:17590", "PLASTIC_CLIENTMACHINE": "DEV1HOST", "PLASTIC_COMMENT": "Fixing command line parsing", "PLASTIC_SERVER": "plastic.mysite.com:17590", "PLASTIC_SHELVE": false, "PLASTIC_USER": "dev1", "INPUT": [ "CH "/src/main.c" FILE" ]}
GTK GUI
GTK GUI: The GTK GUI application is now included in the legacy linux-client zip installer.Bug
Annotate
Annotate: Fixed an issue that made the annotate operation to do not end sucessfully and waste CPU. The issue could be reproduced when launching the 'annotate' operation of certain items where the 'item-merge-tracking' info was wrongly stored (the initial versions of the 'item-merge-tracking' feature stored the merge info of a 'keep-destination' conflict resolution for a merged file in a wrong way).5.4.16.650
Bug
Windows GUI
Windows GUI: The branch and the changeset differences could fail with an 'Item with the same key has already been added' error under the following circumstances:- The differences involve multiple repositories.
- There are changed and moved items on at least two repositories.
- The revision Id of an item showed in the differences is the same as another revision Id from an item in another repository.
Gluon
Gluon: The locking status was overriden when checking in 'changed' items from the 'Checkin View'. Fixed.Winows GUI
Winows GUI: Groups or users were not correctly added to an ACL when the connection to the server was done using a profile. Fixed.5.4.16.649
New
Plastic Gluon, the version control user interface…
Plastic Gluon, the version control user interface designed and crafted for artists in game development has been released. Please visithttps://www.plasticscm.com/gluon.htmlBug
Windows GUI
Windows GUI: Fixed a visualization issue in the checkin progress dialog. Sometimes, when resizing the progress dialog, the 'total' units disappeared. Fixed.5.4.16.648
New
Audit Log
Audit Log: New audit log level: 4. Read access to revisions will be logged.Game UI
Game UI: 'Changesets' view is now available. The new view just allow to show changesets and filter them. No more actions implemented yet.GTK & Mac GUIs
GTK & Mac GUIs: The 'Delete' context menu option is now available on the 'Pending changes' view.Server
Server: SQL Server database creation command can now be customized with user-defined settings. A new key in 'db.conf' file, named 'DatabaseCreationCommands' is available for this purpouse. The command must be written in a single line. The following 'db.conf' file example is written in several lines for better readability:The following 'default values' identifiers are available in order to build custom database creation commands:<?xml version="1.0"?><DbConfig><ProviderName>sqlserver</ProviderName><ConnectionString>SERVER=localhostSQLEXPRESS;User Id=username;Pwd=password;DATABASE={0};</ConnectionString><DatabaseCreationCommands>CREATE DATABASE @PlasticDatabase ON PRIMARY(NAME=@PlasticDatabase_custom, FILENAME='@PlasticDefaultDatabaseFile', SIZE=10, FILEGROWTH=100)LOG ON (NAME=@PlasticDatabase_log, FILENAME='@PlasticDefaultLogFile', SIZE=10, FILEGROWTH=100)COLLATE @PlasticDefaultCollation</DatabaseCreationCommands><DatabasePath></DatabasePath></DbConfig>
-
-> The default database name. It's mandatory to use this identifier in the 'CREATE DATABASE' command. Otherwise the Plastic SCM server won't work properly.
@PlasticDatabase -
-> Default database file. (A path that includes @PlasticDatabase as a part of the database file name can be used instead).
@PlasticDefaultDatabaseFile -
-> Default log file path. (A path that includes @PlasticDatabase as a part as a part of the file name can be used instead. Also, appending a suffix to the
@PlasticDefaultLogFileidentifier can be used. Example:@PlasticDefaultDatabaseFile).@PlasticDefaultDatabaseFile.log -
-> Its value is the collation defined in the 'db.conf' file with the 'DatabaseCollation' tag. If 'DatabaseCollation' tag is not present, in will take the default collation used by Plastic SCM server, which is: 'Latin1_General_CI_AI'. The collation in the custom command will take precedence over the value of 'DatabaseCollation' tag.
@PlasticDefaultCollation
Examples (Remember to write them in a single line. The examples below are written in several lines for better readability):CREATE DATABASE @PlasticDatabase ON PRIMARY(NAME=@PlasticDatabase, FILENAME='@PlasticDefaultDatabaseFile', SIZE=10, FILEGROWTH=100)LOG ON (NAME=@PlasticDatabase_log, FILENAME='@PlasticDefaultLogFile', SIZE=10, FILEGROWTH=100)COLLATE @PlasticDefaultCollation
- Multiple commands. Must be separated with ";" and specified in a single line. The "GO" clause can't be used.
CREATE DATABASE @PlasticDatabase ON PRIMARY(NAME=@PlasticDatabase, FILENAME='@PlasticDefaultDatabaseFile', SIZE=10, FILEGROWTH=100)LOG ON (NAME=@PlasticDatabase_log, FILENAME='@PlasticDefaultLogFile', SIZE=10, FILEGROWTH=100)COLLATE @PlasticDefaultCollation;ALTER DATABASE @PlasticDatabase SET PAGE_VERIFY CHECKSUM;ALTER DATABASE @PlasticDatabase SET ANSI_WARNINGS OFF
- Change database file location and log names and paths:
CREATE DATABASE @PlasticDatabase ON PRIMARY(NAME=@PlasticDatabase, FILENAME='C:/databases/dbs/@PlasticDatabase.db', SIZE=10, FILEGROWTH=100)LOG ON (NAME=PlasticLog_@PlasticDatabase, FILENAME='C:/databases/logs/@PlasticDatabase.log', SIZE=10, FILEGROWTH=100)COLLATE @PlasticDefaultCollation
- Change size parameters or collation:
CREATE DATABASE @PlasticDatabase ON PRIMARY(NAME=@PlasticDatabase, FILENAME='@PlasticDefaultDatabaseFile', SIZE=100, FILEGROWTH=50)LOG ON (NAME=@PlasticDatabase_log, FILENAME='@PlasticDefaultLogFile', SIZE=100, FILEGROWTH=50)COLLATE SQL_Latin1_General_CP1_CS_AS
Bug
Windows GUI
Windows GUI: Home/End keys did not work in the Branch Explorer view. Fixed.Windows GUI
Windows GUI: The diff window was showing an error when annotation panel was shown for xlinks root items. Fixed.Windows GUI
Windows GUI: The 'Diff' viewer for the focused item in the 'Pending changes' view was not recalculating diffs when the pending changes view was refreshed. Fixed.5.4.16.647
New
GTK & Mac GUIs
GTK & Mac GUIs: Shelve view has been implemented and it is fully functional. The context menu options are 'View shelve', 'Apply shelve in the workspace' and 'Delete'. The shelve view can be opened from the "Show Shelves View" button in the pending changes view and it will be displayed on the right side of the view.Triggers
Triggers: Client side triggers can now be customized using relative paths or user-defined paths. The script execution paths can be built in the following ways:- Using two new predefined variables: PLASTIC_BIN_PATH (Plastic SCM client installation directory) and WKSPACE_PATH (Current workspace location). Example:
cm maketrigger before-clientcheckin "Relative trigger path" "@PLASTIC_BIN_PATH/triggers/checkdirectories.pl"
- Using customized trigger variables, defined in the 'client.conf' file. The syntax is the following:
The path directory separator char will be replaced depending on the target platform (i.e<TriggerVariables> <TriggerVariable name="TRIGGERS_PATH" value="c:\triggers" /></TriggerVariables>
"@PLASTIC_BIN_PATH/triggers/checkdirectories.pl""@PLASTIC_BIN_PATH\triggers\checkdirectories.plGTK & Mac GUIs
GTK & Mac GUIs: SSL certificates from Plastic SCM servers can now be accepted.Windows GUI
Windows GUI: Changed blogpost notification icon. Now, the number of unread blogposts is shown near to the "BLOG NEWS" menu item.Bamboo plugin
Bamboo plugin: Automatic merging feature is now supported (Both 'branch updater' mode and 'gatekeeper' mode).GameUI
GameUI: New option added in history context menu to show changeset differences.Game UI
Game UI: A new context menu option has been added in the history panel: 'Diff selected revisions' to let the user diffing two specific revisions (and not only diffing with previous revision). The new context menu option will be available when two revisions are selected.Game UI
Game UI: Application startup performance has been significantly improved. Before this improvement, the application startup time was depending on the connection to the server, but now the application starts inmediatly.Game UI
Game UI: Usability improvements- Now it is possible to checkout files from the 'search item'.
- Ctrl+O (checkout) over an item moved away the focus from the selected item. Fixed.
- Focus is kept over an item after creating or renaming it.
- The scroll position is now remembered in the workspace explorer tree after restarting the application.
- Workspace name in window title was lost when switching between configuration mode and explorer mode. Fixed.
Greatly improved branch (and changeset) diff wind…
Greatly improved branch (and changeset) diff window to better explain merges. This feature is an evolution of the original "item-merge-tracking" effort and greatly improves the way in which branches (and csets) receiving merges are diffed. This feature is one of the most relevant improvements in branch/cset diffing the Plastic SCM team have developed. When diffing a branch (or cset) that receives one or more merges, it is often hard to figure out what was really modified on the branch and what comes from the merge. It complicates reviewing code, specially when big rebases (merge from parent branch) happens. Suppose the following scenario:- You start branch "task1010" from label "build-117" on main.
- You modify a number of files and work on the branch for a couple of days.
- In the meantime "build-118" was created, including changes in more than 250 files.
- Prior to integrate your branch to main you're asked to rebase it to "build-118", so you merge down from label "build-118".
- Now your branch doesn't only contain the changes you made, it also contains all the changes (more than 250 files) coming from the merge.
- which files just come from the merge and were untouched on the branch,
- which ones were modified on the branch,
- and more importantly, which ones were modified both in the branch and also in the merged branch, they were merges, and they're grouped under a category called "changed/changed" (or CC for short).
Bug
Replication
Replication: The 'replicate' operation was adding duplicated reviews and review comments when a big number of objects were involved (around 10000 objects involved). Fixed.GUI Client configuration dialog
GUI Client configuration dialog: The client configurator dialog wasn't properly handling SSL server specs. Also, the test connection to a SSL server was not working on Linux. Fixed.GUIs
GUIs: Opening HTML revisions from the history view was not working properly. Fixed.GTK GUI
GTK GUI: Replication panel has been improved to avoid overlapping controls.GTK GUI
GTK GUI: Application freezed when displaying several dialogs at the same time. Fixed.Windows GUI and Command line client
Windows GUI and Command line client: Fixed several errors when the specified language in the 'client.conf' file was not valid.Windows GUI
Windows GUI: On the repository browser view (browse repository on branch or changeset), the repository actions available for xlinks (view branch explorer, branches, changesets, etc.) were not working. Fixed.Windows GUI
Windows GUI: Fixed some alignment and textual GUI issuesWindows GUI
Windows GUI: Improved the look and feel of the notification strip. Also, from now on, license warnings aren't displayed for commercial licenses.5.4.16.644
New
PlasticDrive
PlasticDrive: A virtual drive for Windows to mount changesets and be able to browse using regular tools like Visual Studio. PlasticDrive comes packaged with the Plastic SCM client. PlasticDrive is a command line application that mounts the content of a changeset on a virtual Windows drive. It uses Dokan to create a virtual filesystem. PlasticDrive is read-only, it doesn't let you modify the code, but you can create temporary files (means you can build your code or you can use Visual Studio "find references" which builds the code underneath). You can launch PlasticDrive this way:Which will mount label 5.4.16.639 on drive z: PlasticDrive can also be launched from the changesets menu of the Windows GUI. In order to enable you have to edit your guiclient.conf file and add the following line:plasticdrive.exe --drive z: lb:5.4.16.639@secretrepo
PlasticDrive is useful when you need to look into a branch or changeset but you don't feel like switching to the branch, and the repository browser doesn't help because you can't use your Visual Studio to open a solution on it. PlasticDrive doesn't download the entire changeset content, it will just download the files you really read. Download is on-demand so it is super fast to browse a few files even on a big repository. The controlled files that you access are cached in the plasticdrive-filecache directory on your Local folder. These files are reused between sessions, so if the first time you mount a changeset it takes time to open a big solution in Visual Studio, most likely it will go much faster in the next session. The temporary files created during the session are deleted when the drive is unmounted (typically obj files). A "tray icon" is displayed on the Windows task bar so you can unmount your drive.<ShowMountPlasticDrive>true</ShowMountPlasticDrive>
5.4.16.643
New
Windows GUI
Windows GUI: Custom checkin comments: The branch name is now supported on the predefined & custom templates.GTK & Mac GUIs
GTK & Mac GUIs: Now, the 'ignored', 'cloaked' and 'hidden changed' items can be added and removed to the list through the context menu of the 'Workspace explorer' and 'Pending changes' views.Bug
GTK & Mac GUIs
GTK & Mac GUIs: Fix a 'duplicated key' error when the diff operation is launched several times on the same item.5.4.16.642
New
IntelliJ IDEA plugin
IntelliJ IDEA plugin: Compatibility issues to support IDEA 14 have been addressed. This way, Plastic SCM is now available for IntelliJ IDEA 14.Axosoft OnTime extension
Axosoft OnTime extension: Plastic SCM now supports Axosoft OnTime v14.5Git Sync
Git Sync: Performance: The initial process of calculating changesets to pull / push between Plastic SCM and Git has been greatly improved. The bigger is the number of branches / tags already synchronized, the more noticeable is the improvement. The improvement is around 95% for a repository with 200 branches and 600 tags. (The process has been improved from 140 seconds to only 6 seconds).Bamboo plugin
Bamboo plugin: The detailed commit information will now show the item status: Added, Moved, Changed or Deleted.GTK & Mac GUIs
GTK & Mac GUIs: Now, the 'preferences' dialog provides a 'default' tool settings to configure the diff and merge tools automatically.GTK & Mac GUIs
GTK & Mac GUIs: Added 'close' button to the 'Merge' view in order to close it and show the pending changes view automatically.Mac GUI
Mac GUI: Added 'copy' option to the application menuMac GUI
Mac GUI: Usability: The 'cut' and 'paste' options of the 'Workspace Explorer' view are now also available with the standard key shortcuts.Bug
IntelliJ IDEA plugin
IntelliJ IDEA plugin: The update action no longer fails if the 'Revert unchanged files before update' option is set.Windows GUI
Windows GUI: Fixed a 'same key was already added' error that happened sometimes when drawing the 'Items' view.Command line client
Command line client: The '--preview' option of the 'replicate' command was not working properly when the destination database has a different Id. Fixed.Windows GUI and Visual Studio integration
Windows GUI and Visual Studio integration: When the semantic history was shown for a method of a changed file, the 'Checkin' operation for this changed file was failing with the error:Revision -2 not found in repository <repository_name>Game UI
Game UI: The 'Checkin' operation was not considering the 'checkin' permissions. Fixed.Mac GUI
Mac GUI: The 'open' and 'open with' context menu options didn't work properly. Fixed.5.4.16.641
New
Mac GUI
Mac GUI: The look & feel of the Branch explorer's 'options' panel has been improved.Mac & GTK GUI
Mac & GTK GUI: Now, the Branch explorer's 'options' panel can be hidden.GTK GUI
GTK GUI: The look & feel of the 'Switcher' window has been improved.GTK GUI
GTK GUI: Added 'Switch workspace' button to the 'workspace' window sidebar.GTK GUI
GTK GUI: Usability: the navigation flow of the application has been improved. Also, the default buttons and the cancel buttons have been established according to the Human Interface Guidelines recommends. GTK GUI: Usability: the navigation flow of the application has been reviewed and improved. Also, default key accelerators have been implemented, binding them toMac & GTK GUI
Mac & GTK GUI: Usability: the double click action has been implemented for each table of the application.Bug
GameUI
GameUI: Opening a previous revision by double-clicking on a row (details panel) caused a crash if the target application prevented the file from being modified externally. Fixed.GTK GUI
GTK GUI: Fix branch drawing in the Branch Explorer view. Some changesets were drawn out of the branch bounds.GTK GUI
GTK GUI: Fix several error messages- "Cairo.Context: called from finalization thread, programmer is missing a call to Dispose" that appear all the time on the console using the Branch explorer.
- "Stream does not support writing" and "Shutting down finalizer thread timed out." that appear sometimes when closing the GUI.
-
that appear also on the console opening the configuration panel or any view with filter.
"Gtk-CRITICAL **: gtk_box_pack: assertion ``child->parent == NULL' failed
GTK GUI
GTK GUI: Fix an unexpected error occurred clicking on the Branch explorer view while it is loading, before rendering objects.5.4.16.639
New
Mac & GTK GUIs
Mac & GTK GUIs: Labels View includes now a dialog to list changesets, choose one and label it.Windows GUI
Windows GUI: old icons removed from: 'New secured path' dialog, 'Branches' dialog launched from the repository permissions dialog, 'Comments' dialog launched from the code review, 'Plastic configuration wizard' dialog and 'Delete confirmation' dialog.Bug
Bamboo plugin
Bamboo plugin: Bamboo builds had issues when a PlasticSCM changeset was empty. Fixed.GUI
GUI: 'Create workspace' dialog was closed if the input parameters were not valid. Now, the dialog stays open when the parameters are not valid.5.4.16.638
New
Mac & GTK Plastic SCM GUI
Mac & GTK Plastic SCM GUI: The replication dialog is now available. Branches can be replicated (pulled or pushed) by right-clicking on them in the 'branches' and 'branch explorer' views and using the 'Replication' submenu.Mac & GTK Plastic SCM GUI
Mac & GTK Plastic SCM GUI: Now, the history view shows info about 'moved' and 'removed' operations.GTK Plastic SCM GUI
GTK Plastic SCM GUI: Now, when the rule of the 'branch explorer' filter is being changed, the extension panel is opened in order to save the changes.GUI
GUI: Usability: The 'diff branch' feature were showing changes among merged changesets belonging to the same diffed branch in separate 'merge from' nodes, which was confusing. Now, these changes are shown together, out of those 'merge from' nodes, as they belong to the same branch indeed.Bug
Mac Plastic SCM GUI
Mac Plastic SCM GUI: Fixed an unexpected error message in the branch explorer view. It was raised when selecting a branch, changeset or label if the user didn't extend the 'properties' panel before.Mac & GTK Plastic SCM GUI
Mac & GTK Plastic SCM GUI: The context menu of the history view should not be available for directories. Fixed.Mac Plastic SCM GUI
Mac Plastic SCM GUI: Fixed a crash that happens sometimes closing the 'preferences' window:Exception Type: EXC_BAD_ACCESS (SIGABRT)Exception Codes: KERN_INVALID_ADDRESS
Merge
Merge: Fixed an error performing a 'merge-to' operation when the source contributor has performed complex 'move' and 'add' operations with directories. Example:* Initial structure://src/src/engine
Performing a 'merge-to' operation from the source contributor to the initial structure, was causing an error. Now the error has been fixed and the 'merge-to' operation can be successfully completed.* Changes in source contributor:move /src/engine -> /src2del /srcmove /src2 -> /srcadd /src/foo.c
5.4.16.635
New
WebUI
WebUI: Styles reviewed and beautifiedGTK GUI client
GTK GUI client: Added 'Display only relevant changesets' option to the 'branch explorer' display options.Bug
GUI
GUI: Fixed aesthetic UI issues in the add user/group dialog (permissions dialog).GUI
GUI: Fixed some GUI component aligments in 'Move detection' preferences dialog, 'Repository permissions' dialog, and 'Profile selection' dialog.GUI
GUI: The 'Branches with pending merges' format was not working properly on replicated servers. Fixed.GUI
GUI: The branch differences was throwing an error message on a corner case involving an item moved and changed on multiple merges. Fixed. Simplified case of failing scenario:Now, this case has been fixed and the branch differences are displayed properly.* Have a '/main' branch populated with a file 'foo.c'* Create branch '/main/task1' and switch to this branch* Change 'foo.c' file on '/main/task1'* Create branch '/main/task2' and switch to this branch* Change 'foo.c' on '/main/task2'* Move 'foo.c' to 'bar.c' on branch: '/main/task2'* Create branch '/main/task3' and switch to this branch.* Merge from '/main/task1' to '/main/task3'* Merge from '/main/task2' to '/main/task3'* Create branch '/main/task3/task4' and switch to this branch.* Change 'bar.c' on '/main/task3/task4'* Switch to branch '/main/task3'* Merge from '/main/task3/task4' to '/main/task3'* Diff branch '/main/task3' -> error
5.4.16.634
New
GTK Plastic SCM GUI
GTK Plastic SCM GUI: Branch Explorer: Navigate to 'home' changeset and 'search' features have been implemented.GTK Plastic SCM GUI
GTK Plastic SCM GUI: Branch Explorer: Implemented navigation using the keyboard: home, end, escape and arrow keys.GTK Plastic SCM GUI
GTK Plastic SCM GUI: Branch Explorer: Added a 'properties' view on the Branch Explorer side panel. It displays information related to a single selected object on the branch explorer: name, repository, owner, creation date, replication sources, GUID and comments. The comments text field also allows to update the comment of the selected object when modified.GTK Plastic SCM GUI
GTK Plastic SCM GUI: Branch Explorer: Implemented date filter for the branch explorer.GTK Plastic SCM GUI
GTK Plastic SCM GUI: Filters and conditional format rules implementedGTK Plastic SCM GUI
GTK Plastic SCM GUI: Preferences window implementedMac 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
/src/core_engine/license.datGameUI
GameUI: The GameUI main window was not showed properly when it was maximized on an extended desktop configuration and the secondary monitor had a resolution higher than the resolution of the primary monitor. Fixed.5.4.16.633
New
Command Line Interface
Command Line Interface: The 'RevisionHeadChangeset' field of the 'cm fileinfo' command is now available for partial workspaces.GameUI
GameUI: The progress of 'update' operation has been improved:- Now, the progress of the operations to apply is shown. This way, operations that don't involve download (move and delete operations) are now notified.
- It also shows the totals at the beginning of the operation (size to download / files to download / operations to apply).
'Updated 2.8MB of 580MB (2 of 156 files to download / 45 of 202 operations to apply'
Jenkins plugin
Jenkins plugin: Jenkins workspaces now support multiple Plastic SCM workspaces.Bug
GUI
GUI: An error occurred when trying to show the 2D revision tree of a checked-out item. Fixed.Fixed several aesthetic issues in the server conf…
Fixed several aesthetic issues in the server configuration wizard form.GUI
GUI: First difference was not focused in the 'diff' view when navigating over the changed files. Fixed.5.4.16.632
New
This release introduces the new Team and Enterpri…
This release introduces the new Team and Enterprise Editions.Merged releases
5.4.16.630
New
Authentication
Authentication: Active Directory and LDAP groups can be customized now. This will allow server administrators to create new credentials groups which will be visible only from PlasticSCM. It can be useful if the AD/LDAP systems have restricted access, not allowing groups to be created. In order to take advantage of this new feature, the server must be set to ADWorkingMode or LDAPWorkingMode, and add a new line on the 'server.conf' file:The currently supported settings are:<WorkingModeSettings>[setting[;setting2;...]]</WorkingModeSettings>
-
: include PlasticSCM users and groups
add_up -
: don't include AD/LDAP groups
skip_groups
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:<WorkingModeSettings>add_up;skip_groups</WorkingModeSettings>
Group names should be unique, whereas user names can appear in different groups. Example::[[:...]]
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:gallia:caesar:vercingetorixroma:augustus:caesarhispania:augustusaegyptus:cleopatra
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 replicateGUI
GUI: Texts in preferences panel in Windows GUI, merge and diff tool sections, were cut. Fixed.Mac/Linux Plastic SCM GUI
Mac/Linux Plastic SCM GUI: Fix branch explorer concurrence refresh issue after switching to changeset operation from the branch explorer. The 'home' icon was not updated sometimes.Mac/Linux Plastic SCM GUI
Mac/Linux Plastic SCM GUI: The update progress panel was showing the progress status from the previous update operation until the new one was calculated. Fixed.Merged releases
5.4.16.628
New
gtkplastic beta is finally out
gtkplastic beta is finally out We're happy to announce the first beta of the native, gtk based, Linux GUI of Plastic SCM. This new Linux GUI is meant to replace the current X11 based. It is still not fully functional since it doesn't include replication support and some other key features are still missing, but it is already able to do a complete branch/merge cycle. It can be installed using the package system for different Linux distros and the package name is 'plasticscm-client-gtkplastic'. Contact support if you have questions about installing this beta version.Mac Plastic SCM GUI
Mac Plastic SCM GUI: Add support for the command line options: --configure, --switch, --wk, --clientconf, --server, --cacheserver and remember the last workspace that was opened.Mac Plastic SCM GUI
Mac Plastic SCM GUI: The configuration panel has been improved. Now it is simplier and it shows the current configuration to the user if there is already one.Bug
Mac Plastic SCM GUI
Mac Plastic SCM GUI: Fix branch explorer erratic behavior with the trackpad.Mac Plastic SCM GUI
Mac Plastic SCM GUI: Fix null exception while trying to filter a view that is not filled yet.5.4.16.627
New
GameUI
GameUI: The update operation has been greatly optimized when updating already loaded files to their latest contents (2x faster in this scenario). Performance optimization benchmark: Work with a workspace containing 100K files. Run an 'update' operation having 30K files (already loaded in the workspace) pending to update to their latest contents (the 30K files sum 4.7 GB in total). Results:- Before the optimization, the update operation took 556s.
- After the optimization, the update operation took 233s.
Bug
Diff
Diff: The diff operation didn't correctly detect move/add operations under a 'move' cycle. Example: Initial structureChanges//src/src/code/src/code/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' operationmv /src/code -> /codemv /src -> /code/srcmv /code/foo.c -> /code/src/foo.c
'rm /code/foo.c'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 structureChanges commited in the server://src/src/foo.c
Local workspace operation:mv /src/foo.c -> /foo.c
This case has been fixed, an now the parent directory does not remain as checked-out in the workspace anymore.rm /src/foo.c
GameUI
GameUI: Improved performance of 'checkin changes' view when there are tons of pending changes. The responsiveness checking/unchecking nodes in the 'checkin changes' view has been improved too.GameUI
GameUI: The column sorting did not work in the GameUI for the 'workspace explorer' view. Now it's fixed.GameUI
GameUI: Fixed a usability issue. The scroll was slightly moved after refreshing the 'workspace explorer' view. Fixed.GUI
GUI: Fixed some aesthetic issues in the 'create branch' dialog.Client configuration wizard
Client configuration wizard: Fixed aesthetic issues using the black theme (the default theme used in Linux and Mac).Merged releases
5.4.16.625
New
Server
Server: Support for SQLite 3.8 including WAL (Write-Ahead Logging). WAL enables SQLite backend users to avoid locking when multiple threads try to read simultaneously from the database. SQLite is the default on Linux/Mac installations and optional on Windows. In order to setup WAL, use the following connection string in 'db.conf' file:Data Source={0};Synchronous=FULL;Journal Mode=WAL;Pooling=true
Support Eclipse file types (binary/ASCII) in Plas…
Support Eclipse file types (binary/ASCII) in Plastic SCM. When the user adds new files to the source control using the Eclipse IDE, the file type for its file extension, or file name configured in Eclipse (binary or ASCII) is preserved.GUI
GUI: Diff branch/changeset dialog: Now it is possible to revert to one of the revisions shown in a Diff branch, changeset or label dialog. To do that, right click on the desired revision and select "Revert to this revision..." of the item's context menu.Bug
GameUI
GameUI: After checking in a moved file (not checked-out) which was out-of-date in the workspace, the revision loaded in the workspace was updated to the latest one, which was wrong. Fixed.GameUI
GameUI: The 'checkout' operation was leaving exclusive locks in the server side when the workspace was already used by another operation. Fixed.5.4.16.624
New
GameUI
GameUI: Improved the explorer view performance when changing between items with large revision history. Also, the history view for directories is now disabled.Bug
GUI
GUI: When the log4net "Merge" logger is set to INFO (or DEBUG), the merge operation could eventually show an error, aborting the operation. This error happened since 5.4.16.621 and now it's fixed.GUI
GUI: The 'Diff' window was not setting the vertical scroll at the beginning of the file contents after focusing a different item. Now, after switching among the different files in the diff window, the scroll is set at the top of the contents.GUI
GUI: Code Review: Double clicking on a code review comment did not focus the commented line in the right textbox of the differences panel correctly. Now it's fixed.5.4.16.623
New
GameUI
GameUI: Now, the 'update' operation is also able to apply 'move' operations in the workspace. Additionally, the update report has been improved when the update cannot apply certain operations, showing the affected item and the reason.Bug
GameUI
GameUI: The configuration view was throwing a 'key duplicated' error following the next steps:- A directory already loaded in the workspace is marked to be unloaded (set checkbox to 'unchecked' status).
- One of the items under the directory was also renamed or moved in the server side.
- After clicking the checkbox to mark the directory to be loaded again, (set checkbox to 'checked' status), the error is shown.
5.4.16.621
New
Added new End Of Line (EOL) conversion mechanism
Added new End Of Line (EOL) conversion mechanism The Plastic client now implements a EOL conversion mechanism capable of transforming the different end of lines of text into the right one for the local system. This feature is useful for teams working on different operating systems with editors and IDEs that can't handle correctly (or complain) files with different EOL types. EOL conversion only works for text files. There are two ways to enable EOL conversion (it is disabled by default):- Editing client.conf and adding the new AutoEolConversion key:
The valid values are: None (the default), Auto (converts based on the OS), CR, LF, CRLF.<AutoEolConversion>Auto</AutoEolConversion>
- Creating a file named eolconversion.conf. This way it is possible to define the EOL conversion based on the file extension as follows:
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:cr .cpp, .paslf .ccrlf .h
- 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.
- Updating an existing workspace won't rewrite unchanged files even if they need EOL conversion. Only new files being downloaded will be converted.
- If you have a file checked out and then you change the EOL configuration, then diff with previous can display differences in EOLs.
- Remember to restart the GUI after changing the EOL conversion settings (client.conf won't be reloaded otherwise).
Merged releases
5.4.16.619
New
GameUI
GameUI: Added auto upgrade mechanism The GameUI now checks whether its current version is compatible with the server version. If an upgrade is needed, GameUI asks the user to confirm, downloads the new installer and runs it. To configure the upgrade system please follow the instructions here.GameUI
GameUI: Items added by other users were not automatically downloaded in the two following scenarios:- After checking-in a directory locally added.
- After configuring an empty directory (without children) to be loaded.
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 redesignedMerged releases
5.4.16.617
Merged releases
5.4.16.613
New
GameUI
GameUI: The checkin operation will be retried if a new changeset has been created in the target branch during the data uploading phase. The checkin operation is retried up to three times (although the checkin data is uploaded once) before rejecting the operation.GUI
GUI: Implemented 'tree' view mode (items grouped by path) for Pending changes view and Diff branch/changeset views. Items can be shown grouped by paths. To enable this new view mode, right click in the list of items and select the context menu option: 'view items' > 'as list/as tree'.GUI
GUI: Recent comments: New features for long, multiline comments. If the comment is very long, the ellipsis is performed in the middle of the text, so that users are able to check the beginning and the end of the comment. Additionally, a tooltip is shown when hovering over a recent comment, showing the full text.Bug
GameUI
GameUI: Fixed error messages in history and preview panels that where shown under race conditions while loading the history or the preview of certain items. Also, if the server was down, the history of an item was loading forever. Fixed.Web UI
Web UI: The 'Changesets' charts were not being loaded due to a collision between the URL for of changeset charts (i.e.:http://server:port/repository/Charts/Changesetshttp://server:port/repository/module/ChangesetsFixed duplicated items in the differences of a br…
Fixed duplicated items in the differences of a branch where other branches are merged into this one. An item appeared as many times as merges where the item was modified.5.4.16.612
New
P4 sync
P4 sync: Now the 'exec' file type modifier is preserved during the synchronization process. The modifier is mapped to the file system permissions on Plastic SCM as follows:-
During the 'pull' process the behavior is as follows:
-
If the 'exec' file type modifier is set in P4 -> The execution permissions in Plastic SCM are set to the user, to the group and to others ().
r-xr-xr-x -
If The 'exec' file type modifier is not set in P4 -> The execution permissions neither are set ().
r--r--r--
-
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 (
-
During the 'push' process the behavior is as follows:
- If any execution permission is set in Plastic SCM (either to the user, to the group or to others) -> The 'exec' file type modifier will be set in P4.
- If no execution permission is set in Plastic SCM (neither to the user, nor to the group or to others) -> The 'exec' file type modifier will be removed in P4 (if it was set before).
5.4.16.610
New
GUI
GUI: The 'Set selector...' option has been removed from the Workspace view, as it is not really useful to set a custom selector manually since Plastic SCM 4.xWeb UI
Web UI: Aesthetical improvements have been made on 'Branches', 'Changesets' and 'Labels' views regarding column order and alignment. In addition to that, the 'Code Reviews' are now shown sorted by date, showing the most recent code reviews first.A new configuration dialog for the Plastic SCM cl…
A new configuration dialog for the Plastic SCM client has been implemented. Users are able to configure their setup from this dialog, in a single step, no more 'next - next ...' wizards. To configure the server to work with, users are now able to scan the network to find Plastic SCM servers around by clicking on 'Scan network', and use SSL connection optionally. When clicking on 'Connect' to the server button, the authentication mode is inferred, and users only will have to type only his/her credentials. The 'Check' will validate the credentials typed. Optionally, users are able also to configure a Plastic SCM Proxy server and test the connectivity.Bug
Merge view
Merge view: Context menu options for directory conflicts were using the wrong repository information when the conflict was under an xlink. Thus, when selecting the 'View changes on source' option, for example, a 'Revision not found' error might appear. Fixed.Merged releases
5.4.16.609
New
GameUI
GameUI: Aesthetic improvements configuring the workspace regarding directory selection:- Partially selected directories checkboxes are now drawed with a triangle instead of being filled with a square.
- Different size & color pair is used when a directory is selected to be loaded, unloaded, or remains the same.
Bug
GameUI
GameUI: If a directory is configured to be fully downloaded in user's A workspace, and a new file in user's B workspace is added in the same directory, when the user A configures again the workspace, the new file added by user B was not downloaded automatically. Now this behavior has been reviewed and the file added by user B in its workspace will automatically be downloaded in user's A workspace. The same will happen for other changes in the directory structure, such as moved or deleted files.5.4.16.607
New
The performance improvements in the Pending Chang…
The performance improvements in the Pending Changes view introduced in 5.4.15.604 are now available and public.Now, the submodules and the xlinks are synchroniz…
Now, the submodules and the xlinks are synchronized by the GitSync. The Git submodules are converted into Plastic xlinks during the pull and the Plastic xlinks are converted into Git submodules during the push. The .gitmodules file is not synchronized as a normal file. It is handled on a special way. It is not pulled to Plastic SCM since it is only needed on Git to handle the submodules (is a metadata file). It is regenerated during the push, according to the xlinks info. Remarks: the content is generated by the sync operation, so the manual editions on this file will not be preserved during the push. Please note that before synchronizing a repository with xlinks or submodules, the target repositories must be synchronized. In order to synchronize a repository with xlinks/submodules the mapping information must be added on the gitsync configuration file(gitsync.conf). This information is added on the submodules section with the following format: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:git_repository_url -> plastic_repository_spec [writable:true|false] [relativeserver:true|false]
[submodules]git://localhost/code -> code@localhost:8084 writable:true relativeserver:truegit://localhost/doc -> doc@localhost:8084 writable:false relativeserver:true
5.4.15.606
New
GameUI
GameUI: The status column shows the new status 'Deleted on server' when the item is deleted in the current branch on the server side. The update operation will unload these items from the workspace when they are not changed or checked-out.GameUI
GameUI: The update operation will download the new content under the directories that were fully checked during the configuration process.5.4.15.605
New
GameUI
GameUI: Now it is possible to show the GameUI help by typing any of the following arguments:Example:* '--help'* '-h'* '--?'* '-?'
$> gameui.exe --help
GameUI
GameUI: Added new command line options related to the client configuration:-
: Allows to specify a custom configuration file.
--clientconf -
: Allows to specify a custom PlasticSCM server instead of the configured by default.
--server -
: Allows to specify a custom PlasticSCM cache server instead of the configured by default.
--cacheserver
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>'GameUI
GameUI: The 'gameui.exe' process wasn't finishing properly when the tool was launched with the'--wk'Merged releases
5.4.15.604
New
The pending changes view performance has been imp…
The pending changes view performance has been improved on Windows. Previously when the disk changes are selected by the user to be show, each time that the pending changes view is refreshed, the full workspace content must be checked on disk. Now, the workspace content is checked only the first time. The following times only the directories where the disk content has been changed will be checked. As a result, the pending changes are obtained much faster. See the results:- Using a workspace with 312.722 files and 44.077 folders, 100 files distributed on 10 folders are modified, and then, we look for the pending changes again. Also, we ensure that the workspace content is not cached by the file system, so it must be read from disk. To ensure it, we clean the file system cache.
- We check the described scenario on the release 5.0.44.598 and the pending changes are obtained on 137481 ms. We also check the described scenario with the new functionality and the pending changes are obtained on 4011 ms. With the new functionality the pending changes are obtained 34 times faster than before.
5.4.15.602
New
GameUI
GameUI: Improvements in the image preview- Preview added for deleted files in Checkin Changes. Useful to know what was deleted prior to checkin.
- Preview of checkouts is available now.
- Directories now have preview both in Configuration Mode and History.
- The preview is now updated when switching from history to the Explorer tree.
- The hash calculation of files to preview has been modified so it is much faster and even large files don't slow down the UI.
GameUI
GameUI: Added the 'revert to this revision' option to the context menu of the history view.GameUI
GameUI: Some standard operations from the CLI and the GUI cannot be run in GameUI (partial) workspaces. The Plastic SCM client core now detects the type of the operation's underlying workspace and if the operation cannot be executed, the user is notified with a descriptive message.Bug
Replication
Replication: The replication operation had a file/directory handlers leak due to the logging configuration. Up to two handlers of the server folder were kept opened per replication operation. Fixed.GUI
GUI: The 'create workspace' dialog appeared twice when creating a new workspace from the workspaces view. Fixed.5.4.15.601
New
GameUI
GameUI: Added the 'checkout recursively' option to the context menu of the workspace explorer view.GameUI
GameUI: Unavailable xlinks are now properly handled in the GameUI. (An unavailable xlink could be a xlink whose target changeset has not been replicated to the working server). Some common scenarios are described below:- The 'checkin' operation doesn’t allow to submit changes inside an unresolved xlink. The operation will warn about this, and the operation will not be performed.
- The item status on the 'workspace explorer' view shows information about unresolved xlinks and files inside them.
- The 'configuration' view shows if an xlink cannot be resolved on the server configuration as well.
- The 'update' operation warns about unresolved xlinks.
GameUI
GameUI: Now, an xlink can be deleted. Previously, the 'checkin' operation was not handling deleted xlinks.GameUI
GameUI: Now, the GameUI supports writable xlinks not pointing to the head changeset on the targeted branch.Merge
Merge: From now on, the 'merge' operation supports changes inside 'delete' transformer rule types. The deleted items involved are restored in order to apply changes from the merge operation.GUI
GUI: Repository browser views: Now, the 'Preview' button is available on these kind of views, so that users are able to preview the items shown in this view. The information provided is limited, since the items shown in this view are not loaded in the workspace. Thus, the information available for regular files is their size; in the case of images the resolution and dimensions information is shown along with the file size.Performance
Performance GameUI: The traffic between the GameUI and Plastic SCM server has been shrunk. Now, the GameUI reuses the loaded workspace tree and only requests the differences between the loaded tree and the requested tree.Bug
GUI
GUI: The key combinations: Shift+End, Shift+Home, Shift+PageUp and Shift+PageDown were disabled, so users weren't able to navigate across some views using these combinations. Fixed.Triggers
Triggers: The behavior of the system when anafter-(operation)-
If an trigger fails, then the
after-setselectoroperation that comes next is not run, since the setselector failed.update -
If an trigger fails, then the
after-mkbranchoperation is not run, since the mkbranch failed. (This scenario is only valid if the user selected theswitch to branchoption).switch workspace to this branch after creating the branch -
If an trigger fails, then the review is not opened (if the user selected the option to do that), since the
after-mkreviewoperation failed.mkreview
Merged releases
5.4.14.599
New
Game UI
Game UI: It now remembers the tree column widths. The last folders opened are now remembered, and the switcher window is activated when the user clicks the "Switch workspace" button. In addition to that, fixed some minor bugs regarding the settings.Game UI
Game UI: New command "cm partial" has been added to allow running commands in a partial workspace. Usage:Commands:cm partial command [command options]
configureaddco | checkoutunco | undocheckoutci | checkinmv | moverm | removeupd | update
Bug
Update
Update: A problem involving concurrent downloads while looking for already existing controlled items has been fixed.5.4.14.597
Bug
GameUI
GameUI: The update operation was not able to update a file when the readonly attribute is set. Fixed. Moreover, the GameUI will use the 'SetFilesAsReadOnly' preference set in the 'client.conf' configuration file to keep the readonly attribute after a 'checkin' or 'update' operations accordingly.5.4.14.595
New
Command line client
Command line client: Annotate command: Now it is possible to annotate a specific revision from the command line, using its full specification. Examples:* cm ann AclCmd.cs#cs:12548@codice@azrael:8888* cm ann AclCmd.cs#cs:12548
GUI
GUI: Several aesthetical improvements have been made- Minor component alignment issues have been fixed.
- Some icons have been removed from the dialogs.
- Some icons have been updated.
5.4.14.594
New
GameUI
GameUI: Usability and performance improvements have been included in this release:- Aesthetical improvements.
- Keyboard shorcuts.
- Item search in 'Workspace configuration' mode.
- Improved status calculation performance.
- Initial Xlink support.
Upgrade system
Upgrade system: New 'server.conf' key, named 'ForceBuildNumberMatch' enables sysadmins to force Plastic SCM clients to upgrade to the latest build, even if the clients are compatible with the server. The server will reject requests if the build number doesn't match. To configure it enter the following value in server.conf:<ForceBuildNumberMatch>yes</ForceBuildNumberMatch>
Command line client
Command line client: A new command, 'codereview' or 'cr' has been added to the command line client. It is intended to create, edit and delete code reviews in a given repository. As usual, code reviews can be created for branches or changesets. Examples:To get further information, please check the documentation ('cm help cr').$ 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
Mac Plastic SCM GUI
Mac Plastic SCM GUI: Ignored elements on the 'Workspace Explorer' and the 'Pending changes' view will now be correctly displayed as 'Ignored' items, including the overlay icon on the 'Workspace Explorer'.Bug
GUI
GUI: Diffing two changesets in the same branch was throwing a 'key duplicated' exception when a deleted item between these changesets was previously merged to the branch. Fixed.5.4.14.593
New
GameUI
GameUI: Several improvements in the 'Details' panel on the right side of the screen:- Update thumbnail while navigating through the history of an item.
- The loaded revision in the workspace is now highlighted in the history view.
- The thumbnail is clean when no item is selected.
Mac Plastic SCM GUI
Mac Plastic SCM GUI: The 'Workspace switcher' window can be reopened through the following menus:- 'View' > 'Repositories or
- 'View' > 'Workspaces'.
Bug
GUI
GUI: Branch Explorer view: Fixed a layout issue in the 'Branch Explorer'. New empty branches were wrongly positioned.Merged releases
5.4.14.591
New
The lock (exclusive checkout) behavior has been m…
The lock (exclusive checkout) behavior has been modified. Now the lock requires the file to be checked out to be the latest on the branch (no need to set the 'require head' param). It doesn't force to be up-to-date with the head changeset as a whole but to make sure the files to be locked are head, so it prevents concurrent changes to happen. This new behavior has been developed for the new GameUI (game artist oriented Plastic SCM and GUI) but it applies system wide.First GameUI beta with complete working cycle sup…
First GameUI beta with complete working cycle support.Web UI
Web UI: Implemented submodules support. The module name is specified in the URL after the repository name. The following URLs are valid:-
http://server/repname/Items -
http://server/repname/modulename/Items
Bug
The changes on a Xlink were not expanded and trav…
The changes on a Xlink were not expanded and traversed during a merge operation when the Xlink is involved on a conflict. Fixed. Now the Xlink changes are expanded. Fixed also several "null reference" error messages on not so common scenarios involvong Xlink conflicts resolution, such as cherry picks from already merged changes, and path reuse scenarios (delete and add a Xlink with the same name pointing to a different repository).Merge
Merge: Fixed a failing scenario where moved items were duplicated on the original path. The failing scneario is the following:- Create the following structure on a branch (branch: 'A'):
/game (xlink)/game/src/game/src/foo.c/game/src/bar.c
- Create another branch 'B' and switch to it. Then, add the following item:
/game/src/baz.c
- Switch to branch 'A' and perform the following changes:
add /game/codemv /game/src/* /game/coderm /game/src
- Merge from branch 'B'. A 'change-delete conflict will show up. Choose 'keep source' -> Items duplicated in and
/game/src./game/code
GUI
GUI: Aesthetic and typographical issues have been fixed.5.4.13.590
New
GameUI
GameUI: Look & feel improvedBug
GUI
GUI: Sometimes, a 'Null Reference' exception was shown when showing the method history (only available in .NET 4 installations).5.4.13.589
New
GameUI
GameUI: Now, the history view is available when the user selects an element on the checkin and explorer workspace views.Command line client
Command line client: The 'ls' command now accepts a a new format parameter, named "transformed". It displays the applied rule for any transformed item. Please see the command help ('cm help ls') for further detail.Mac Plastic SCM GUI
Mac Plastic SCM GUI: Recent comments feature added, working the same way as Windows GUI does.Bug
GUI
GUI: Unable to undo an empty merge (the pending changes view only shows merge links pending to be checked in). Fixed. A scenario to reproduce the fixed bug is the following:-
Switch to branch
/main -
Create file
foo.c -
Add & checkin
foo.c -
Create branch
/main/task001 -
Switch to branch
/main/task001 -
Delete and checkin
foo.c -
Switch to branch
/main -
Delete and checkin
foo.c -
Merge from branch -> empty merge, only a pending merge link appears in the pending changes view.
/main/task001 - Undo changes -> before this bugfix, the pending merge link didn't dissapear, when it should.
5.4.13.588
New
Mac Plastic SCM GUI
Mac Plastic SCM GUI: Several improvements on the Branch Explorer view. Fixed a layout issue (some branches were overlapped when they had no visible parent changeset).Bug
Mergetool
Mergetool: The 'result' file encoding preference was not considered in an automatic file merge (when no user intervention is required). Fixed.5.4.13.587
New
Second GameUI public release fixing a problem in…
Second GameUI public release fixing a problem in status calculation.Merged releases
5.4.13.585
New
Documentation
Documentation Command line interpreter help: Command help and usage reviewed and updated accordingly.5.4.13.584
New
Server aliases allow reaching the same server by…
Server aliases allow reaching the same server by different IPs and protocols. The new serveralias.conf file enables this feature on the client. Example: suppose you connect to localserver.office-network.com:8084 from the office, but when you go home you connect through the public SSL-protected IP: ssl://plastic.external-network.com:8090. Using the server aliases the Plastic client will be able to switch from one server URL to the other transparently. The content of the serveralias.conf will be:Please note it can jump not only to a different URL but also a different protocol (in this case from regular TCP to SSL).localserver.office-network.com:8084 ssl://plastic.external-network.com:8090
Bug
Fixed the checkin operation error "The Item X cou…
Fixed the checkin operation error "The Item X could not be found in the tree. The new tree cannot be built". It occurred under the following circumstances:- UserA and UserB work on the same branch loading the same changeset.
- UserA deletes 'file1'
- UserB deletes 'file1' and changes 'file2'.
- UserA commits the 'file1' deletion.
- UserB commits the 'file2' change. The 'file1' deletion is still pending to commit.
- UserA changes 'file3' and commits the change.
- UserB tries to commit the 'file1' deletion (or a new change), but the checkin operation fails with the previous error.
GUI
GUI: The Ctrl+V shortcut key did not work in the items view.Merged releases
5.4.13.580
New
Initial version of GameUI
Initial version of GameUI5.4.13.578
New
Update operation
Update operation: Update progress now shows progress for big files (in 4mb blocks) too.Bug
GUI
GUI: The 'branches' view did not work properly switching between 'list' view mode and 'tree' view mode when the list was ordered by name (descending). Fixed.Merged releases
5.4.13.576
Bug
GUI
GUI: Checkin progress: The 'current block' progress bar was not resized when resizing the dialog. Fixed.GUI
GUI: Fixed a crash when using 'find in files' feature in a diff branch or diff changeset dialog when the differences contains xlinks.5.4.12.575
New
Improved the symbolic information in the mergetool
Improved the symbolic information that is shown in the mergetool, when resolving a three way merge:-
Added a parameter in mergetool () to notify the current merge operation to the mergetool
--progress -
Added a parameter in mergetool () to get extra information about the current merge in the mergetool
--extrainfofile - 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 and
--progressparameters--extrainfofile - 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.
--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: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):<MySqlTmpTablesOnMemory>yes</MySqlTmpTablesOnMemory>
- Before this release (release 4.1.10.559):
- Read 440.000 revisions from the 'revisions' table (which contains 11 million revisions) -> 11404 ms.
-
Whith this release (release 4.1.10.561):
- Read 440.000 revisions from disk temp table -> 9688 ms.
- Read 440.000 revisions from memory temp table -> 6084 ms.
Merged releases
5.4.11.571
New
p4 sync
p4 sync: Added a debug parameter to the 'cm sync p4' command to avoid p4 client deletion at the end of the sync process. The parameter is:'--dontremovewk'5.4.11.568
New
Update operation
Update operation: Now, the update operation notifies the download progress, printing size and number of files being downloaded. Also notfies whether the update operation is downloading a big file.Checkin operation
Checkin operation: Improved the checkin progress notification when working with slow networks.Bug
p4 sync
p4 sync: The 'sync' operation didn't detect moved files on a case insensitive depot when the changelist's depot path entries are stored in different cases for a moved/added - moved/deleted pairs that should be matched as moved items. Fixed. Example of the failing case, 'p4 changelist' output:... depotFile //MyStream/Src/foo.c... headAction move/delete... depotFile //mystream/src/foo.c... headAction move/add
Command line client
Command line client: The 'cm ls' command was showing an error message if the workspace contained xlinks and the '--tree' option or the '--selector' option were used together with the '--xml' or the '--format' option, and the '-R' option was not specified. The issue was related to obtaining the revision GUIDs to show them in the command output.5.4.11.567
New
CLI
CLI: 'cm fileinfo' command is now available. It displays detailed information regarding a controlled item in the workspace. Additional documentation and examples can be found executing thecm help fileinfoNow, the listlocks command shows the user name in…
Now, the listlocks command shows the user name instead of the SID.Bug
When the listlocks command is used with the --onl…
When the listlocks command is used with the --onlycurrentuser option on an authentication mode that uses SID, no lock was returned, although the current user had locked items. Fixed.Command line client
Command line client: The 'cm find revs' command was printing unexpected paths in the result with certain 'where' clause filters. Fixed.cm ls
cm ls: XML output formatting reviewed; removed unuseful information, replaced the ItemType node by Type and added a new Status field that specifies whether the node is Controlled or Private. Now, every LsItem displays the same fields, no matter whether it is controlled or private.Visual Studio 2013 / 2013 Package
Visual Studio 2013 / 2013 Package: The installer was not checking whether Visual Studio was running during a Plastic SCM upgrade; therefore the VSIX installation might fail because the installer could not replace the old dlls with the new ones. Fixed.5.4.11.565
New
Added a new client-side configuration file, named…
Added a new client-side configuration file, named 'compression.conf', which enables a custom configuration of the compression method used to store the new revision of a file in the database. Currenty there are two tipes of compression methods supported:- none
- zip
The default compression type is 'zip'. There are 4 types of rules that can be specified, and the order of application is the following:--- compression.conf --none .jpgzip .txt------------------------
- File path rule
- File name rule
- File extension rule
- Wildcard rule
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:1. /dir/foo.png2. foo.png3. .png4. /**/foo*.???
- Root of the workspace (it will be valid only for that workspace).
-
User config folder (usually or
\Users\AppData\Local\plastic4) (it will be applied for all workspaces).$HOME/.plastic4
5.4.10.564
Bug
Server
Server: The server was returning a 'CmItemLoadedTwiceOnTreeException' performing a checkin after a merge operation, when the merge source contributor has performed changes like the example below:- Initial content:
//dialogs/dialogs/Progress.cs/views
- Changes on source contributor
This issue has been fixed.added /guimoved /views -> /gui/viewsmoved /dialogs -> /gui/views/commonmodified /gui/views/common/Progress.cs
Merged releases
5.4.9.560
New
Command line client
Command line client: from now on, the return code of 'cm find' won't be an error code if the object specified in the condition is not found in the repository. An empty list will be returned instead.Command line client
Command line client: Added 'srcrepname' field to the 'cm find attribute'. Also, 'srcrepname' and 'dstrepname' have been added to the 'cm find link' fields. Example:cm find attribute where srcobj='br:/main' --format="{value} rep:{srcrepname}"
Command line client
Command line client: from now on, the 'cm status --changelists --xml' command shows the changelist name in the xml output.Transformable workspaces
Transformable workspaces: now, both the update operation with pending changes in the workspace, and the fast-update operation performs a check before updating: they will consider the defined transformer rules in the workspace and check whether they are compatible with the incoming changes the update operation would apply. If the check fails, the operations will fallback as follows:- In case of a fast-update operation, a standard update will be run.
- In case of update with pending changes operation, a merge operation
Bug
Command line client
Command line client: the 'cm changelist' command didn't support multiline description. Fixed.5.4.9.558
New
Transformable workspaces
Transformable workspaces: Added support for partial update with transformer rules.Merged releases
5.4.9.556
New
Server
Server: Performance improvements Improved memory usage when caching large number of changeset trees (> 300K items). Results obtained (450K items in a tree):-
Without the new improvements:
- 1 tree in the server cache -> 230 MB.
- 5000 trees in the server cache -> 1320 MB.
-
With the new improvements:
- 1 tree in the server cache -> 250 MB.
- 5000 trees in the server cache -> 290 MB.
Bug
Active Directory authentication mode
Active Directory authentication mode: Support recursive groups in AD integrated security. There were several scenarios where the permissions weren't applied as expected. Example of failing scenario:- User U1.
- Group G1. Members of G1: G2.
- Group G2. Members of G2: U1.
- If the 'read' permssion is denied to group 'G1' on a repository, the user 'U1' will have read permissions for that repository when it shouldn't.
The paths with accents characters added on window…
The paths with accents characters added on windows are not properly handled on mac (they are wrongly detected as locally moved). Fixed.Web UI
Web UI: Fixed an error viewing differences in the Code Review page from the WebUI.Merged releases
5.4.9.552
New
Server
Server: External data storage implemented for file revision contents. Now it is possible to setup the Plastic SCM server to store file revision chunks in a directory instead of inserting the contents in the database backend. Setting up this configuration leads into performance improvements on update and checkin operations. To setup this configuration, the 'db.conf' file on Plastic SCM server folder should add the following contents: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:<BlobStorage> <BasePath>FULL_PATH_TO_DIRECTORY_STORAGE</BasePath> </BlobStorage>
Example:<MinSize>THRESHOLD_IN_BYTES</MinSize>
<BlobStorage> <BasePath>C:\PlasticSCM\server\db_storage</BasePath> <MinSize>1000</MinSize></BlobStorage>
Merged releases
5.4.8.550
New
GUI
GUI: Column filters are now available on all views. An improved filter mechanism lets you specify the column you want to use to filter. You can still use the old filters to search on all columns, but you can also restrict the search to a given column as follows:Examples of valid filters are:[<column_name>:<filter_value>]*
- 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 thecm historycm hist --formatSemantic method history
Semantic method history: Fix missing data in sematic method history showing the history of a method when merged revisions are involved.Merge
Merge: Fixed an edge case on a recursive merge (the merge operation calculates more than one ancestor changeset):- When one ancestor has removed an xlink and added a new one on the same path, and another ancestor involved on the intermediate merge hasn't changed the xlink (the removed one), the merge was failing with the error: .
Can't add an entry with the same name. Duplicated child [<item name>]
5.4.8.546
New
Performance improvements
Performance improvements The number of compression threads during the upload processes (affects to the checkin, fast-import, etc.) can be configured to take advantage of the multi-cpu environments. This value can be set between 1 and 10. (With any other number it will work as single-threaded). To configure this value, the client.conf file should be edited and add a xml node, named 'UploadCompressorsNumber' as follows:<ClientConfigData> ... <UploadCompressionSize>2</UploadCompressionSize> ...</ClientConfigData>
Performance improvements
Performance improvements The number of concurrent threads during the downloading processes can be configured in order to improve the performance of the update operation. To configure this value, the client.conf file should be edited and add a xml node, named 'DownloadPoolSize' as follows:<ClientConfigData> ... <DownloadPoolSize>3</DownloadPoolSize> ...</ClientConfigData>
5.4.8.542
Bug
The owner of a submodule couldn't be changed. Fix…
The owner of a submodule couldn't be changed. Fixed.5.4.8.541
Bug
Fixed several issues regarding submodules feature
Fixed several issues regarding submodules feature5.4.7.539
Bug
GUI
GUI: Sync view: An error message was shown when syncronizing a repository with a submodule. Fixed.java cm client
java cm client: Fixed an error in the'cm log''--xml=path'5.4.7.538
New
"Submodules" feature available
"Submodules" feature available: Now it is possible to create 'repositories inside repositories' or 'submodules'. It means that a single physical repository (mapped to a physical database) can contain multiple submodules, each of them being a complete repository. Check the following example1:The 'submodule' name is as follows:$ 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
parent_repo/module_nameEclipse plugin
Eclipse plugin: The PSF now supports submodules in the repository spec.Performance
Performance Command line interface: The time loading client.conf file has been improved if the Plastic SCM version is the one compiled in .NET 4. (in .NET 2 these improvements were already available). These improvements can be noticed running any 'cm' command, as well as startup time of Plastic SCM GUI client. Results obtained executing'cm version --timer'- .NET 2: Before -> 78 ms. After -> 265 ms.- .NET 4: Before -> 63 ms. After -> 156 ms.
Merged releases
5.4.6.535
New
Transformable workspaces
Transformable workspaces: Implemented transformer rules, explained below == Transformer rules ==- The workspace content can be locally transformed based on some rules. It means, workspace items can be moved to different locations or even not loaded.
- 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:
=== Remove rules ===mv /Game /TnT/Gamemv /src/libs/nh3 /nh3
- This rule avoids loading certain parts of the tree. The specified path must be a controlled path.
- Examples:
== Transformer rules: How to use them ==rm /src/binrm /textures/hugefile.map
-
These rules are specified in a file named inside the workspace folder named
'plastic.transformerrules'(it must be manually created first).'.plastic' - 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.
- 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.
- Fast-update operation.
- Update with controlled pending changes.
- Cloaked functionality.
- Merge inside rm rules.
- 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).
- The xlinks cannot be moved by transformer rules. Example:
$ mv /src/xlink /xlink
- The tranformer rules cannot modify an already applied rule. Example:
$ mv /src/foo.c /src/bar.c$ mv /src /source
- The rm rules cannot be applied when they contain the source or destination of a mv rule. Example:
$ mv /src/foo.c /doc/foo.c$ rm /src# or$ rm /doc
- The rm operation cannot be applied when it contains the source or destination of a mv rule. Example:
$ mv /src/foo.c /doc/foo.c$ cm rm src
- The transformed moved nodes cannot be moved again. Example:
$ mv /src/foo.c /doc/foo.c$ cm mv doc/foo.c foo.c
Bug
Command line client
Command line client: The fast-update operation was failing when it had to update an xlink whose target repository has changed (the relative server option). Fixed.Merge operation
Merge operation: The recursive merge could fail when multiple intermediate merges calculate the same writable xlink to be copied (added). Fixed.5.4.6.532
New
Transformable workspaces
Transformable workspaces: Implemented core systemP4 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 acm status --changelistCommand line interface
Command line interface: Thecm cat--fileMerged releases
5.4.6.525
New
Added some shortcuts to the GUI
Added some shortcuts to the GUI:-
to show branch and changeset differences from the Branches View, Changeset View and Branch Explorer.
Ctrl+D -
will focus an item in the Items View if you have copied the item path in the clipboard.
Ctrl+V -
The diff view (diff branch, changeset) uses the following shortcuts:
-
to navigate to the next file
Ctrl + Alt + + -
to navigate to the previous file
Ctrl + Alt + - -
to navigate to the last file
Ctrl + Shift + Alt + + -
to navigate to the first file
Ctrl + Shift + Alt + - -
There is no need to focus the differences control to navigate through differences ().
Ctrl+ + or Ctrl + -
-
cm sync
cm sync: Added--commentseparator--traceinfo--commentseparatorBug
The cm ls command did not show proper information…
Thecm ls--tree--tree--selector="rep..."/dir/file.txtC:/Users/myuser/mywk/dir/file.txt5.4.6.524
New
P4 sync
P4 sync: The "cm sync" command output and help have been improved. Now, the sync process will notify progress in the initial phase, when the process is fetching the changes that needs to be synchronized (pulled from the foreign SCM or pushed from Plastic SCM to the foreign SCM).Bug
Fixed a NullReference exception calculating some…
Fixed a NullReference exception calculating some cases of cherry pick.Merged releases
5.0.44.767
Bug
Fixed an issue in protocol auto-detection that en…
Fixed an issue in protocol auto-detection that ended up in a hanged server combined with clients having wrong LDAP passwords massively.5.0.44.764
New
Plastic network protocol
Plastic network protocol This new release of Plastic SCM 5.0 adds official support for the new 'Plastic network protocol' (a.k.a. 'plasticproto'). In short, this release makes 5.0 clients compatible with 5.4 servers. Plastic SCM 5.0 clients upgraded to BL764 will be compatible with 5.4.16.765 servers and later. The 5.0 client automatically detects the protocol supported by the server. It tries to connect using 'plasticproto' first, and if it fails it falls back to remoting. The main features of plasticproto are:- Improved API compatibility. Our intention from now on is to keep all clients and servers compatible (from this release onwards). It means we get rid of breaking compatibility on major releases as we did in the past. All of this will greatly simplify deployment, especially on big teams. Users will be able to upgrade to a newer major release even if not the team members upgrade at the same time. Compatibility checks now happen on a per method basis. Methods can be versioned independently, which helps us evolving the API faster while not forcing all users to upgrade.
- Reduced call overhead: the protocol is much more compact than before, because it is lower level and designed ad-hoc for Plastic. As an example: a simple "cm lrep" request (just the request, not including the answer) was about 400 bytes before. Now it is about 50 bytes when a new socket connection is opened, and only 2 bytes if a connection is reused.
- Increased portability. The new plasticproto makes it simpler to port to new frameworks like .NET Core and implement native clients on mobile devices. This is because it doesn't rely on complex RPC like before, but just on plain sockets.
- Better performance: the lighter API helps during both performance and scalability tests. While the initial version is not dramatically faster than the older on LAN, the plan is to use it to greatly improve data transfer.
- For years, communications between Plastic client and servers (including communications between servers) happened through .NET/Mono Remoting.
- In fact, it was a heavily customized remoting layer, improved for scalability, performance, memory reduction and faster serialization, among others.
- It allowed us to run circles around other version controls (more here) but it had issues regarding major version compatibility.
- We had to freeze the API to keep it compatible, and per-method versioning was not easily doable.
plasticpipeprotocol.conf5.0.44.716
New
Server
Server: The repositories list are loaded on server startup and keep up to date all time. Previously they were reloaded only after some repository operations or when a not existing repository was used.Server
Server: Remove some noisy, unneeded log entries5.0.44.715
New
Server
Server: Improvements in Channel Call log- Added queued info to channel call and to plasticlogstats. It shows the milliseconds that a method call has been waiting before being attended.
- Added cpu time (ms) to channel call, the 'showmethodlist' command and the associated log. 'plasticlogstats' modified accordingly.
Server
Server: Loading of active/inactive users is only done during server startup.Server
Server: ActivityScheduler was locking the task list on execution. It could end up delaying system initialization if repositories failed to be upgraded. Not a big deal, but fixed.Server
Server: The ACLs for all repos are now loaded on server startup instead of on demand.Added a new flag to server.conf
file to disable database upgrades
Added a new flag to server.confserver.confDatabaseUpgradeDisabled<DatabaseUpgradeDisabled>true</DatabaseUpgradeDisabled>server.conf5.0.44.714
Bug
Server
Server: Reviewed performance of GetRepositoryList calls5.0.44.713
Bug
Server
Server: Security info was wrongly recalculated when a new user becomes active or an existing user membership is changed. Fixed. Now, only the related security info is updated.5.0.44.703
Bug
Command Line Client
Command Line Client:cm find on repository5.0.44.631
New
This release introduces the new Team and Enterpri…
This release introduces the new Team and Enterprise Editions.5.0.44.629
New
GUI
GUI: Improved I3 (black) theme on Windows by using the ClearType Fonts.Visual Studio plugin
Visual Studio plugin: Changed 'Branch Explorer' view colors in Visual Studio 2012 or higher. Now, branch explorer colors are clearer so contrast is higher. Old colors had low contrast and they were difficult to distinguish.GUI
GUI: Pending changes: Now, extra file info (changeset, size, author and modification date) is displayed for binary files.Command line client
Command line client:cm mklabelNote the cset number is mandatory in this case.cm mklabel lb:labelname@rep:myrep@localhost:9092 --changeset=8733
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 ) to the ssh config folder. Usually the folder name is
id_rsa, located in the user's HOME folder..ssh-
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
-
On Windows-based OS, the "HOME" environment variable has to be set to the user folder, such as
-
Use the GitSync specifying the SSH clone URL.
Example:
If the private key is protected, the user will be prompted to enter the passphrase.cm sync rep2 git git@bitbucket.org:myuser/myrepo.git
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 file in the
configfolder, specifying different settings foreach server. Example of.sshfile contents:configHost gitolite.elegosoft.comUser gitolitePort 2222IdentityFile ~/.ssh/id_rsaHost github.comUser gitIdentityFile ~/.ssh/github_keyHost bitbucket.orgIdentityFile ~/.ssh/id_rsa
- Solution: Create a
-
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
- 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:
Bug
Command line client
Command line client:cm showaclCommand 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 orcm statusthe 'pending changes' view and/src!/src/bin
cm status/src/src/bin/src/src/readme.txt/src/lib/newlib.h/src/bin/src/bin/client.exe/src/bin/deps/pom.xmlcm status --cutignoredCommand line client
Command line client:cm mklabelMerge
Merge: Fixed an error performing amerge- 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:
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.ch /src/foo.cch /src/bar.c
5.0.44.626
New
IntelliJ Plugin
IntelliJ Plugin: Now, IntelliJ 13 is also supportedBug
Unity 3D
Unity 3D: When the user tried to submit a single deleted item, some other paths were proposed to be submitted also, when they shouldn't, as the user only wanted to submit the deleted path. This scenario has been fixed, and only the requested path is proposed to be submitted.The extended trial registration process was openi…
The extended trial registration process was opening an invalid URL. Fixed.GUI
GUI: The license notification area was being displayed by mistake sometimes. Fixed.GUI
GUI: After a repository renaming, the GUI might show an error when building context menu options for an item in the 'Items' view. Fixed.CodeBeamer Task Control
CodeBeamer Task Control: URL's that started with 'https' string were unsupported. Fixed, added SSL communication support.GUI
GUI: An error occurred trying to search matches for a locally moved file, when it was checked out. Fixed.5.0.44.620
New
GUI
GUI: Branch Explorer: If the selected object is changed and their comments have been edited but not saved yet, a confirmation dialog is shown to let the user save the changes or discard them before changing the selection.GUI
GUI: The about form contains now a link to the release notes in the website.Unity plugin
Unity plugin: Now it is possible to submit a single path under a directory that has been previously renamed/moved. The renamed/moved directory and its '.meta' file will also be submitted, as they are required dependencies for the selected path. Example:- The Unity project has the following structure:
/Assets/Assets/Fonts/Assets/Fonts.meta/Assets/Fonts/C64.ttf
-
Rename to
/Assets/Fonts(the/Assets/Fonts_renamedfile will also be renamed to/Assets/Fonts.meta)/Assets/Fonts_renamed.meta -
Now, change the file and
/Assets/Fonts_renamed/C64.ttf/Assets/Fonts_renamed/C64.ttf.meta -
Submit and
/Assets/Fonts_renamed/C64.ttf: The directory/Assets/Fonts_renamed/C64.ttf.metaand its '.meta' file will also be submitted as required dependencies./Assets/Fonts_renamed
Bug
The mono version (2.6) included in the installer…
The mono version (2.6) included in the installer has an issue with the date conversion of files timestamp, causing that some files were wrongly detected as changed, after the daylight savings. Now, the files timestamps are converted correctly even using old mono versions.Command line client
Command line client: The 'cm li' command was showing an expiration date for 'unlimited' licenses. Now the command shows 'unlimited' string instead of an expiration date.5.0.44.618
New
GUI
GUI: Implemented 'tree' view mode (items grouped by path) for Pending changes view and Diff branch/changeset views. Items can be shown grouped by paths. To enable this new view mode, right click in the list of items and select the context menu option: 'view items' > 'as list/as tree'.Bug
GUI
GUI: When an item moved on destination and changed on both source and destination contributors was diffed from the Merge view, a "Incorrect object specification" error message was shown. Fixed.Annotate (blame)
Annotate (blame): The 'blame' algorithm finds in which revision each line of a file was created. Normally it is just about traversing the parent revisions but, when merges are involved the calculation must consider also each merge contributors. There was a bug finding whether the line was changed in the parent or in one of the merge sources. Now the issue has been fixed.5.0.44.616
Bug
GUI
GUI: A notification panel indicating the license has expired was wrongly shown when the Plastic SCM GUI was connected to a server whose version was older than 5.0.44.614. Fixed.5.0.44.614
New
GUI
GUI: Code review: Now the differences in file system permissions are highlighted in a darker color to make it easier for users to check what permissions have been changed.A new configuration dialog for the Plastic SCM se…
A new configuration dialog for the Plastic SCM server has been implemented. The configuration wizard has been replaced by a single form where the server can be easily configured in a single step.Bug
GitSync
GitSync: An error was being shown in the sync process from Git to Plastic SCM having the following scenario:- Have a Plastic SCM and Git repositories synchronized.
- Create a Xlink in Plastic SCM and push to Git (new empty commit is created in Git)
- Run an update operation in Git, and commit a new change.
- Try to sync to get the new changes performed in Git -> An error is shown.
Checkin operation
Checkin operation: The checkin operation was failing with certain rare files that cannot be compressed. Fixed.Fixed duplicated items in the differences of a br…
Fixed duplicated items in the differences of a branch where other branches are merged into this one. An item appeared as many times as merges where the item was modified.5.0.44.611
New
Crucible plugin
Crucible plugin: The plugin has been upgraded to support the newest Crucible version available (v3.5.4).Bamboo plugin
Bamboo plugin: Now the plugin is fully compatible with Bamboo 5.6.x series.Item merge tracking
Item merge tracking: The differences of changesets and branches have been improved in the way readonly xlinks are handled in merges. Now, the xlink addition, edition, or deletion is displayed in the 'merge from' category. In case of a xlink edition (replace the target changeset in the source contributor of the merge), the differences between the old target and the new target are also displayed in the 'merge from' category.A new tool has been implemented to calculate line…
A new tool has been implemented to calculate line-of-code and source-lines-of code statistics for every modification stored on a given repository. The new tool can be found in the client directory, named 'repostatscalculator'. Output results can be stored into a MySQL database. To show the tool usage, just type 'repostatscalculator' without arguments in a shell window.Bug
Merge
Merge: Fixed an error performing a 'merge' operation when a directory is removed and reloaded again during the merge resolution. The file conflicts could be lost if they were related to the reloaded directory. The failing scenario is the following:- Initial structure:
//src/src/bar.c/src/foo.c
- Changes in source contributor:
add /docch /src/foo.cmv /src/foo.c to /doc/foo.cdelete /src
- Changes in destination contributor:
Choosing 'keep source' option in the directory conflicts resolutions (DeleteChange + MoveDelete) was causing the file conflict of thech /src/foo.cch /src/bar.c
'/src/bar.c'Command line client
Command line client: Fixed unix date format in 'cm log' command Previously, tick counts since epoch was returned when{unixdate}csFormat5.0.44.603
New
GUI
GUI: Two new categories have been added in the differences dialog (Diff branch contents, Diff changeset contents):- Changed during merge (CC): it groups files changed during the merge by both the source and the destination contributors.
- Only filesystem permissions changed (Fs): it groups files with only filesystem permissions changes (chmod).
GUI
GUI: Item search improved in 'Items' view with wildcards and basic regexp. The following wildcards are allowed:*?pattern*?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:When the differences were shown, the path of the item* 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
win_local.h/code/code/win32/win_local.h/code/win32/win_local.hGUI
GUI: When the target changeset of an xlink is changed from the Plastic GUI, an auto expansion rule is generated. But a branch from the xlinked repository is wrongly set as the source branch of the rule. Fixed. Now, the right branch from the parent repository is set as the source branch of the rule.5.0.44.600
New
Visual Studio Package
Visual Studio Package: Now it is possible to use the 'Shelves' view from Plastic SCM Visual Studio plugin. The new view is available from the 'Plastic SCM' menu, where all the other views are located.GUI
GUI: Improved the selection checkboxes behavior of the pending changes view. From now on, when the user performs a multiple selection and checks/unchecks one of its nodes, the whole selection updates the checkbox value.GUI
GUI: Several usability improvements in the editable differences:- When there are unsaved changes in the 'pending changes' view (right diff textbox), a prompt dialog is shown asking the user for saving the new changes in the following
- 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
- move
GUI
GUI: If anafter-mkreprepositoriesGUI
GUI: If anafter-mkworkspaceworkspacesGUI
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.dtprojVisual Studio Plugin
Visual Studio Plugin: After saving a readonly file under version control, a 'Save as/Overwrite/Cancel' dialog was shown when it shouldn't. Now the issue it's fixed: As the file is under the control of Plastic SCM, a 'checkout for edit' operation is performed to remove the readonly attribute and saving the new file contents.GUI
GUI: The 'diff branch/changeset contents' view was not showing the deleted items as a result of a merge operation inside the top-level 'Merge from' node. They were shown as regular deleted items in a top-level 'Deleted' node. Now, the issue is fixed.5.0.44.598
New
Server
Server: Now, the maximum comment size can be manually configured. To configure this parameter, add a new tag in the server'sdb.confCommentLimitHowever, 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.<DbConfig> ... <CommentLimit>2000</CommentLimit> ...</DbConfig>
5.0.44.596
New
Extensions
Extensions: A new extension supporting CodeBeamer interoperability has been added. This allows the branch explorer and the changesets or branches views to display issue tracking information from CodeBeamer. Setup: Include these lines inside your 'client.conf' file: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:<Extensions> <Extension AssemblyFile="[PATH_TO_PLASTIC]\client\extensions\codebeamer\codebeamerextension.dll" /></Extensions>
<CodeBeamerExtensionConfiguration> <HttpUrl>http://localhost:8080</HttpUrl> <User>tester</User> <Password>tester</Password> <BranchPrefix>scm</BranchPrefix> <WorkingMode>TaskOnBranch</WorkingMode> <!-- TaskOnChangeset is also available --></CodeBeamerExtensionConfiguration>
Command line client
Command line client: Annotate command: Now it is possible to annotate a specific revision from the command line, using its full specification. Examples:$ cm ann AclCmd.cs#cs:12548@libs@saturn:8087$ cm ann AclCmd.cs#cs:12548
Bug
Jenkins plugin
Jenkins plugin: The jenkins plugin did not reuse Plastic SCM workspaces correctly when the 'Use update' preference was set. Fixed.5.0.44.592
New
GUI
GUI: Repository servers sync view: Several performance improvements have been implemented, along with new features to sync only a subset of branches:- 'Refresh' operation:
- New toolbar actions:
- Excluded branches feature:
- New 'syncviews.conf' file format:
syncviews.confsyncviews.conf# comments// or more commentssync: local - azure codice@localhost:8084 -> codice@HADES:7084 excluded: ff583b6c-311d-4178-bb95-74776d4cbef5 excluded: efb96c6c-afc0-4480-9db0-70ac77234ab3 nervathirdparty@localhost:8084 -> nervathirdparty@HADES:7084 devops@localhost:8084 -> devops@HADES:7084 excluded: 1af6ff4b-f7b5-4bd5-8a14-70e0a422bd46sync: local - diana documentation/doc@localhost:8084 -> documentation/doc@blackmore:8086
Eclipse plug-in
Eclipse plug-in: Now the pending merge links (merges in progress, pending to be checked in) are shown in the 'Branch Explorer' view.Eclipse plug-in
Eclipse plug-in: Implemented a new context menu option 'create branch from this changeset...' in the 'Branch Explorer' view.GUI
GUI: 'Differences' viewers: Revision metadata, such as changeset, size, author and modification date, is now shown for binary revisions.Bug
The changes on a Xlink were not expanded and trav…
The changes on a Xlink were not expanded and traversed during a merge operation when the Xlink is involved on a conflict. Fixed. Now the Xlink changes are expanded. Fixed also several "null reference" error messages on not so common scenarios involvong Xlink conflicts resolution, such as cherry picks from already merged changes, and path reuse scenarios (delete and add a Xlink with the same name pointing to a different repository).Replication
Replication: Fixed an error creating a replication package from a repository's branch that contains Xlinks. Fixed.Mergetool
Mergetool: The 'result' file encoding preference was not considered in an automatic file merge (when no user intervention is required). Fixed.Eclipse plug-in
Eclipse plug-in: The 'Branch Explorer' view was not automatically refreshed after checkout, checkin or undo checkout operations. Fixed.GUI
GUI: Unable to undo an empty merge (the pending changes view only shows merge links pending to be checked in). Fixed. A scenario to reproduce the fixed bug is the following:- Switch to branch '/main'
- Create file 'foo.c'
- Add & checkin 'foo.c'
- Create branch '/main/task001'
- Switch to branch '/main/task001'
- Delete and checkin 'foo.c'
- Switch to branch '/main'
- Delete and checkin 'foo.c'
- Merge from branch '/main/task001' -> 'empty merge, only a pending merge link appears in the pending changes view'.
- Undo changes -> before this bugfix, the pending merge link
Visual Studio Package
Visual Studio Package: History 2D: The 'Branch Explorer' frame was not visible when showing the 'History 2D' view if the size of the windows was too small. Now it's fixed.Visual Studio Package
Visual Studio Package: An error was shown when trying to undo pending changes from the 'Check in' dialog. Fixed.Visual Studio Package
Visual Studio Package: Fixed a 'No tab group available to store new view' error when loading projects that don't have it's solution bound to the source control. Fixed.Visual Studio Package
Visual Studio Package: The 'Diff' view was showing two scrollbars on Visual Studio 2012 or higher. Fixed.Visual Studio Package
Visual Studio Package: read-only files were not correctly handled. The Visual Studio Package was unable to overwrite read-only files. Now, a dialog to allow the user to decide what to do when saving a read-only file is shown. (The user will be able to choose among 'Overwrite', 'Save as ...' and 'Cancel').Visual Studio Package
Visual Studio Package: Now, custom 'Branch Explorer' views, such as 'Show selected an related branches in a new diagram', are shown in a new window.5.0.44.586
New
Jenkins plugin
Jenkins plugin: Labels and changesets are now supported in the Plastic SCM selector.GitSync
GitSync: Support for double-byte characters in commentsBug
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 viewVisual Studio Package
Visual Studio Package: Sometimes, a "The hierarchy is not in a valid state" error was showed when working in a .rptproj (Business Intelligence for Visual Studio 2012 projects) and switching to another changeset. Fixed.Merged releases
5.0.44.581
New
Plastic SCM is now packaged with the newest BitRo…
Plastic SCM is now packaged with the newest BitRock release. This fixes installation issues detected by some Asian developers.Bug
GUI
GUI: The 'branches' view did not work properly switching between 'list' view mode and 'tree' view mode when the list was ordered by name (descending). Fixed.GUI
GUI: The progress bar showing the 'current block' uploading progress was not resized when the dialog was resized. Fixed.5.0.44.577
New
GUI
GUI: Greatly improved checkin progress. Now when the checkin uploads data using a slow network, a detailed progress is displayed so that the user has a much better understanding of what is going on and the detailed upload of each block of 4Mb being uploaded.GUI
GUI: Annotate (blame) of the diff views (cset, branch, label). Now the diff view is able to show annotations on the left-side and right-side panels. This feature is very useful when reviewing differences, specially checking which lines have been modified during a merge (when a file has been changed on both contributors, annotating the file will show which lines were changed during the merge. This means they were manually edited). Lines coming from the contributors but not changed during the merge will be marked as coming from the right contributor. To show the annotations, just right-click in the contents textbox and select the 'Annotate' context menu option. Also, the look and feel of the annotate panel has been improved. A tooltip is shown with changeset comments and other info hovering the mouse over an annotation.GUI
GUI: Drag and drop support added to the items and 'pending changes' views. Now users can drag files from the "items view" and the "pending changes view" to an external application, like an editor or any other app able to accept the file being dragged. The drag operation is only available for local files: files that are physically available on diskXmerge (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 () 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
--progress -
Added a parameter in mergetool () to get extra information about the current merge in the mergetool
--extrainfofile - 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.
--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).
GUI
GUI: The items view was throwing an 'Index out of range' exception when selecting items in 'list' view mode and pressing the shift key. Fixed.5.0.44.574
New
Annotate operation
Annotate operation: Annotate can now be executed with a different repository than the configured workspace's repository. This is useful when the workspace's repository is a local replica of a repository in a central server, and only contains a subset of the history. (The local repository only has a subset of branches pulled from the central server). This way, now it is possible to annotate a file with the full info of the central repository. Usage:* Command line client: 'cm annotate foo.c --repository=centralRep@myserver:8087'* Plastic SCM GUI: Right click on item -> Annotate -> Annotate on remote repository... (selected repository will be added to the 'Annotate' context menu).
GUI
GUI: Diff viewers (such as 'Diff branch', 'Diff changeset'): Implemented 'Find In Files' feature. The 'Find in files' control is displayed with theCtrl + Shift + FGUI
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
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: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):<MySqlTmpTablesOnMemory>yes</MySqlTmpTablesOnMemory>
-
Before this release (release 4.1.10.559):
- Read 440.000 revisions from the 'revisions' table
-
With this release (release 4.1.10.561):
- Read 440.000 revisions from disk temp table -> 9688 ms.
- Read 440.000 revisions from memory temp table -> 6084 ms.
Merged releases
5.0.44.572
New
Change in the TCP layer to improve counting of ac…
Change in the TCP layer to improve counting of active and inactive threads.Update operation on Plastic SCM GUI, Visual Studio and Shell Extension
Update operation on Plastic SCM GUI, Visual Studio and Shell Extension: From now on, if the user performs an update operation on a workspace that already loads the last changeset on a branch but with checked out items in the workspace, the update operation will show an informative message telling that the update operation cannot be run because of those pending changes, instead of an error message.Bug
Fixed an error when the merge operation or the pe…
Fixed an error when the merge operation or the pending changes view includes a deleted xlink as a change.When the full workspace is cloaked except some fi…
When the full workspace is cloaked except some files or directories, the merge operation was failing with a 'value cannot be null' error when the source contributor has one or more changes inside the cloaked paths. Fixed. Example of failing cloaked rules:/ !/08-2014/an-ers/an-cli-improvements
Polarion
Polarion: The URL generated to explore a changeset in an external viewer was malformed. This issue has been fixed, and the external viewer is not able to show Plastic SCM changesets.Command line client
Command line client: The console output encoding was not restored after a command execution with the '--encoding' parameter set. Fixed.5.0.44.570
New
Command line client
Command line client: 'cm mktrigger' command. Now, Plastic SCM triggers can now be created defining the repository that should match before running the trigger indeed. To do that, use the'--filter''cm mktrigger'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 ('--filter=rep:repositoryName'
'|'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.cm mktrigger before-checkin "check-files""/path/to/script" --filter=rep:default|*.cs--server=blackmore:8087
Command line client
Command line client:cm listtriggerImproved 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**/Current format:**/p?m.xml**p*.xml/src/lib/foo.*
This way, expressions like*/p?m.xmlp*.xmlfoo.*
abc.*Bug
Pending changes view and 'cm status' command. Aft…
Pending changes view and 'cm status' command. After changing the machine time due to a daylight saving, some workspaces were showing changed items when they weren't. Now it is fixed. (If the 'Compare file contents instead of timestamps' option was enabled, the issue was not happening).5.0.44.569
New
Eclipse plugin
Eclipse plugin: Implemented eclipse 3.2 backwards compatibilityGUI
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''--automatic'Bug
Visual Studio 2013 Package
Visual Studio 2013 Package: The installer was not checking whether Visual Studio was running during a Plastic SCM upgrade. Therefore, the VSIX installation might fail because the installer could not replace the old binary files with the new binaries. Fixed.5.0.44.566
New
GUI
GUI: Pending changes view 'moved file detection' functionality now enables 0% to 100% values. The search matches dialog previously had a minimum of 50%. Now it is possible to match any file from the added/deleted list. Other aesthetic and usability issues have been improved.Command line client
Command line client: The 'cm find review' is now able to filter the output by the following fields:- title: The title of the code review
- targettype: 'branch' or 'changeset'
- target: The element being reviewed.
* 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'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 option or the
--treeoption were used--selector -
together with the or the
--xmloptions--format -
and the option was not used.
-R
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
5.0.44.563
Bug
Polarion
Polarion: The polarion plugin was designed to work on a single branch. Removed the branch parameter from the polarion configuration. Now the polarion plugin allows to query all the Plastic SCM repository, so all revisions are polled by the plugin.GUI
GUI: minor aesthetic issues fixed on 'Create / Edit Xlink' dialog.GUI
GUI: The 'replication sources' panel of the branch explorer was showing an incorrect error message when the branch explorer cannot connect to a certain repository.5.0.44.562
New
The plasticlogstats server diagnostics app has be…
The plasticlogstats server diagnostics app has been modified. It now supports grouping by hour (--hour--xml=outputfile.xmlPerformance
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:8087GUI
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+DReplication
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
- The new replication was unable to replicate new checkins
- 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.
- Create two changesets on main branch.
- Create an empty branch from the last changeset (main head).
- Replicate the empty branch.
- Replicate the main branch -> The main head was not updated properly (Now it's fixed).
Merged releases
5.0.44.557
New
Eclipse plug-in
Eclipse plug-in: Now, the eclipse plugin's package explorer prints a different decorator on nodes that have children resources with changes.Web UI
Web UI: Now it is not necesary to restart the web server to reload the avatar images.Bug
Web UI
Web UI: The Web UI was unable to show image diffs The Web UI was unable to show image diffs. Fixed.GUI
GUI: Pending changes view: The 'checkin dependencies' dialog didn't appear when using changelists. Fixed.Merge
Merge: An error is thrown when the source contributor has an xlink added inside an added directory. The checkin operation after the merge operation will fail. Now, this case has been fixed.5.0.44.555
New
Server
Server: Improved memory usage when caching large number of changeset trees (> 300K items). Results obtained (450K items in a tree):-
Without the new improvements:
- 1 tree in the server cache -> 230 MB.
- 5000 trees in the server cache -> 1320 MB.
-
With the new improvements:
- 1 tree in the server cache -> 250 MB.
- 5000 trees in the server cache -> 290 MB.
Client performance improvements
Client performance improvements The time loading client.conf file has been improved if the Plastic SCM version is the one compiled in .NET 4. (In .NET 2 these improvements were already available). Results obtained:- .NET 2:
- .NET 4:
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.
Merged releases
5.0.44.551
New
Jira extension
Jira extension: The data logged in the Plastic SCM custom field can now be configured. Also, it is possible to open changeset diffs from JIRA. Please visit this blogpost to get more info.GUI
GUI: Column filters are now available on all views. An improved filter mechanism lets you specify the column you want to use to filter. You can still use the old filters to search on all columns, but you can also restrict the search to a given column as follows:Examples of valid filters are:[<column_name>:<filter_value>]*
- On changesets view:
"created by":mike comment:"first changeset"
- On pending changes view:
status:changed item:bin/lib type:txt
Bug
Merge
Merge: Fixed an edge case on a recursive merge (the merge operation calculates more than one ancestor changeset):- When one ancestor has removed an xlink and added a new one on the same path, and another ancestor involved on the intermediate merge hasn't changed the xlink (the removed one), the merge was failing with the error: .
"Can't add an entry with the same name. Duplicated child [<item name>]"
5.0.44.549
New
Maven plugin
Maven plugin: The scm:update operation now checks if a workspace exists in the path being updated. If there is no workspace, a new workspace will be created. Otherwise, the workspace is reused.Bug
Semantic method history
Semantic method history: Fix missing data in sematic method history showing the history of a method when merged revisions are involved.5.0.44.548
New
Polarion plugin
Polarion plugin: Implemented a basic Polarion integration (Please contact support to get instructions about how to setup the Polarion integration: 'support@codicesoftware.com').Eclipse
Eclipse: Now the pending changes view shows the pending merge links.Proxy Server
Proxy Server: Now the Proxy server can be used in 64-bit machines.Performance
Performance The add command performance has been improved when it's executed with several paths. Test performed: 'cm add' command with 250.000 paths:- Before: 240547 ms
- After: 31699 ms
5.0.44.547
Bug
GUI
GUI: The context menu of the "Diff branch" and "Diff changeset" dialogs was incorrectly hidden after the first time it was displayed. Fixed.5.0.44.537
New
Eclipse plugin
Eclipse plugin: Implemented Team Project Sets support. The eclipse projects can now be exported to a Team Project Set File (PSF) or import projects from a PSF file.Eclipse plugin
Eclipse plugin: Show label info when the workspace is configured to work in a specific changeset.Eclipse plugin
Eclipse plugin: Several improvements performed- Implemented label-changeset support when importing from a PSF files. When the PSF points to a label, Eclipse translates it to its equivalent changeset.
- Implemented the 'switch to changeset' action in the eclipse's branch explorer view.
- When creating a new workspace, Eclipse plugin now proposes the Eclipse project path instead of the Eclipse workspace path.
Maven plugin
Maven plugin: Implemented the 'status' command for the Maven plugin.Visual Studio package
Visual Studio package: Now, VSIX installation is silent, so no popups are opened when registering the package.Command line client
Command line client: XML output is now available for certain cm commands. Flag "--xmlCommand line client
Command line client:cm findfindcm find revision --format={hash}Bug
Eclipse plugin
Eclipse plugin: The eclipse plugin was not performing the checkin operation of a single deleted file properly. Fixed.TeamCity plugin
TeamCity plugin: now the plugin preserves executable permissions when creating the build patch so that the agent can run them. NOTE: To use this upgrade of the plugin, it is required to run TeamCity with Java 7.GUI
GUI: Method history: When clicking the "Load more" button continuously and very quickly, sometimes the information displayed was not correct. Some elements were remaining as "loading" when in fact the information was already loaded. Some other revisions appeared as not connected, when in fact, all revisions were also conected. Fixed.Mergetool
Mergetool: An exception was thrown when clicking on navigation buttons and there were no conflicts in the file. Fixed.Merge
Merge: interval changesets merge: When the same interval is merged to multiple destinations and, at least one destination is already replicated, the next replication process will fail, showing an error message. Fixed. (Broken since release 5.0.44.502).GitSync
GitSync: Push branches or tags with non ASCII characters was failing. Fixed.GitSync
GitSync: Plastic labels with spaces and other illegal git characters were not being pushed to Git. Fixed. Now they are pushed, the name exported to git will be the same in plastic but replacing these illegal characters with a dash ('-'). E.g.: "Label 1" will be pushed as "Label-1".There was an issue when you had two xlinks to the…
There was an issue when you had two xlinks to the same repository and a file (or directory) is moved between them manually (not with a 'cm mv' command but directly using the Windows Explorer or command prompt). The Pending Changes view should detect the scenario but it wasn't working properly. Since the move between xlinks (even on the same repository) is not allowed, the Pending Changes view should show the result as a file being deleted on the source and a file being added (private file) on the destination. Now it's Fixed.Command line client
Command line client: 'cm describebranchhistoryMerge operation
Merge operation: The recursive merge could fail when multiple intermediate merges calculate the same writable xlink to be copied (added). Fixed.Visual Studio package
Visual Studio package: There was an issue wihen uninstalling and reinstalling the VSIX package without opening the IDE. Fixed. Now, the following command is executed in the uninstallation process in order to force to unregister the package inmediately (This affects the upgrade process as well): 'devenv /setup /nosetupvstemplates'.Visual Studio package
Visual Studio package: Issue when Visual Studio 2012 was installed and Visual Studio 2013 wasn't. The unregistering of the Visual Studio package was not performed during the uninstall process. Fixed.5.0.44.536
New
GUI
GUI: The differences window is able to give more information about the differences at code level, like the number of lines changed, added or deleted. Using the external application 'cloc' is even able to identify if the changes are only in blank lines and comments.Bug
GUI
GUI: Starting the GUI on Linux having several tabs opened crashed sometimes. Fixed.5.0.44.534
New
LDAP provider
The LDAP provider was unable to query a subtree if the domain path didn't start with 'dc='. Now, the following format examples are supported:- Dotted notation:
'codicefactory.com or mydepartament.codicefactory.com'
- Path notation:
Also organizational units are supported:'dc=codicefactory,dc=com''dc=mydepartament,dc=codicefactory,dc=com'
'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 acm status --changelistMergetool
Mergetool: An exception is thrown when clicking on navigation buttons and there were no conflicts in the file. Fixed.GUI Linux
GUI Linux: "Open with" a custom tool was not working from the repository explorer. Fixed.GUI
GUI: Branch Explorer: The format rules were lost after restarting the GUI. Fixed.GUI
GUI: Merge view: When pressing 'F5' key in a merge view, the following error was shown: "RefreshView not implemented for this view". Fixed.GUI
GUI: Branch Explorer: When the "home" changeset was not visible in the branch explorer because of the date filter, an error message was shown refreshing the view. Fixed.Merge operation
Merge operation: The merge operation could apply a change in the wrong path in an edge case (when the destination contributor had left on the same path another item with the same internal identifier from the same repository but a different mount point. Fixed.5.0.44.533
Bug
GUI
GUI: An error message in the pending changes appeared when showing the embedded diffs for a moved and changed file (locally moved with changed contents) out of the control of Plastic SCM. Fixed.5.0.44.531
New
Branch Explorer
Branch Explorer: When a new branch is created inside a custom Branch Explorer, it is now added to the selected branches used to create the custom Branch Explorer, so the new branch is visible.CLI documentation improvements
CLI documentation improvements Command line interpreter help: Command options reviewed and updated accordingly. Some options were not public, some of them were obsolete or confusing.Bug
Permissions
Permissions: An advanced sequence of operations (that implies breaking the permissions inheritance chain) over a secured path could end up with denied read and view permissions on the secured path. Fixed.Semantic Method History
Semantic Method History: Fixed a NullReference exception that could happen when showing an item under some special circumstances.An error ocurred when renaming the working branch…
An error ocurred when renaming the working branch if the branch name was the same of any of its parents. For example:/main/task001/task001Diff on GUI failed if an involved Xlink was not r…
Diff on GUI failed if an involved Xlink was not reachable. Fixed.Fixed a bug when sorting by date modified in the…
Fixed a bug when sorting by date modified in the Diff View (diff branch, diff changeset).5.0.44.530
New
Internal changes and improvements
Internal changes and improvementsMerged releases
5.0.44.528
Bug
The Proxy Server got stuck with some data request…
The Proxy Server got stuck with some data requests when they involved revisions with size 0. This was just happening when the server was using SQL Server as backend.5.0.44.527
New
Now it is possible to add multiline autocomments
Now it is possible to add multiline autocomments: in the preferences window, "Comment options", select "Custom" in the Comments section. In addition to User ({0}{1}{2}When creating a workspace it is possible to see a…
When creating a workspace it is possible to see a repository list showing all the repositories in all the registered servers.Bug
Visual Studio Package
Visual Studio Package: Now it does not set a file as non-readonly when it is not controlled by Plastic SCM.5.0.44.526
New
Branch Explorer filter
Now the Branch Explorer can filter the branches to show. The old conditional format tab has been updated to include new filtering rules. It is possible to define inclusion and exclusion rules. To get further information about this feature please see the blogpost related to this release in our blog.Added some shortcuts to the GUI
Added some shortcuts to the GUI:-
to show branch and changeset differences from the Branches View, Changeset View and Branch Explorer.
Ctrl+D -
will focus an item in the Items View if you have copied the item path in the clipboard.
Ctrl+V -
The diff view (diff branch, changeset) uses the following shortcuts:
-
to navigate to the next file
Ctrl + Alt + + -
to navigate to the previous file
Ctrl + Alt + - -
to navigate to the last file
Ctrl + Shift + Alt + + -
to navigate to the first file
Ctrl + Shift + Alt + - -
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).
cm ls--tree--selectorDocumentation
Documentation: cm help reviewed in depth and fixed several issues regarding spelling and formatting.5.0.44.523
New
Now the diff command can download the content of…
Now the diff command can download the content of the changed (modified, added and moved) items to a given folder using the option--download5.0.44.522
New
Maven
Maven: Implemented Plastic SCM Maven SCM plugin, according to the plugin specifications. The commands the plugin supports are:The scm connection spec for a pom.xml file, has the following syntax (in one single line):* scm:add* scm:branch* scm:checkin* scm:checkout* scm:tag* scm:update
where:scm:plasticscm:[objectSpec]@[rep:]repository_name@[repserver:]@servername:portnumber[:path:repository_path_to_download]
Example of repository path "/src/main/java/myapp". (The repository path must exist in the branch, label or changeset to download). Example:"objectSpec" is: (br:/name | cs:N | lb:name)"repository_path_to_download": is only affected by the checkout and update commands.
"scm:plasticscm:br:/main/Rel1.1@thirdpartytools@blackpearl:8087"
Performance improvements
Performance improvements The changeset trees were not correctly cached by the server when they contained xlinks. It could break the performance in some scenarios with large trees and xlinks. Fixed.Performance improvements
Performance improvements The update operation performance has been improved significantly when working with cloaked items. Example:Workspace with 192.818 files, 33.877 folders and more 400 cloaked rules:Version 5.0.44.519Update (Nothing to update) * With cloaked: 34102 ms * Without cloaked: 18127 msNowUpdate (Nothing to update) * With cloaked: 14867 ms * Without cloaked: 17722 ms