Release Notes

Public

 6.0.16.1271: Jun 15 2017

New

6.0 is now official!

Build 1271 is the first 6.0 version to make it to the main downloads page.

It is being a while since we published 6.0.16.804 in Labs, back on January 23rd. While 6.0 has always been stable and ready for production, we decided to wait for some changes to be merged into 6.0 before going official.

This is a small summary of the major changes between 5.4 and 6.0:

* Jet – the super-fast repository storage – unbeatable speed for all kinds of repos, shines with huge ones.

* Floating licenses – the licensing solution for globally distributed enterprises.

* Fast network protocol – reduces network footprint & enables backwards compatibility: 6.0 is now compatible with all versions since 5.0.

* Heavily improved filter performance (cloaked, ignored, etc.)

* Windows: 4k support + new workspace switcher design + multi-screen diff + integrated help links + non-locking checkin & update.

* Linux/OS X: usability improvements, built-in SemanticDiff, merge explanation diagram, Branch Explorer filters plus a number of changes to create a smother experience.

* All: Branch Explorer global configuration.

* Visual Studio 2017 support.

* Office 2016 support.

* Continuous Integration: GoCD support, heavily improved TeamCity, Bamboo and Jenkins (pipeline support).

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

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

During the last six months version 6.0 didn’t stop evolving. We improved our internal working cycle (more here: http://blog.plasticscm.com/2017/04/how-we-do-trunk-based-development-with.html) and now releases are even more frequent, which means new features and improvements never stop arriving.

Take a look at the release notes of the 6.0 releases under Labs to get all the details, and don’t forget to check our new features at https://www.plasticscm.com/features/index.html