Release Notes

Public

7.0.16.2445: Aug 03 2018

New

WebUI: We added move detection to the side-by-side diff viewer! The moved regions will be painted in the editors with a lighter color and a new purple region in the splitter will appear joining them! Next step, allow you to put the regions side-by-side so you can easily see the differences :)

New

JIRA Extension: We added a new setting, "Use default proxy credentials". It automatically sets the proxy credentials with the default credentials for all JIRA extension connections. That will solve 407 errors for all users that have a proxy where they authenticate using the same credentials as the ones they use to authenticate in their domain.

New

Plastic and Gluon (all platforms): Improved the wait time in checkin/undo operations. Improved the background operation polling time from 500ms to 100ms. This will improve the overall performance of Plastic and Gluon, specially in Gtk and Mac.

New

LDAP integration: implemented a retry mechanism when creating a connection to LDAP to deal with network issues.

Also cached SID=>Name and Name=>SID to greatly reduce the number of requests to the LDAP server.

This affects to LDAP setups, whether they connect to pure LDAP servers or to Active Directories in LDAP mode.

Longer story: One of our heaviest loaded servers that uses a federated Active Directory for authentication but connects to it using LDAP instead of built-in AD (due to how the underlying infrastructure is). Sometimes the Plastic server failed to connect to the LDAP, causing spurious issues to users saying they couldn't be authenticated, and even more importantly to automated scripts (which wouldn't recover). This improvement should greatly reduce the load imposed on the LDAP server. Also, Plastic can now cope with retries when connecting to LDAP.

What you will see in the server log is something like:

WARN  LdapProvider - Unable to connect to LDAP. Trying again (1/5)
WARN  LdapProvider - Unable to connect to LDAP. Trying again (2/5)

Until it successfully reconnects.

New

Unity 3D plugin: Onboarding process on an already existing project improved in order to avoid unnecessary merge conflicts.

So far, there is no good way to -let's say- checkout sources from version control in Unity Editor.

The current way to proceed using Unity is to create an empty project, bind the project to Plastic SCM, type the repository name that contains the already existing game project, and click on "Apply all incoming changes" in "Version Control" tab.

But, even if the user selects to "do not perform automatic add" in the Unity preferences, the "ProjectSettings" folder will be marked as "added" when an empty project is bound to a VCS.

This fact will likely cause a merge conflict (EvilTwin conflict) when clicking "Apply all incoming changes", as "ProjectSettings" folder will probably exist on the repository already.

Now, the Plastic SCM Unity Plugin detects this scenario and skips adding the "ProjectSettings" folder when a new empty project is bound to a Plastic repo, and the "ProjectSettings" folder already exists on the repo.

When the user clicks on "Apply all incoming changes", the "ProjectSettings" folder in the repo will be downloaded.

REMARK: If the user edited any "ProjectSettings" file before applying all incoming changes, the files edited this way will be replaced by the server version. But don't worry: the local edited file will be backed up before by appending a ".private" suffix in the filename.

New

WebUI: The labels table now includes a new action button for each row to display the repository contents in that label.

Bug

WebUI: The server returned 404 Not Found for URL paths that ended with a file extension. This was harming the File Explorer user experience because users weren't unable to directly access files to display their contents. URLs like http://plastic.myorg.com:7178/webui/repos/myrepo/branch/main/content/src/main.js were broken until now.

Bug

Windows and OS X diff: the differences inside moved blocks were not painted in the file text diffs. Now it's fixed.

Bug

Windows: When the attributes combobox had upper and lowercase values, for example 'resolved' and 'RESOLVED', it did not update the values correctly in some scenarios. Now it's fixed.

Bug

GUI: Deleting an already deleted branch failed with a null-reference error. Now it says that the branch doesn't exist instead.

This could happen in the following case:

* John & Robert open the branch explorer view.

* John deletes the branch /main/task1

* Robert also tries to delete the branch /main/task, but it fails with the null-reference error.

Bug

Jet storage: we protected a corner case that could lead to server crashes (super strange, very unlikely you experienced this).

Jet high-perf mode extensively uses memory mapped files (in all operating systems). We found that there could be a race condition that made metadata reads access to non existing data (basically outside the mapping range) crashing the server.

Jet has been serving all our heaviest loaded servers around the world seamlessly, but we had a crash last week in one of them, and we are looking into all possible causes to prevent it from happening again.

Bug

Linux and OS X: Showing the differences of a symlink whose destination was itself failed with message 'Error 31'. The difference resolution process was endlessly trying to solve the symlink instead of just showing its target path. We fixed it so the differences of the symlink now show the symlink target path.

Bug

Server: UserInfoLoader. We caught a wild "An item with the same key has already been added" that could happen when a user is reloaded concurrently from the LDAP/AD. Should be fixed now.