Release Notes

Public

 6.0.16.804: Jan 23 2017

New

This is the first public release of the new Plastic SCM 6.0 series. It includes important core improvements and features. It is published in the "labs" channel instead of the official one because there are some important design changes still to be delivered, although it is stable enough to be used in production.

New

Jet - the super-fast repository storage.

We have designed a new storage for our repositories. It is super-fast and scalable and it has been designed specifically to deal with the way in which Plastic handles data and metadata read and writes. As a special purpose storage, it is hard to beat in terms of efficiency.

We still support SQL databases (MySQL, SQL Server, SQLite, Firebird and a few others) but the goal is to enable Jet as default backend replacing SQLite and eventually make it the default even for large teams.

We created support for 2 different workloads in Jet:

* Small server workload support: perfect to handle local repository replicas on laptops and workstations and even small team servers. It focuses on performance and not scalability.

* High-scalability workload support: a more complex alternative focused on scalability workloads.

Right now, Jet is not enabled by default but you can use the admin tool on Windows to migrate your repos to Jet.

To configure Jet from scratch, simply create a jet.conf file in the same place where your current db.conf is located, with the following content:

basepath=the path to a directory where you want you Jet repos to live.

In terms of performance Jet runs circles around all the other alternatives. It is about 10 to 40 times faster than SQLite and SQL Server in metadata reads and writes, which makes the server up to 3-5 times faster in operations like big checkins. Jet is so fast that we were able to find other hotspots once the data layer was no longer the slow part, and we continue optimizing the server thanks to it. We will share the results of the benchmarks we ran both on Windows and Linux to compare to the other databases and also Git, which we now consistently beat even on Linux.

New

Floating license system.

We have implemented a new system for companies who require floating licenses.

The traditional licenses so far are based on "named users". If you have 3 licenses, then John, Mike and Sara can access Plastic and consume the 3 licenses. If Sara leaves the company, then the admin will need to deactivate Sara to allow Paul to use the server.

With floating it is different. The server handles a number of free spots. On startup, all spots are free. And as soon as users access the server, spots are reserved. Spots stay reserved for a given time then can be renewed or taken by a different user. The floating licenses tend to reflect the number of active users in the system during the labor day. As such, the leased time is set to a minimum of 8 hours.

Consider the same scenario described above but this time with floating licenses. We have 3 spots. Then Sara accesses the server and one license spot is reserved and kept for a period of time. Later John does the same and then Mike. Suppose Paul wants to access immediately after: since you only have 3 licenses, his connection will be rejected. But as soon as Sara, Mike or John reserved spots expire, Paul will gain access, without administration intervention.

Floating licenses are great for teams with a central server and offices around the globe: if you have 20 users in Madrid and 20 in Seattle, you won’t need 40 licenses but only 20 floating ones.

New

Full backwards compatibility.

A 6.0 client can connect to a 5.4 server, and a 5.4 client can connect successfully to a 6.0 server. This greatly simplifies upgrades because a "big-bang" deployment is no longer required.

Our intention is to keep backward compatibility even between major versions from now on.

New

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.

New

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

New

Windows GUI, Linux (GTK) GUI and Mac OS GUI: The 'Update report' dialog has been redesigned.

The error message for each update conflict has been moved to a text area on the right hand side of the dialog for better readability.

New

OS X: Merge Explanation diagram.

The merge view now includes a Merge Explanation diagram to display the requested merge on a filtered Branch Explorer.

New

OS X server icon now launches documentation.

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.

New

Linux and OS X GUIs: save file from history.

[link]https://plasticscm.uservoice.com/forums/15467-general/suggestions/15555477-add-an-option-to-save-a-file-from-the-history-scre UserVoice: add an option to save a file from the history screen[\link]

Now, it is possible to save a given revision of a file from the History view. To do so, while browsing the history of a file:

* Right click on the revision you want to save

* Select the "Save this revision as..." menu item

* Choose a destination for the revision and confirm the operation

New

Linux and OS X GUIs: open files in the file manager.

You can now directly open a file or directory in your default File Manager. To do that, right-click on an item on the "Items" view, or in the "Pending changes" view, and select "Reveal in Finder" if you use OS X, or "Open in explorer" if you use a GNU/Linux system.

New

Linux GUI Branch Explorer learns to filter.

A new "Branch explorer" submenu has been added to the Branch Explorer view context menu. It contains the previous "Go to branch base" menu item and three new options: '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 using the previous conditional filter settings (if present).

New

New after-checkin trigger environment variable: PLASTIC_CHANGESET.

The after-checkin client side trigger gains a new environment variable: 'PLASTIC_CHANGESET', which reflects the cset number of the changeset created after the checkin operation.

You can read more about the Plastic SCM triggers in the documentation [link]https://www.plasticscm.com/documentation/triggers/plastic-scm-version-control-triggers-guide.shtml[\link]

New

JIRA extension: custom field is now optional.

[link]https://plasticscm.uservoice.com/forums/15467-general/suggestions/14830797-jira-integration-make-custom-field-id-optional UserVoice: JIRA integration - make Custom Field ID optional[\link]

The custom field ID for Plastic SCM in JIRA is now optional. If it is not set in the configuration, Plastic SCM will not log any information concerning the checkin into JIRA's related issue. The user can still benefit from JIRA integration while creating branches from JIRA issues, or from browsing JIRA issues from the Branch Explorer.

Bug

Windows GUI: when the branch name was too long, the diff window displayed it overlapping the branch GUID in the header of the diff window. Fixed.

Bug

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

Bug

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

Bug

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

Bug

Windows GUI: Fixed "an error occurred processing your request" when launching annotations from the diff view.

Bug

Linux and OS X GUI: fixed progress in replica.

The progress indicator for the current stage of a replica was being hidden after a try. Fixed: if the replica operation is retried, the progress indicator for the current operation is shown again.

Bug

GTKMergeTool: the application got stuck right before exit. Fixed.