Unity Version Control 7.x Release Notes

This document contains all release notes for Unity Version Control major version 7.x, organized from newest to oldest.

7.0.16.2937

Public | 2019-01-24

New

The "confirm ignored filter rules" dialog was too…

Plastic for windows: The "confirm ignored filter rules" dialog was too small. Now it's bigger.

Now, the About dialog displays the right Plastic…

Plastic (Windows and Linux) GUIs: Now, the About dialog displays the right Plastic website URLs in the "visit us" and "meet us" information lines, with the "https" protocol.

Bug

A recently added file, still checked-out, display…

Gluon (all platforms): A recently added file, still checked-out, displayed 0 bytes in the size column of the Explore workspace tree. Now it's fixed.

After any update operation (e.g. switching to a b…

Plastic for Windows: After any update operation (e.g. switching to a branch) you're prompted with a dialog that displays the issues reported by operation (if any) so you can "retry update" or "update forced" them. There was a bug that kept the last selected issue in the "Issues" view after you clicked "Update forced" but the "Path" view was cleaned up. Now it's fixed.

When configuring Gluon in Cloud Edition mode for…

Gluon for linux: When configuring Gluon in Cloud Edition mode for the first time, the password textbox was not visible. Now it's fixed.

The Plastic Proxy couldn't be configured and used…

VSPackage: The Plastic Proxy couldn't be configured and used under the VSPackage. Now it's fixed.


7.0.16.2926

Public | 2019-01-22

New

'cm hist' command: we added new fields to the out…

CLI: 'cm hist' command: we added new fields to the output so it is now possible to print the repository name, server, full repository spec (name + server), and then we added format helpers like "tab" and "newline".

  • repository

  • server

  • repspec

  • tab

  • newline

In addition, human-readable parameter names are now accepted. Note that the old parameters based in numbers are still supported:

Screenshot

It is now very easy to add ignored files if neede…

All GUIs and command line client: It is now very easy to add ignored files if needed.

So far it was not possible to add an ignored file. You had to un-ignore it, and then add it.

We made two improvements:

  1. Now you can select a single ignored file or directory and simply add it.

  2. If you add a directory, all the files not explicitly ignored will be added, even if they are in ignored directories.

These changes affect both to the all GUIs and the command line.

A few examples:

Suppose that foo.c is ignored. You can right click on it on the GUI and simply add it. Or you can run cm add foo.c successfully.

Now, let's consider a more complex scenario. Check the following structure:

src/
 src/lib/           - ignored
 src/lib/bar.c      - not ignored
 src/lib/foo.c      - ignored
 other/             - ignored
 other/other.txt    - ignored

Now suppose you add a recursive add in the root of the workspace ("cm add -R . --addprivateparents" on command line or "add directory tree to source control").

  • Then the non-ignored file "bar.c", and its parent "lib", will be added.

  • The directory "other" will not be added because it does not contain any non-ignored files.

The following figure explains the scenario:

Screenshot

Jet backend. We added detailed logging and additi…

Server: Jet backend. We added detailed logging and additional integrity checks to the Jet backend to ensure its stability and improve traceability.

When the server detects that a Jet file is corrupt, it throws the following error:

"The content of '{filepath}' is not valid. Please contact support@codicesoftware.com for assistance.".

Before, the server tried to use it and failed with an unexpected error like an "End of file".

We also added extra log to monitor the file size and its changes. When every Jet file is used the server logs its size (e.g. "File '{filepath}' opened for reading. Length: X bytes. Size: Y bytes.").

The server also logs size changes (e.g. "Commit append for '{filepath}'. Length X bytes.").

We introduced these changes after detecting (and recovering) a corrupt Jet file in one customer after a big power failure in their server.

Bug

The cm diff command always displayed "Workspace r…

CLI: The cm diff command always displayed "Workspace revision" as symbolic name in both left and right revisions when the diff was launched from the command line using revision specs. Now it's fixed.

The migration to Jet failed with the error 'Could…

WebAdmin: The migration to Jet failed with the error 'Could not map file' when there was an existing Jet database in the destination database path. Now, we report correctly to the user that the database path must be empty instead of showing a weird error like 'Could not map file'.

When clicking the button "Scan network" in the pr…

Gluon for windows: When clicking the button "Scan network" in the preferences dialog, general section, a "missing resource" error was displayed. Now it's fixed.


7.0.16.2918

Public | 2019-01-18

New

We changed the workflow of opening workspaces. No…

Linux and macOS: We changed the workflow of opening workspaces. Now, the switcher window and any opened workspace window will be close when you select a new workspace in the workspaces view and execute the "Open" context action. To keep more than one workspace window opened at the same time, select the "Open in a new window" context action.

Gluon now includes a dialog to setup the preferences:

  • Windows GUI: Added a "preferences" button in the bottom right corner.

  • Linux GUI: Added a "preferences" button in the left side bar.

  • macOS GUI: Added a "preferences" menu option in the main application menu. Gluon -> preferences.

Visual Studio integration is now compatible with…

Visual Studio Package: Visual Studio integration is now compatible with Visual Studio 2019 Preview.

Screenshot

Bug

The 'clconfigureclient' tool caused some configur…

CLI: The 'clconfigureclient' tool caused some configuration values, present in the client.conf file and not collected by the clconfigureclient tool, to be lost after each execution. Now it's fixed.

The image preview and image diff features display…

Linux and macOS: The image preview and image diff features displayed error messages if the image files were corrupted or contained invalid image data. They'll now handle these errors properly and report you that the image format is not supported.

Fixed the size check for the objects name like br…

All GUIs and CLI: Fixed the size check for the objects name like branch or label names according to the database field length: 100 characters.

They failed to diff a changeset that received a m…

All GUIs: They failed to diff a changeset that received a merge from a branch without permissions. The same happened running a merge that involved that changeset (or some of its files in the case of Gluon). The error thrown was "You don't have permissions for operation read". Fixed.


7.0.16.2904

Public | 2019-01-11

New

Commands which accept the -R or --recursive optio…

Command line client: Commands which accept the -R or --recursive option will now also accept -r.

We have made the add command a bit more flexible.…

We have made the add command a bit more flexible. Previously it was not possible to add a directory if it contained a controlled item. Now you can run add on a directory containing controlled files and it will add only the private items. It also works recursively.

An example should make this clear. Suppose you have the following in your workspace:

src/client/foo.cs      -controlled
|   |-----/bar.cs      -private
|--/common/roo.cs      -private
|--/server/far.cs      -controlled
    |-----/net/goo.cs  -private

You can now add all three private files with one command:

cm add src -R
The selected items are about to be added. Please wait ...
Item c:/workspace/src/client/bar.cs was correctly added
Item c:/workspace/src/common/ was correctly added
Item c:/workspace/src/common/roo.cs was correctly added
Item c:/workspace/src/server/net/ was correctly added
Item c:/workspace/src/server/net/goo.cs was correctly added

We have add using wildcards much nicer. You can n…

Command line interface: We have add using wildcards much nicer. You can now use wildcards to add files recursively, even if you already have controlled files in the directory tree.

For example, just use "cm add -r *.cs" to recursively add all your .cs files in one go.

We "bothered" users for years asking to confirm t…

Plastic & Gluon GUIs: We "bothered" users for years asking to confirm the inclusion of dependencies during the checkin operation when always they wanted them to be included. From now on, we will take care of including the dependencies directly in both, checkin and shelve operations, making life easier for users :)

Improved workspace creation usability:

Plastic for Windows: Improved workspace creation usability:

  • After creating a workspace from the repositories view using the "Create workspace for this repository" context menu option, the workspace is automatically opened.

  • After creating a workspace from the workspaces view, now the view scrolls and focus the recently created one.

Bug

The root node in the items view was not expanded…

Windows GUI: The root node in the items view was not expanded after refreshing the view the first time the workspace was updated. Now it's fixed.

The "only relevant" button wasn't properly disabl…

Windows GUI 2D Version Tree: The "only relevant" button wasn't properly disabling the checkboxes in the "Version tree panel". Fixed.

The value "Check if there are newer changes in th…

Linux and macOS GUIs: The value "Check if there are newer changes in the repo" setting in the new Pending Changes Options dialog wasn't loaded correctly. In addition, if the OK button in that dialog was clicked without any changes in settings, the save and refresh operations were launched unnecessarily. Now they are fixed.

The GUI sometimes displaying errors ('Index out o…

Windows Branch Explorer: The GUI sometimes displaying errors ('Index out of bounds') that prevented the Branch Explorer from loading. That happened if the user previously opened a 2D Version Tree, selected the "Version tree" option in the Options side panel, closed the GUI and reopened it again. Fixed!

Due to a minor issue in an internal API, this rel…

KNOWN ISSUE: Due to a minor issue in an internal API, this release won't be friendly-named with a song in the "About" form as usual.


7.0.16.2888

Public | 2018-12-30

Bug

The diff tab couldn't be closed using the default…

Plastic for Windows: The diff tab couldn't be closed using the default shortcuts Ctrl+W/Ctrl+F4. Now it's fixed.

Using the tab key to navigate controls did not wo…

Plastic for Windows: Using the tab key to navigate controls did not work in the diff viewer when it was embedded in the pending changes view. Now it's fixed.

We introduced an error in the last release in the…

Cloud Edition Plastic GUI: We introduced an error in the last release in the Welcome dialog -the one that pops up after a new Cloud Edition installation- when the credentials entered by the user to connect to the cloud were wrong (no validation is done since the user still can work locally). Now it's fixed again!

The annotate operation failed when the user didn'…

Plastic GUI: The annotate operation failed when the user didn't have permissions to view/read the branch where some line was added/changed. Now it's protected.

In some cases, a recursive ls command would fail…

Command line client: In some cases, a recursive ls command would fail in the path was an xlink. We have corrected the behaviour here so that recursion into xlinks works as expected.

The Diff view didn't update the visual change inf…

WebUI: The Diff view didn't update the visual change information when a changed Xlink was selected. Fixed!


7.0.16.2877

Public | 2018-12-27

New

A new mergebot -named 'conflictsbot'- has been ad…

DevOps: A new mergebot -named 'conflictsbot'- has been added to the built-in mergebots catalog!

'conflictsbot' it's a read-only mergebot that detects merge conflicts at early stages in the development lifecycle of your task branches.

Probably you heard about it in our blog, where its motivation and behavior is explained in detail.

Now, we provide the 'conflictsbot' as a built-in mergebot, to simplify deployment & configuration.

Remove a help message that appeared in the Checki…

Gluon GUI: Remove a help message that appeared in the Checkin View but it didn't apply (only valid for Plastic Pending Changes View, slightly different).

Finally linux applications (plastic, gluon and me…

Linux GUI: Finally linux applications (plastic, gluon and mergetool) have Semantic Diffs included! Available for C#, Java and Vb.Net files! C and C++ will come really soon :)

Screenshot

Screenshot

We improved the Welcome dialog -the one that pops…

Cloud Edition Plastic GUI: We improved the Welcome dialog -the one that pops up after a new Cloud Edition installation- usability for users that want a workspace directly connected to the Cloud (e.g. avoid a push/pull setup). Now you'll find the cloud repos in the "Repository" drop-down list of the "Just create a workspace" tab.

Added the full path in the item preview file prop…

Plastic & Gluon for Windows/linux/macOS: Added the full path in the item preview file properties.

Screenshot

This solves the following UserVoice request: Display full file path (Gluon)

Bug

When creating a new workspace from the welcome di…

Windows GUI: When creating a new workspace from the welcome dialog, and selecting a repository from a server different than the default one, it was ignored (it was creating using the default server). Now it's fixed.

Gluon failed to diff a recently added file from t…

Gluon for Windows: Gluon failed to diff a recently added file from the checkin changes view. Now the option "Diff workspace contents" has been disabled for added files since it is not applicable.

The first time you opened gluon the workspace sta…

Gluon for Windows: The first time you opened gluon the workspace status info and the "switch branch" button were not displayed. Now it's fixed.

The "Checkin changes" view was overlapped by the…

Gluon for Windows: The "Checkin changes" view was overlapped by the title when it was displayed as a side view (launched from the "Explore workspace" view). Now it's fixed.

"An Item with same key has already been added" ex…

Windows diffs: "An Item with same key has already been added" exception that happened having moved regions with differences and collapsing regions has been fixed!

If you displaying the search dialog while the con…

Gluon (all platforms): If you displaying the search dialog while the configuration is loading, then it didn't produce any search result. Now it's fixed.

The Branch Explorer used the UTC time zone to pla…

Windows, linux, macOS: The Branch Explorer used the UTC time zone to place changesets in the appropriate date column. This is especially important when working in a distributed team with different time zones: changesets could appear the day before. Now the Branch Explorer uses the local time zone to find out the actual date of a changeset.

Plastic and Gluon failed to calculate the preview…

Plastic/Gluon for Windows and Gluon for Gtk: Plastic and Gluon failed to calculate the preview for those images that were set as readonly in the filesystem. A "access is denied" error was displayed instead. Now it's fixed. This issue did not affected to macOS.

The GUI could throw an unexpected error when refr…

Windows: The GUI could throw an unexpected error when refreshing the Branch Explorer view when the mouse pointer is not visible. Now it's fixed.


7.0.16.2858

Public | 2018-12-19

Bug

The Branch Explorer context menu options 'view ch…

Linux GUI: The Branch Explorer context menu options 'view changesets in this branch' and 'browse repository on this changeset' failed with an unexpected error.

This issue happened since 7.0.16.2761. Now, they are working again.


7.0.16.2856

Public | 2018-12-18

New

We added a side panel to the branch, changeset an…

Linux/macOS GUI: We added a side panel to the branch, changeset and shelves views to display properties and attributes:

  • The properties viewer allows you to edit the comments of the selected changeset/branch/label/shelf.

  • The attributes viewer allows you to apply attributes to the selected changeset/branch/label/shelf.

Screenshot

We added a scroll minimap to both the diff and me…

Gtk and macOS: We added a scroll minimap to both the diff and merge tools! It shows where there are diffs/conflicts in the file. You can click on the minimap to jump to that position:

Screenshot

We changed how 'cm find' queries apply to changes…

We changed how 'cm find' queries apply to changesets. If you don't have the 'view' permission in a branch, its changesets will be filtered out of any 'cm find changeset' query. This affects the CLI client ('cm find') and the query views in our GUIs as well, e.g. Changesets View.

Bug

The configure view showed a help panel reporting…

Gluon: The configure view showed a help panel reporting that the repository was empty in some rare scenarios. Fixed!

We fixed a bug that caused the checkout changeset…

BranchExplorer, all platforms: We fixed a bug that caused the checkout changeset -the one that represents the current status of the workspace in the branch explorer- to be drawn in the incorrect position, namely behind the last changeset.

we found a crash opening the pending changes view…

macOS GUI: we found a crash opening the pending changes view for the first time when the first item in the list was a big file. Now it's fixed.

DevOps: The link of the "learn more" button of the trunk-bot built-in mergebot was broken since 7.0.16.2722. Fixed.

The git clone operation failed when the plastic r…

GitServer: The git clone operation failed when the plastic repository had defined a secured path rule that denied the view permission to the "ALL USERS" user. This happened because the server could not calculate the git objects from the plastic objects.

Now, the secured path permissions are not checked anymore for the GitServer calls.


7.0.16.2843

Public | 2018-12-12

New

We have made it really simple to checkin private…

Command line tool: We have made it really simple to checkin private files. Just specify --private when running a checkin, and any private files detected will also be included.

We added a Filter text box in the History views.…

Linux GUI: We added a Filter text box in the History views. It'll allow you to filter revisions in the History list.

We added a Search text box in the Browse Reposito…

Linux GUI: We added a Search text box in the Browse Repository view. It'll enable you to find items in the repository tree located in that view!

Display image diffs in the Pending Changes view a…

Gtk and macOS clients (Gluon and Plastic): Display image diffs in the Pending Changes view and the Diff window.

Now, when you select any image in the Pending Changes view or the Diff window, the diff viewer displays differences for the selected image.

Screenshot

The tree of changeset 0 (which only contains the…

The tree of changeset 0 (which only contains the root) will be always visible from now on, even if the user doesn't have permissions to see the root path.

The rationale for this is to allow users with read permission only on a given path in a repository (e.g. path '/doc' in repository 'game') to create a new workspace pointing to said repository.

This was previously forbidden because the contents of cset 0 weren't visible to the user. So, the workspace creation failed with the error "The workspace cannot be initialized with the given selector. Probably you don't have enough permission to load the initial changeset of the repository of the selector.".

The Undo and Redo actions are now enabled in inpu…

macOS: The Undo and Redo actions are now enabled in input text fields, such as the checkin comment or the Diff control!

Bug

the comment text in the Pending changes view was…

Windows: the comment text in the Pending changes view was incorrectly deleted when the checkin operation displayed the "merge required" dialog. Fixed.


7.0.16.2828

Public | 2018-12-07

New

Implemented filter/search for dynamic views (thos…

Plastic macOS: Implemented filter/search for dynamic views (those plastic views that appear on the right side of the window: e.g. history, shelves, browse changeset, etc ...)

New context-based help system: The Branch Explore…

GUI: New context-based help system: The Branch Explorer tip to hide non-relevant changesets won't be shown if you already have the "Only Relevants" option enabled.

Bug

Checkin is now able to handle newly defined expan…

Gluon: Checkin is now able to handle newly defined expansion rules of an added xlink. It works correctly with cm partial ci. We still have an issue with partial worskpaces where ci is unable to let users edit existing Xlinks.


7.0.16.2815

Public | 2018-11-30

New

cm rm --no-disk is now optional. It means it is n…

Command line: cm rm --no-disk is now optional. It means it is now easier to "apply a delete" in the metadata of your workspace.

It is better explained with an example.

  • You have /src/foo.c

  • You delete it from disk: simply rm /src/foo.c, you don't do it with a Plastic command, just with the operating system.

  • If now you want to "apply" the deletion to the workspace, you'd have to do cm rm /src/foo.c --no-disk

  • But now, it will be easier: cm rm /src/foo.c and it will be clever enough to mark it as deleted since it is no longer on disk.

We added detailed logging and additional integrit…

We added detailed logging and additional integrity checks to the Jet backend to ensure its stability and improve traceability.

Improved syntax highlight & diff region colors wh…

macOS (Plastic and Gluon): Improved syntax highlight & diff region colors when using macOS Mojave with the dark theme (only macOS 10.14+).

Screenshot

When changing the macOS theme, the syntax colors and the diff region colors are adapted "on the fly" to improve contrast between the diff color and the text on the dark theme. Note that syntax colors were already adapted but required an App restart to be applied.

We changed the icons of PlasticSCM, Gluon and Mer…

macOS: We changed the icons of PlasticSCM, Gluon and Mergetool so that their colors change according to the current UI theme (Dark/Light).

Screenshot

Improved the look and feel for the dark theme in…

macOS: Improved the look and feel for the dark theme in macOS Mojave 10.14:

  • Diff and merge navigation toolbar buttons have been redesigned.

  • Explorer dialogs (branch, repository, changeset, server) has an improved look and feel.

  • Fixed dark theme checkbox icons in gluon configuration view.

  • Fixed some minor dark theme issues (background and foreground colors).

Screenshot

Creating a new workspace does not require an "upd…

Gluon for macOS & linux: Creating a new workspace does not require an "update" or "configure" operation to convert the workspace to "gluon" mode anymore.

Now "cm mv" seamlessly (and silently) applies loc…

Command line client: Now "cm mv" seamlessly (and silently) applies local moves to metadata.

Easier to see with an example:

foo.c is a controlled file

mv foo.c src/bar.c

cm mv foo.c src/bar.c

And the move is applied!

New context-based help system: Disable "ding" sou…

Windows GUI: New context-based help system: Disable "ding" sound when a new hint shows up.

Bug

cm rm now works for locally deleted directories.

Command line: cm rm now works for locally deleted directories.

Previously, attempting cm rm on a directory that is not in the workspace would fail. Now, it correctly marks the directory as deleted.

The branch explorer didn't render correctly (the…

Plastic macOS Mojave: The branch explorer didn't render correctly (the canvas didn't get redrawn) when moving it with the scroll bars. It was ok when manipulating it directly. Now, it's fixed.

We also improved the rendering in the diffs. Sometimes the regions didn't get correctly repainted using either the scroll or the mouse wheel.

Three aesthetic issues have been fixed in the mac…

macOS: Three aesthetic issues have been fixed in the macOS GUIs:

  • The mouse pointer type "IBeam" (the textbox stick) appeared when you placed the mouse over the dialog bottom buttons (ok-cancel). Fixed.

  • The dialog bottom buttons were overlaying other components in few dialogs. Fixed.

  • You could also noticed about the "huge" size of some buttons in a few dialogs (Create workspace dialog, Apply attribute dialog,...). Now it's also fixed.

Plastic BranchExplorer's details view and Gluon d…

macOS: Plastic BranchExplorer's details view and Gluon details view, were not correctly shown/hidden. Now it's fixed.

Since the release 7.0.16.2740, you cannot checkin…

Since the release 7.0.16.2740, you cannot checkin a file that is opened by some external tools like Microsoft Visio. You had to close the external tool to perform the checkin operation. Now you can perform the checkin operation without closing the external tool.

If you typed something in the Search Files dialog…

Gluon for macOS: If you typed something in the Search Files dialog text field and quickly hit the Enter key, you got an error message complaining about some component being used after its disposal. It's fixed now!

You won't be able to dismiss the Search Files dia…

Gluon for macOS: You won't be able to dismiss the Search Files dialog anymore if you started an operation inside it (checkout, undo checkout, update). If you did so before, these operations remained in the background and tried to manipulate visual components that weren't there anymore. We changed that behavior to make the visual feedback more consistent.

Changesets view: The "Advanced" button didn't exp…

Gluon for macOS: Changesets view: The "Advanced" button didn't expand the additional area where the user can customize the query. Now it's fixed.

Gluon displayed an unexpected error when trying t…

Gluon for macOS: Gluon displayed an unexpected error when trying to calculate the preview for some files types, for example .eps files. Now it's fixed.

The Sync view didn't update the list of available…

macOS: The Sync view didn't update the list of available sync views when a new sync view was created from the Cloud view context menu. Fixed.

Fixed an exception when setting the move detectio…

Gluon for Windows: Fixed an exception when setting the move detection similarity percentage to its minimum value in the pending changes options dialog. Also, the similarity percentage label was not updated when the form was loaded. Now it's fixed.

The preview for image file types were not properl…

Gluon for macOS: The preview for image file types were not properly centered, and also proportions were wrong. Now it's fixed. We have changed the mechanism how we calculate image thumbnails. We use the macOS's QuickLook feature to calculate them.


7.0.16.2782

Public | 2018-11-22

New

The new context triggered help system is out now!

All GUIs: The new context triggered help system is out now!

We have been working on a new help system. It is a mix of UX improvements with empty states and a smart help that guides you while you learn how to master Plastic SCM.

It is implemented as a panel in all views that shows up to help you discover new features you never used, or in response to events that might be causing frustration.

It is better explained with an example: suppose you frantically click the "refresh" button of the labels view. Chances are you are not finding something you are looking for, otherwise you wouldn't click it so frequently. And, suppose you have a filter in the view that is preventing you to see what you are looking for. The GUIs will detect this and show a panel highlighting that you have a filter set and that's probably why you are not finding what you are looking for.

Screenshot

Another example: have you ever colored your Branch Explorer based on the authors of the changesets? The help system will help you discover that.

Screenshot

The new system comes with a good amount of art in the form of a new mascot: our wise Owl, a smart and methodic librarian that aligns well with the Plastic philosophy: preserve history to learn from it.

This new help system is a starting point to improve onboarding, usability and to help users becoming experts on version control in an active way.

We improved the performance of the size calculati…

Gluon: We improved the performance of the size calculation. Now it's about 5 times faster than before.

New threadpool boosting system to avoid running o…

Server: New threadpool boosting system to avoid running out of threads when something goes wrong and some operations are blocked.

== How to see this new system in action ==

If this ever happens, you'll see the following on your server log:

2018-11-16 12:12:10,851 49 (null)    WARN  WorkerThreadPool - All threads are busy attending methods. Spawning 1 new. Something must be going wrong.

== How it works ==

Suppose you have a situation like this, with 5 methods blocking the server:

ACTIVE METHOD CALLS
    Name                                      Request IP              Time      Thread   Status   Protocol  Sec  User
    GetRepositoryList                             107 127.0.0.1       00:00:01  47       Run      Plastic   None S-1-5-21-514181465-233650702-1722984433-1000
    GetRepositoryList                             102 127.0.0.1       00:00:40  66       Run      Plastic   None S-1-5-21-514181465-233650702-1722984433-1000
    GetRepositoryList                             101 127.0.0.1       00:00:40  65       Run      Plastic   None S-1-5-21-514181465-233650702-1722984433-1000
    GetRepositoryList                              99 127.0.0.1       00:00:41  62       Run      Plastic   None S-1-5-21-514181465-233650702-1722984433-1000
    GetRepositoryList                              98 127.0.0.1       00:00:41  63       Run      Plastic   None S-1-5-21-514181465-233650702-1722984433-1000
    0 requests enqueued. 5 worker threads (0 free)

It shouldn't happen, but sometimes we found issues on very slow networks, or bugs, that blocked some requests.

Now, the server tries to attend a new request, and it enqueues it, and before this fix it had to wait for a free thread.

But now, the following will happen:

2018-11-16 12:12:10,851 49 (null)    WARN  WorkerThreadPool - All threads are busy attending methods. Spawning 1 new. Something must be going wrong.

And a new thread will be created to attend the new request.

== What if there are many enqueued requests ==

If that's the case, the following happens:

2018-11-16 12:11:15,655 49 (null)    WARN  WorkerThreadPool - All threads are busy attending methods. Spawning 6 new. Something must be going wrong.

A new batch of threads will be added to the thread pool (up to the thread pool limit which is normally the number of cores).

Bug

Gluon now displays the size of the private direct…

Gluon now displays the size of the private directories shown in the 'Explore workspace' view. Previously it was always 0.

the checkin operation failed in huge workspaces (…

Using Gluon against the cloud server or a server using SQL backend: the checkin operation failed in huge workspaces (with over 250000 folders) when a size calculation was triggered while a checkin operation was still running. The error message 'Trying to use a previously finished transaction' appeared. This happened e.g. when you hit the checkin button in the checkin view and then you switch to the 'Explore workspace' view and refresh it.

The "Display branch task info" was not working in…

Windows GUI: The "Display branch task info" was not working in the branch explorer. Now it's fixed.

Fixed some transaction errors in servers using SQ…

WebUI: Fixed some transaction errors in servers using SQL-based backends. These errors prevented the code review/diff views and the items tree to display the appropriate contents, showing blank views instead.


7.0.16.2761

Public | 2018-11-13

New

the help of several commands including checkout a…

Command line: the help of several commands including checkout and update has been correctly formatted (some indentation was wrong).

The "cm statt" and "cm rmattr" commands now suppo…

CLI: The "cm statt" and "cm rmattr" commands now support shelves. This was already supported by the core and the Windows GUI, but it lacked CLI support.

Example:

cm statt att:status@quake@localhost:6060 sh:6@quake@localhost:6060 New

Improved the log to show more info about each req…

Server: Improved the log to show more info about each request.

  1. Improved Active Method Calls

3 new columns:

  • Request: the number of the request, to help tracing calls.

  • Status: can be one of these values:

** SslAuth: If the request is negotiating SSL.

** Proto: Request reading protocol information.

** Read: Request reading incoming data from the network.

** Run: Request running on the server.

** Send: Request response being sent back to the caller.

  • Protocol: Remoting or Plastic.

  • Sec: Security - can be SSL or None

ACTIVE METHOD CALLS
Name                                      Request IP              Time      Thread   Status   Protocol  Sec  User
GetRepositoryList                               5 127.0.0.1       00:01:06  24       Send     Remoting  None pablo
Total calls: 1
0 requests enqueued. 1 worker threads (0 free)
  1. Requests are added to Active Method List even before the actual request name has been deserialized from the wire
ACTIVE METHOD CALLS
Name                                      Request IP              Time      Thread   Status   User
Unknown-plasticproto                            4 127.0.0.1       00:02:35  24       Proto
Total calls: 1
0 requests enqueued. 1 worker threads (0 free)

This greatly helps debugging calls that got stuck for some reason.

  1. Security (SSL/None) added to ChannelCall
ChannelCall - conn:     1 protocol:plasticproto sec:ssl recb:   442|rect: 16|sentb:   892|sendt:  0|queuedt:    3109|prt:  119750|th:   25|dest:   0|mt:       0|sert:   0|zip:   0|cpu:      93|       127.0.0.1|user::pablo|GetWorkingMode
  1. Each connection now prints how many requests attended:
2018-10-31 13:27:06,665 A-20     DEBUG PlasticProto.ConnectionFromClient - conn    2 from 127.0.0.1 closed. Requests attended:   11
  1. RequestId added to log calls. You need a new Plastic installation or modify your loader.log.conf as follows:

Add %property{RequestId} to DebugAppender and ChannelCallAppender.

<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
        <file value="plastic.debug.log.txt" />
        <appendToFile value="true" />
        <rollingStyle value="Date" />
        <datePattern value=".yyyyMMdd" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %property{ThreadId} %property{RequestId} %property{TransactionID} %property{UserId} %property{ClientMachine} %-5level %logger - %message%newline" />
        </layout>
    </appender>

    <appender name="ChannelCallAppender" type="log4net.Appender.RollingFileAppender">
        <file value="plastic.channelcall.log.txt" />
        <appendToFile value="true" />
        <rollingStyle value="Date" />
        <datePattern value=".yyyyMMdd" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %property{RequestId} %-5level %logger - %message%newline" />
        </layout>
    </appender>
  1. More log in WorkerThreadPool: it now says the corresponding connection, which helps tracing issues:

Before

2018-10-26 08:14:58,015 A-29    DEBUG PlasticProto.ConnectionFromClient - conn  154. awaked. total 1
 2018-10-26 08:14:58,015 A-29    DEBUG WorkerThreadPool - Enqueued new work. Enqueued: 1 Worker threads: 7 (2 free)
 2018-10-26 08:14:58,031 A-29    DEBUG WorkerThreadPool - There are 2 free threads - not starting a new one. Enqueued: 1

 2018-10-26 08:14:58,031 W-25    DEBUG WorkerThreadPool - Request dequeued. It was waiting for 00:00:00.0156254. Queued requests: 0. Id: 25
 2018-10-26 08:14:58,031 W-25    DEBUG WorkerThread - WorkerThread.Run: Work retrieved. Id: 25. 125 ms

Now:

2018-10-31 15:00:21,896 A-20     DEBUG Channel - conn    2. awaked. total 1
2018-10-31 15:00:21,897 A-20     DEBUG WorkerThreadPool - Enqueued new work. Enqueued: 1 Worker threads: 1 (1 free). conn    2
2018-10-31 15:00:21,897 A-20     DEBUG WorkerThreadPool - There are 1 free threads - not starting a new one. Enqueued: 1. conn    2

2018-10-31 15:00:21,897 W-21     DEBUG WorkerThreadPool - Request dequeued. It was waiting for 00:00:00. Queued requests: 0. ThId: 21. conn    2
2018-10-31 15:00:21,898 W-21     DEBUG WorkerThread - WorkerThread.Run: Work retrieved. ThId: 21. 2328 ms. conn    2

built-in search in explore workspace view. From n…

Gluon for macOS and Linux: built-in search in explore workspace view. From now on, you can find files at light speed just typing Command-F in macOS or CTRL-F in Linux.

Correctly format replication fields in showfindob…

Correctly format replication fields in showfindobjects command.

Added better explanations about the rev specifica…

Added better explanations about the rev specification and about the target field in the cm find review command.

The previously used server drop-down has been mad…

Windows GUI: The previously used server drop-down has been made more usable by only showing servers used in the last 30 days.


7.0.16.2744

Public | 2018-11-07

New

The 'cm status' command no longer prints performa…

CLI: The 'cm status' command no longer prints performance warnings (if any) with the flag '--short'. This way, it is easier to parse its output for task automation and the like.

Bug

client: Fixed frozen update from a Plastic Cloud…

macOS: client: Fixed frozen update from a Plastic Cloud repository.

Since we updated to support macOS Mojave, big downloads from Plastic Cloud stopped working. On-premise servers were not affected because they download using a different protocol.

Now it is finally fixed.

== Why this happened? ==

To fix issues in Mojave we did 2 things:

  • Upgraded to latest XCode.

  • Upgraded to Xamarin.Mac 5.0.0.0.

Colors and other things were fixed, but unfortunately something broke downloading lots of contents using HTTP.

We are going to report the case to Xamarin so they can fix it.

== How did we solve it? ==

We downgraded to Xamarin.Mac 4.4.1.193 from Xamarin.Mac 5.0.0.0.


7.0.16.2740

Public | 2018-11-05

Bug

The Mergetool comparison method 'Recognize all' f…

Mergetool: The Mergetool comparison method 'Recognize all' failed when there was a conflict at the end of the file in the following scenario:

When the last two lines of any contributor were an empty line (just the LF '\n' char) followed by a line with no EOL char.

On a Linux client working against the Cloud, the…

On a Linux client working against the Cloud, the checkin operation was failing during the upload step due to a memory leak when thousands of files were uploaded.

The problem was a Mono issue related to the connection limit, which is avoided.

We also improve the memory usage during the update phase adding some buffer pools and avoiding some objects creation.

Server Alias: serveralias.conf supports now alias…

Client: Server Alias: serveralias.conf supports now aliases to Cloud repos:

localhost:8087 my_org@cloud

This might be useful if you are migrating your on-premise server to the Cloud and you have writable Xlinks that are not configured to use a relative server. In that scenario, those Xlinks couldn't be resolved in the Cloud because the target repository wouldn't be found.

You can work around that if you add an alias to translate your on-premise server (locahost:8087) into your cloud server (my_org@cloud) when Plastic resolves the Xlinks.


7.0.16.2725

Public | 2018-10-30

New

We improved the styling of the dropdown filter in…

WebUI: We improved the styling of the dropdown filter in the Items View!

We now tell the user how to view the help if they…

We now tell the user how to view the help if they attempt to run the binmergetool utility with no arguments.

TrunkBot is now capable of labeling the resulting…

DevOps: TrunkBot is now capable of labeling the resulting changesets of merging task branches into trunk branch. The 'Learn More' section of TrunkBot has been updated with a full description of this feature.

Two variables can be used in your label pattern for this purpose:

*${BUILD_DATE_FORMATTED, <a_valid_date_format>}

It will substitute the variable with the current date specified in the a_valid_date_format string. See example below:

Release_1.0_${BUILD_DATE_FORMATTED, yyyy-MM-dd}

pattern will generate a label name like: Release_1.0_2018_10_25

  • ${AUTO_INCREMENT_NUMBER}

It will substitute the variable by the next number, having a previously existing label match in the repository. If there are no labels matching the specified pattern, the variable will be replaced by a 0. See the example below:

Release_1.3.${AUTO_INCREMENT_NUMBER}

will cause TrunkBot to find a previously existing label matching that pattern. If a label is found that way (e.g. Release_1.3.15), TrunkBot will create a new label named Release_1.3.16

TrunkBot is now capable of running a different co…

DevOps: TrunkBot is now capable of running a different continuous integration build plans after a task branch is checked-in in the trunk branch. This is useful to deploy the merged code after check-in.

DevOps: protect the load of the DevOps UI in the…

Server: DevOps: protect the load of the DevOps UI in the webadmin in case that the websocket to communicate with plugs can't be started.

DevOps: The built-in trunkbot naming was not cons…

Server: DevOps: The built-in trunkbot naming was not consistent. Sometimes it said Trunk bot, others TrunkBot. We made it consistent.

Greatly improved the help of the cm showfindobjec…

Greatly improved the help of the cm showfindobjects command. Now it really helps you doing finds with examples and in-depth explanations.

Bug

We fixed an issue in newer distros (OpenSUSE Leap…

Linux CLI: We fixed an issue in newer distros (OpenSUSE Leap 15 and Ubuntu 18.10 among others) that caused CLI commands to crash when they had to output text to the terminal.

The command 'cm checkout' is now updated: the 'ex…

CLI: The command 'cm checkout' is now updated: the 'exclusive' flag is removed.

CLI: The command 'cm unco' (also, 'cm undocheckout') was correctly updated in the Spanish version of the command line help.


7.0.16.2688

Public | 2018-10-22

New

A branch with multiple heads cannot be pushed. Pr…

A branch with multiple heads cannot be pushed. Previously, the error message did not give any useful information. Now, it specifies the heads that need to be merged, so you can unify the heads and push the branch without error.

Bug

The 'cm help objectspec' command now displays the…

CLI: The 'cm help objectspec' command now displays the complete help about the different "specs" available.

We fixed an issue in Firefox and Edge that preven…

WebUI: We fixed an issue in Firefox and Edge that prevented the diff view from loading the contents of the currently selected item (it kept the contents of the previously selected item).

We detected that the checkin operation could store a revision without data when these conditions were met:

  • The Plastic SCM Server uses the Jet backend

  • User performs a merge from a branch that contains files modified only on source

  • User shelves all changes using the CLI client ('cm shelve', no path specified)

  • User checks in the merge result

The copied revisions (i.e. modified only on merge source) in the resulting changeset wouldn't have any data at this point.

We fixed this scenario, so this shouldn't happen again!


7.0.16.2679

Public | 2018-10-18

New

The server will ensure that the plug configuratio…

DevOps: The server will ensure that the plug configurations linked from a mergebot configuration are started when you create a new mergebot configuration or you edit a mergebot configuration that was running at that point. This will also happen when you start a mergebot configuration!

Added a close action in the Branch Explorer's dia…

Windows GUI: Added a close action in the Branch Explorer's diagram legend.

Server side merge is now enabled by default. You…

All GUIs and CLI: Server side merge is now enabled by default. You can learn more about server side merges here: http://blog.plasticscm.com/2018/03/workspace-less-merge-to.html

We reduced the amount of debug log generated by t…

We reduced the amount of debug log generated by the replication operation. The server no longer logs replicated trees, which were the reason why replication logs grew up to 40 GB in some cases.

Bug

merge failed with the error "Attempted to divide…

DevOps: merge failed with the error "Attempted to divide by zero." under certain circumstances when the file conflicts were resolved using the semantic merge. Now it's fixed.


7.0.16.2661

Public | 2018-10-10

New

We added a panel to the Image Diff that ask you f…

Windows GUI: We added a panel to the Image Diff that ask you for confirmation before calculating the diff of big images. This is >2MB by default but you can customize it in the 'mergetool.conf' file using the 'big_file_size' key (in bytes).

The Plastic SCM Server version number is now disp…

WebUI: The Plastic SCM Server version number is now displayed in the page footer.

Support for macOS mojave Dark Theme (still beta,…

macOS: Support for macOS mojave Dark Theme (still beta, please feel free to report any theme issue to support@codicesoftware.com). REMARK: The diff viewer syntax highlighter does not change between themes on-the-fly. You need to close and reopen Plastic to get it working. We're working to support that asap.

Now the GUI displays the current (working) worksp…

Windows GUI: Now the GUI displays the current (working) workspace in bold font in the workspaces view. Note that branches, changesets, history ... already display the working object with a bold font.

The 'cm li' command now has a nicer, tidier outpu…

CLI: The 'cm li' command now has a nicer, tidier output, some new flags, and a revamped help. Specifically, the new flags are:

--inactive
--active
--sort={name|status}

The first filters out active users, while the second filters out inactive ones. The third one allows you to sort the license usage table by user name or by its status (licensed or inactive). As always, you can refer to the built-in documentation for further information like this:

cm li --help

This is part of our ongoing effort on making our CLI great, and we expect to enhance the 'cm li' command again soon!

'(

We implemented a workaround to a regression in macOS 10.14 Mojave launching apps from Finder or via "open" on the command line. All our clients (plastic, gluon and mergetool) where affected by some graphical issues. Additionally, AppKit started drawing corrupted graphics randomly :'(

We just published version 0.12 of our plasticscm-…

DevOps: We just published version 0.12 of our plasticscm-mergebot-plugin! Check the changelog in the Wiki page: https://wiki.jenkins.io/display/JENKINS/PlasticSCM+MergeBot+plugin

We just released plugin version 2.20! Check the c…

Jenkins plugin: We just released plugin version 2.20! Check the changelog in the Wiki page: https://wiki.jenkins.io/display/JENKINS/PlasticSCM+plugin

We enabled code folding in the diff/content views…

WebUI: We enabled code folding in the diff/content views, as well as bracket matching and control + G to navigate to a line by number.

Bug

The '1:1' and 'Fit image' buttons had their funct…

Windows Image Diff: The '1:1' and 'Fit image' buttons had their functionality swapped! We fixed that so each button launches the appropriate operation.

Requesting the list of affected files from our SC…

Jenkins plugin: Requesting the list of affected files from our SCM plugin failed. This happened with the Slack notifier plugin, for instance. It's now fixed!

merge failed and returned a cryptic error message…

DevOps: merge failed and returned a cryptic error message ("The specified branch -1 can't be found.") if the merge contained xlinks with unresolved conflicts and there weren't any changes in the destination branch inside the xlink. We changed that to make the client display a helpful message: 'The "Merge-to" operation cannot be executed because the merge from changeset cs:32992@myRepo to branch br:/main/release_2308 has conflicts. It is necessary to run a "Merge from" operation from a workspace to resolve those conflicts.'

We added support of recursive merges that include…

DevOps: We added support of recursive merges that include a file with conflicts among the ancestors and the merge contributors at the same time.

Fixed an issue that could make macplastic & gluon…

macOS: Fixed an issue that could make macplastic & gluon to crash when opening certaing views in Mojave.


7.0.16.2659

Public | 2018-10-10

New

We added a panel to the Image Diff that ask you f…

Windows GUI: We added a panel to the Image Diff that ask you for confirmation before calculating the diff of big images. This is >2MB by default but you can customize it in the 'mergetool.conf' file using the 'big_file_size' key (in bytes).

The Plastic SCM Server version number is now disp…

WebUI: The Plastic SCM Server version number is now displayed in the page footer.

Support for macOS mojave Dark Theme (still beta,…

macOS: Support for macOS mojave Dark Theme (still beta, please feel free to report any theme issue to support@codicesoftware.com). REMARK: The diff viewer syntax highlighter does not change between themes on-the-fly. You need to close and reopen Plastic to get it working. We're working to support that asap.

Now the GUI displays the current (working) worksp…

Windows GUI: Now the GUI displays the current (working) workspace in bold font in the workspaces view. Note that branches, changesets, history ... already display the working object with a bold font.

The 'cm li' command now has a nicer, tidier outpu…

CLI: The 'cm li' command now has a nicer, tidier output, some new flags, and a revamped help. Specifically, the new flags are:

--inactive
--active
--sort={name|status}

The first filters out active users, while the second filters out inactive ones. The third one allows you to sort the license usage table by user name or by its status (licensed or inactive). As always, you can refer to the built-in documentation for further information like this:

cm li --help

This is part of our ongoing effort on making our CLI great, and we expect to enhance the 'cm li' command again soon!

'(

We implemented a workaround to a regression in macOS 10.14 Mojave launching apps from Finder or via "open" on the command line. All our clients (plastic, gluon and mergetool) where affected by some graphical issues. Additionally, AppKit started drawing corrupted graphics randomly :'(

We just published version 0.12 of our plasticscm-…

DevOps: We just published version 0.12 of our plasticscm-mergebot-plugin! Check the changelog in the Wiki page: https://wiki.jenkins.io/display/JENKINS/PlasticSCM+MergeBot+plugin

We just released plugin version 2.20! Check the c…

Jenkins plugin: We just released plugin version 2.20! Check the changelog in the Wiki page: https://wiki.jenkins.io/display/JENKINS/PlasticSCM+plugin

We enabled code folding in the diff/content views…

WebUI: We enabled code folding in the diff/content views, as well as bracket matching and control + G to navigate to a line by number.

Bug

The '1:1' and 'Fit image' buttons had their funct…

Windows Image Diff: The '1:1' and 'Fit image' buttons had their functionality swapped! We fixed that so each button launches the appropriate operation.

Requesting the list of affected files from our SC…

Jenkins plugin: Requesting the list of affected files from our SCM plugin failed. This happened with the Slack notifier plugin, for instance. It's now fixed!

merge failed and returned a cryptic error message…

DevOps: merge failed and returned a cryptic error message ("The specified branch -1 can't be found.") if the merge contained xlinks with unresolved conflicts and there weren't any changes in the destination branch inside the xlink. We changed that to make the client display a helpful message: 'The "Merge-to" operation cannot be executed because the merge from changeset cs:32992@myRepo to branch br:/main/release_2308 has conflicts. It is necessary to run a "Merge from" operation from a workspace to resolve those conflicts.'

We added support of recursive merges that include…

DevOps: We added support of recursive merges that include a file with conflicts among the ancestors and the merge contributors at the same time.


7.0.16.2645

Public | 2018-10-05

New

We released version 0.11 of our plasticscm-mergeb…

DevOps: We released version 0.11 of our plasticscm-mergebot-plugin for Jenkins! Upgrade it in your Jenkins instance!

Added validation errors before closing the "Renam…

Windows GUI: Added validation errors before closing the "Rename" dialog. This way, if you specify the same branch/label/repository/workspace/attribute name than the original, a validation error will be shown and the rename dialog will remain opened until you specify a different name.

Merge-to operation: If new changesets are create…

Windows, Linux and OS X GUI: Merge-to operation: If new changesets are created while an user is running a merge-to operation in the same destination branch, Plastic will warn the user about this condition and will prompt the user to unify these heads by running a new merge-to operation.

REMARK: If multiple xlinked repositories are involved, you will need to fallback to workspace-side merge operation (switch workspace to the destination branch and run a "merge from" your source branch).

Bug

Fixed typos: Instead of showing "Keep base contri…

Mergetool: Fixed typos: Instead of showing "Keep base contributor & exit" in "Save" menu options, show "Keep base contributor & exit".

We detected that Jenkins returns "ERROR: null" in…

DevOps: We detected that Jenkins returns "ERROR: null" in pipelines if it's configured to use Pipeline script from SCM and the script path is invalid. We improved the message to show that the resulting 'cm cat' command failed.

Aborting a git clone/fetch/pull/push command with…

GitServer: Aborting a git clone/fetch/pull/push command with ctrl+c could make the server crash in Linux due to an unexpected unhandled exception (related to setting the response http status code after the response headers were sent). All the GitServer threads are now protected to avoid crashing the server anymore.

The message in the console output after the server crashed was the following: "Cannot be changed after headers are sent".


7.0.16.2637

Public | 2018-10-02

New

Rename/move directories are working again! This i…

Unity 3D plugin: Rename/move directories are working again! This issue happened since Unity 5.1.1f1 introduced a bugfix with side-effects that broke the rename/move folder in Plastic.

Thanks to the help of Jake Turner from Unity staff we were able to implement a valid workaround to fix this issue :)

decorators for folders are now updated correctly…

Unity 3D plugin: decorators for folders are now updated correctly after running add/checkin operations.

The trunk mergebot logging now makes more sense a…

DevOps: The trunk mergebot logging now makes more sense and introduces more detail in the failed operations, but in a readable way.

The 'cm showfindobjects' command now is way more…

CLI: The 'cm showfindobjects' command now is way more useful than it was. We have added the type of each field you can search by, and some tips and tricks regarding replicationlog and date constants you can use on your queries. This is an ongoing effort on making our CLI great, so expect further improvements on this.

Bug

//orgA@cloud.plasticscm.com:8086 wasn't able to o…

Replicating against 2 different organizations (orgA and orgB) at the same time from the same server, one of the replications could fail with the error "Plastic SCM server ssl://orgA@cloud.plasticscm.com:8086 wasn't able to open a connection to the database. Check the server log (plastic.server.log). Error: Login failed for user 'orgA_rep_22'."

Plastic SCM plugin for Visual Studio was not list…

Visual Studio Package: Plastic SCM plugin for Visual Studio was not listed as a valid Source Control Provider if the user that installed plastic was a Windows standard user. Fixed.


7.0.16.2630

Public | 2018-10-01

New

-)

mergebots can now merge conflicts across files. A release note won't probably tell how awesome it is, but let's try :-)

  • You move a method to a different file and change it.

  • Meanwhile someone else modifies the method in the original location in a different branch.

  • Now the mergebot merges the first branch, no problem.

  • Then it goes and merges the second one: and it applies the changes made by your colleague to the method you moved. Automatically. No conflict needed if the changes do not collide.

Sufficiently advanced technology is indistinguishable from magic, and this, indeed, is magic ;-)

Can't say how proud we are for this.

Enjoy

Diff viewer: When clicking a line involving a dif…

macOS/linux GUI: Diff viewer: When clicking a line involving a difference, the diff navigation counter is updated. This allows navigating differences by clicking in the diff's textboxes, and not only using the navigation buttons (first, previous, next, last).

Branch Explorer: we refactored the rendering code…

Windows GUI: Branch Explorer: we refactored the rendering code to greatly reduce memory usage. Now it should use 1/3 of the memory it used before. Our entire history with 11k branches since 2006 went down from 900MB to about 300. And this is just a first step :)

Our jenkins mergebot plugin now supports Lightwei…

DevOps: Our jenkins mergebot plugin now supports Lightweight checkout for pipelines! Give it a try!

"Diff with other changeset" dialog did not save/l…

Windows GUI: "Diff with other changeset" dialog did not save/load the default query properly. Now it's fixed.

The installer failed to setup the Visual Studio p…

Windows installer: The installer failed to setup the Visual Studio package for Visual Studio 2017 if there was a running instance in the machine. Now the installer forces to close all instances before installing the package.

We changed the date format in the .control.log lo…

devops: We changed the date format in the .control.log log files so now dates are printed in the same format used by the other logs we produce. This is used each time a plug and mergebot is started.

Bug

The License section displayed an expiration date…

WebAdmin: The License section displayed an expiration date (set to the license creation date) for Perpetual licenses, which is incorrect. Now, only subscription licenses will show their expiration date.

the 'cm cat' command failed for revisions specifi…

CLI: the 'cm cat' command failed for revisions specified from a server path and a shelve spec. Fixed.

The last diffs were not correctly painted in the…

Windows GUI: The last diffs were not correctly painted in the diff viewer when the last line was visible in the text editors. Now it's fixed.

We had an issue with advanced move detection (usi…

Windows: We had an issue with advanced move detection (using the NTFS Journal):

  • Open Plastic & the "pending changes" view

  • Edit /src/foo.c using the notepad

  • Move /src/foo.c to /foo.c

  • No other change on /.

  • Refresh the "pending changes" view

The "pending changes" view showed:

  • Moved /src/foo.c to /foo.c

But the edition is not detected (the item doesn't appear as changed).

Now it's fixed, and "pending changes" view shows:

  • Changed /foo.c

  • Moved /src/foo.c to /foo.c

We had an issue with advanced move detection (usi…

Windows: We had an issue with advanced move detection (using the NTFS Journal):

  • Open Plastic & the "pending changes" view

  • Rename /art/img001.png to /arc/conceptart.png

  • Edit /art/conceptart.png

  • Move /art/conceptart.png to /conceptart.png

  • Refresh the "pending changes" view

The "pending changes" view showed:

  • Locally deleted /art/img001.png

  • Private /art/conceptart.png

Now it's fixed and the "pending changes" view shows:

  • Changed /conceptart.png

  • Moved /art/img001.png to /conceptart.png


7.0.16.2613

Public | 2018-09-25

New

Print ServerStats every 10 minutes instead of every 30 seconds. This is the information in the log dumping memory usage, process info and more. It was creating 3 million lines per hour on some big customers so we decided clean some of the info. No more info about caches is dumped.

Added macOS 10.14 Mojave support!

All clients: Added macOS 10.14 Mojave support!

Warning: We noticed that there might be graphical issues at this point regarding the Dark Theme. While we're on it, you can run /Applications/PlasticSCM.app/Contents/MacOS/PlasticSCM directly, which should display everything correctly.

We detected on a client running a server that use…

We detected on a client running a server that uses a MySQL backend, that the MySQL fails under heavy load with unexpected errors (like saying that an existing column doesn't exist).

When those errors happen reading the license info, the server is terminated as the license info is corrupted.

Now the server will no longer shutdown when the license info is corrupted. It will inform the client that the operation cannot be done because the license info is corrupted but the server will continue running.

We also protect the license info from unexpected backend issues, so the license info should not be corrupted anymore.

Diff viewer: When clicking a line involving a dif…

macOS/linux GUI: Diff viewer: When clicking a line involving a difference, the diff navigation counter is updated. This allow navigate the differences by clicking in the diff's textboxes, and not only using the navigation buttons (first, previous, next, last).

Bug

The "License token" text box doesn't show the who…

WebAdmin: The "License token" text box doesn't show the whole token in some cases because of the width of the box. Fixed.

our semantic parsers (for Java and C++ languages)…

Semantic SCM: our semantic parsers (for Java and C++ languages) did not work with Java version 10 because of the way we checked that the correct JVM version was installed. Fixed.

The license auto-renewal using license tokens was…

Server: The license auto-renewal using license tokens wasn't working after our website migration of 2018-09-18. Our new website required TLSv1.2, not enabled in .NET Framework apps by default. We manually added TLSv1.1 and TLSv1.2 support in our server process, which should make the auto-renewal work again!


7.0.16.2604

Public | 2018-09-19

New

Finally, GitServer can secure the git clients usi…

GitServer: Finally, GitServer can secure the git clients using the http basic authentication!

It means the git client will ask you to enter the username and the password when connecting GitServer if this authentication is enabled.

To configure it, you just need to add the following entry in the gitserver.conf file (located in the server folder).

http.basicauth=true

Of course, GitServer must be configured to listen in the http protocol.

http.port=8080
http.basicauth=true

It is important to remark that to work this way, the Plastic SCM server must be configured in LDAP, AD or UP security mode so the git client can be authenticated against the server using an user/password pair.

The security is only checked at repository level which means that the server will only check if the authenticated user through Git has permissions in Plastic to view the specified repository (in the Git url).

For more info about GitServer, see the following link: https://www.plasticscm.com/gitserver/

Print ServerStats every 10 minutes instead of every 30 seconds. This is the information in the log dumping memory usage, process info and more. It was creating 3 million lines per hour on some big customers so we decided clean some of the info. No more info about caches is dumped.

Bug

Branch Explorer hanged doing refresh if 'display…

Windows GUI: Branch Explorer hanged doing refresh if 'display branch task info' was enabled under some rare circumstances. We were able to reproduce it doing tons of refreshes, but support reported that they forced it launching Branch Explorer from Unity several times. Now it is fixed.

Fixed an exception when setting the move detectio…

Windows GUI: Fixed an exception when setting the move detection similarity percentage to its minimum value in the pending changes options dialog. Also, the similarity percentage label was not updated when the form was loaded. Now it's fixed.


7.0.16.2596

Public | 2018-09-14

New

DevOps preview is now public!

DevOps preview is now public!

You have probably read about our effort to help companies implement DevOps successfully (Read more about the story of our DevOps Initiative here). Wait no more, the DevOps Initiative is now live!

== What is the DevOps Initiative all about ==

It is a new web interface inside the Plastic webadmin to monitor how branches are automatically merged when they meet a set of conditions.

This is the key fundamental to greatly considerably speed up the cycle of task branches and blends perfectly well with many development methodologies and best practices: SCRUM, Kanban, and more.

== mergebots – the heart of Plastic DevOps ==

The branches are processed and merged by mergebots.

A mergebot will automate the following manual tasks responsible for:

  • Detect when a branch is ready to be merged. It can be an attribute set to the branch or the associated Jira issue/ticket set to a given status.

  • Merge the branch to the destination branch (typically main, but it can be customized can be configured). Instead of actually merging to main, it will create a shelve, so the merge is not confirmed until tests pass.

  • Launch the build of the shelve in your Continuous Integration System. This will be your Jira, TeamCity or Bamboo (support for more systems is coming, and customization is possible).

  • Monitor the build.

  • If the build passes, the shelve will be "confirmed": It will be checkedin to the branch.

  • Notify of each step accordingly using email or Slack.

== We include a default mergebot, but more are coming ==

This version includes a default mergebot capable of doing "branch per task" together with trunk-based development. All the information about how it works is included in the web interface, so you just have to go to the DevOps section of the webadmin and discover how it works.

Our goal is to work with teams like yours to develop more mergebots tailored to your specific needs, so, if you are interested in trying it out and want to some guidance, please don’t hesitate and reach us at support@codicesoftware.com.

== One more thing ;-) ==

The Plastic SCM server now is capable of merging files. This is in fact required for the mergebot to be truly effective. It means if a file was modified by two developers, the mergebot can merge it if manual intervention is not required.

To reduce the chances of manual intervention, the Plastic SCM server is now powered by SemanticMerge, which means many conflicts that text-based tools consider manual, can now be automatic.

Yes, as awesome as it sounds.

REMARK: to enable this feature, you will have to write the following entry in the server.conf server config file:

<EnableDevops>true</EnableDevops>

Bug

Branch Explorer hanged doing refresh if 'display…

Windows GUI: Branch Explorer hanged doing refresh if 'display branch task info' was enabled under some rare circumstances. We were able to reproduce it doing tons of refreshes, but support reported that they forced it launching Branch Explorer from Unity several times. Now it is fixed.


7.0.16.2589

Public | 2018-09-13

New

Support Ctrl+Backspace to delete the previous wor…

Windows Gluon: Support Ctrl+Backspace to delete the previous word in Gluon textboxes.

The File Explorer branch/label selector now inclu…

WebUI: The File Explorer branch/label selector now includes a date filter to fine tune the server query.

From now on, launching these applications from a…

Gluon, Plastic and Mergetool for Linux (GTK): From now on, launching these applications from a terminal won't show annoying debug warning messages. stderr was redirected to /dev/null in the launching scripts located in /usr/bin:

  • gtkplastic

  • gtkmergetool

  • gluon

filetypes.conf is now used for diffs and merges t…

filetypes.conf is now used for diffs and merges to check if a file is binary or text.

Until now, the filetypes.conf configuration file was only used by the "add operation" to set newly added files as binary or text.

From now on it will be used to determine if a file is binary or text before running diffs or merges.

Example: suppose scene.config was wrongly added as binary. You can now configure filetypes.conf to consider scene.config as text, so the right text-based diff and merge tool will be selected instead of considering the "bin type" tracked for the file in the repo.

Motivations:

  1. This is really useful when you are working with Plastic Cloud, since changing revision types is not allowed there.

  2. Our goal is to get rid of the bin/txt tracking as metadata in the repo, and rely only on filetypes.conf.

Bug

The upload license funcionality did not work. Now…

WebAdmin: The upload license funcionality did not work. Now it's fixed.

With the new localization system released few day…

With the new localization system released few days ago, the windows GUI complained about not finding the localization file if the language of the operating system was different than English or Spanish. Now it's fixed. The English localization will be used by default until we have more translations.

Fixed the message displayed in the diff viewer wh…

Fixed the message displayed in the diff viewer when a file changed the encoding. The message was wrongly displayed as 'Encoding changed from {0} to {1}'. Now it's fixed.

Under some circumstances, the changesets view was…

Gluon Windows: Under some circumstances, the changesets view was displaying an unexpected error when loading. Now it's fixed.

The pending changes options dialog did not displa…

Plastic Windows: The pending changes options dialog did not display a form title when it was displayed. Now it's fixed.


7.0.16.2562

Public | 2018-09-06

New

The 'cm unlock' command can now be executed by no…

Command Line Client: The 'cm unlock' command can now be executed by non-administrator users to unlock their locks (locks whose owner matches with the user that executes the command).

The owner of a lock can be checked in the second column of the 'cm listlocks' command output.

We improved the VCS Root polling performance by a…

TeamCity Plugin: We improved the VCS Root polling performance by avoiding checks of branches whose head hasn't changed since last polling interval.

Improved the automatic change detection. The view…

Gluon/Plastic for Windows: Improved the automatic change detection. The view is autorefreshed when the window or view is activated, but only if something changed in the workspace since the last refresh.

Added auto-refresh option. Open the checkin/pendi…

Gluon/Plastic for Gtk: Added auto-refresh option. Open the checkin/pending changes view options to enable auto-refresh. If enabled, the checkin/pending changes view is autorefreshed when the window or view is activated, but only if something changed in the workspace since the last refresh.

WebUI: We added links to column values in the Changesets and Labels tables.

Each changeset row includes a link to diff the changeset in the changeset number and a link to diff the changeset branch in the branch name, whereas each labels row includes a link to browse the repository in the label name and a link to diff the labeled changeset in the changeset number.

Bug

Some buttons were cut on certain dpi resolutions.…

Windows GUI: Some buttons were cut on certain dpi resolutions. Now it's fixed. Controls fixed:

  • The workspace status bar refresh button

  • The textbox on the item's view search popup control.


7.0.16.2548

Public | 2018-08-31

New

Add support for the multiline changeset comments.

TeamCity Plugin: Add support for the multiline changeset comments.

Bug

The diffs for java, c and c++ files were not work…

WebUI: The diffs for java, c and c++ files were not working since we published semantic diffs. Finally it's fixed and you can enjoy both, text and semantic diffs!

We fixed a bug that prevented user info from bein…

Server: We fixed a bug that prevented user info from being refreshed after an unexisting user was used. It only happened if the server was configured in LDAP Working Mode against an ActiveDirectory server. This bug was introduced in version 7.0.16.2505.


7.0.16.2539

Public | 2018-08-30

New

)

Moved the localization of the Linux, OS X and part of the Windows GUIs from the code to a .txt file. It means it will be super easy to translate Linux and OS X to French, German... whatever :)

We added a toggle in the Branches List to allow y…

WebUI: We added a toggle in the Branches List to allow you to select which kind of date filter you wish to apply. You can either filter by date using either the branches timestamp or the timestamp of the changesets in each branch!

The temporary path used by the Plastic SCM Server…

The temporary path used by the Plastic SCM Server can be configured now. You just need to set the appropriate value in the 'TmpPath' property (edit the 'server.conf' file in the server binaries directory); you might need to add it if it's not present. If no custom temporary path is set, the OS tmp path value will be used.

Bug

Executing 'cm partial ci' caused the client to re…

CLI: Executing 'cm partial ci' caused the client to return the error message "Object reference not set to an instance of an object" because it didn't support added xlinks as part of the set of changes to checkin.

To fix this, we improved the 'cm partial ci' command so that it supports added xlinks!


7.0.16.2531

Public | 2018-08-29

New

We've refurbished the Code Review view, give it a…

WebUI: We've refurbished the Code Review view, give it a try! It now includes semantic information and displays differences as you're used to in Plastic SCM: rolling blocks of changes.

We removed pagination from the File Explorer. We…

WebUI: We removed pagination from the File Explorer. We consider that it's generally more useful to have the complete list of files without pagination.

Improved the performance of the checkin operation…

Linux (GTK) and macOS GUIs: Improved the performance of the checkin operation from the GUI for big checkins involving a lot of items. Some users reported troubles with checkins of more than half a million items. For such big operations, the GUI was having trouble calculating the items to include in the checkin operation, and their dependencies. Now, the checkin operation should start almost immediately after clicking the "Checkin" button. The time it took for the GUI to do the necessary operations grew up exponentially depending on the number of items on the Pending Changes view, so it is hard for us to give an accurate speedup. Our tests (using a workspace of ~900K items) concluded that the fix would reduce the time before the checkin actually starts from several hours (up to two and a half!) to a mere four seconds.

Diffs are editable in the pending changes view. Y…

Plastic for Linux: Diffs are editable in the pending changes view. You can edit the right textbox, and then save (Ctrl+S) or discard the changes.

We also added two button bars that allows to delete/restore differences between left and right contributors.

Diff are also editable in the diff window, but only when you're displaying the same file version on the right textbox that you're loading in your workspace.

History is available! You'll now find a "History"…

WebUI: History is available! You'll now find a "History" button next to the "Download" one when you browse the File explorer and click any file to display its contents. You'll see a table with all revisions of that file, and you'll be able to diff any given revision with the previous one in the server! Isn't that nice?

Bug

We fixed a stack overflow error that caused the '…

CLI: We fixed a stack overflow error that caused the 'ls' command to crash when the workspace contained symlinks with either direct (a -> a) or indirect (a -> b -> a) recursion.


7.0.16.2505

Public | 2018-08-20

New

Added support for submodules. Before this release…

WebUI: Added support for submodules. Before this release, submodules weren't detected as valid repositories in the WebUI, but that's changed! Feel free to browse repository contents, list branches or diff changesets in your submodules as you did for your root repositories! Just keep in mind that the submodule slashes in WebUI URLs will need to be URL-encoded (e.g. 'rootRepo%2FmySubmodule' instead of 'rootRepo/mySubmodule') at the moment.

When the configuration file 'guivisualstate.xml'…

Windows GUI: When the configuration file 'guivisualstate.xml' got corrupted, the user got a stupid message saying "Error loading views info" and that's all, plastic didn't open.

From now, a more informative message will be displayed and plastic will be auto recovered. The corrupt file will be discarded and a new one created.

Bug

We broke the diffs for non-semantic files in the…

WebUI: We broke the diffs for non-semantic files in the last published release where we announced semantic diffs :( Sorry for the inconveniences. Now it's fixed!


7.0.16.2492

Public | 2018-08-16

New

The main branch of a repository, used in the File…

WebUI: The main branch of a repository, used in the File Explorer, will be requested to the server instead of just assuming that it's '/main'.

WebUI: Navigating directly to a repository URI (/webui/repos/:repoName) will now open the file explorer set to the main branch of that repository.

WebUI: Xlinks are now resolved and users can navigate inside them in the file explorer.

Binary files can now have their metadata displaye…

WebUI: Binary files can now have their metadata displayed on diff and content controls!

now you can filter the issues the JIRA extension…

JIRA Extension: now you can filter the issues the JIRA extension retrieves by their type. This is useful, for example, if you only want to see in Plastic SCM "Bug" or "Task" issues, filtering out the rest.

To configure it on Windows, you can enter a comma-sepparated list of issue types under "Preferences > Issue trackers > Atlassian JIRA > Issue types".

If you are using GNU/Linux or macOS, you can copy and edit as you need the following line, and paste it in you jira.conf file (usually under $HOME/.plastic4/issuetrackers/host_port/allrepos):

Name=Issue types;Value=Bug,Task;Type=Text;IsGlobal=False

Say a big Hello to semantic capabilities in our d…

WebUI: Say a big Hello to semantic capabilities in our diff view! We added a toggle button to switch back and forth between the Semantic Diff Mode and the Text Diff mode. Give it a spin!

WebUI: We added a new icon to identify Xlinks in the File explorer.

Enhanced the performance of the repositories list…

Windows GUI: Enhanced the performance of the repositories list. Until now, the GUI was trying to solve the name of the owner of each repository, which is useless, as it does not appear on the list. This could cause performance issues in some scenarios, such as with a slow LDAP server.

Bug

UserInfoLoader. We catched a wild "An item with t…

Server: UserInfoLoader. We catched 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.

We fixed the horizontal scroll of side-by-side di…

WebUI: We fixed the horizontal scroll of side-by-side diff editors! They should now move appropriately now when you reveal the contents of really long lines.

The User/Password authentication page was unable…

WebAdmin: The User/Password authentication page was unable to redirect to the Edit User page if the targeted user name had any uppercase characters. Fixed.

The confirmation dialog prompted to confirm the d…

WebAdmin: The confirmation dialog prompted to confirm the deletion of an user or group was always returning OK, even if the user clicked cancel. Fixed.

Due to a trigger cache issue on a really uncommon…

Server: Due to a trigger cache issue on a really uncommon scenario, the calls that use triggers (e.g. the push operation) could start failing with the error 'Explicit transaction expected, but found no transaction.' and continue failing until the server is restarted. Now it's fixed.

Text files using encodings different from UTF-8 w…

WebUI: Text files using encodings different from UTF-8 weren't properly rendered on the Diff/Content views. Fixed.

The "Similarity percentage" setting on the new Pe…

All GUIs: The "Similarity percentage" setting on the new Pending Changes options dialog was displayed wrongly. If you wanted to match moved files with at least a 90% of similarity, what was really happening is that the files were being matched with at most a 90% of differences, which is the opposite concept. Now it is fixed.

The "Advanced Move Detection" tab on the new Pend…

Windows GUIs (Plastic SCM and Gluon): The "Advanced Move Detection" tab on the new Pending Changes options dialog was removed because we found some issues with the precise tracking using the NTFS journal. We are working on bringing you this feature back as soon as possible.


7.0.16.2445

Public | 2018-08-03

New

We added move detection to the side-by-side diff…

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 :)

We added a new setting, "Use default proxy creden…

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.

Improved the wait time in checkin/undo operations…

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.

implemented a retry mechanism when creating a con…

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.

Onboarding process on an already existing project…

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.

The labels table now includes a new action button…

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

Bug

The server returned 404 Not Found for URL paths t…

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.

the differences inside moved blocks were not pain…

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

When the attributes combobox had upper and lowerc…

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.

Deleting an already deleted branch failed with a…

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.

we protected a corner case that could lead to ser…

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.

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.

UserInfoLoader. We caught a wild "An item with th…

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.


7.0.16.2421

Public | 2018-07-28

New

Improved checkout operation with locks: now it as…

Gluon (Linux, Windows, OS X): Improved checkout operation with locks: now it asks the user if they want to skip the locked files and checkout the rest.

The view filter contents will be saved when navig…

WebUI: The view filter contents will be saved when navigating through the app. It means that setting a custom date filter in the branches view will still be there if you open a branch diff and then you go back to the branches view! This applies to text filters as well.

When the merge operation cannot apply some of the…

When the merge operation cannot apply some of the changes it was returning the error 'Some merge operations cannot be applied.' without any info about which changes cannot be applied. Now, the error message includes which changes cannot be applied and why.

[code]before-editreview[/code] and [code]after-ed…

Triggers: before-editreview and after-editreview:

Two new environment variables are available for the before and after editreview triggers regarding the review comments:

"PLASTIC_REVIEW_COMMENT" and "PLASTIC_REVIEW_COMMENT_ACTION".

The first one contains the comment that fired the trigger, and the second one reflects the action on the comment ("Created", "Edited", or "Deleted").

These variables will be empty if the action that fired the trigger is changing the code review status or the assignee.

This closes the following UserVoice request: Add environment variable for added/changed comment on edit review trigger

New feature to load/unload files using patterns (…

Gluon (Windows, Linux, OS X): New feature to load/unload files using patterns (e.g. *.png).

Now it is possible to load/unload files using patterns (e.g. *.jpg) using the search dialog in the Configuration view!

Just click the "search files" button (or CTRL-F) when your Workspace Explorer is in Configuration Mode. Then type patterns (*.jpg, *.psd, ...) in the search text box and then toggle (load/unload) all the search results.

Pro tip: Use Ctrl+A/Cmd+A to select all the nodes in the tree, and then use the space bar to toggle the load/unload status.

NOTE: we detected on Gluon for Windows that changing the load state of tons of files (more than 5000) severely harms the operation performance. The performance looking for Unity3D .meta files isn't great, either. We'll fix these issues ASAP.

Added a new context menu option ("undo changes")…

Plastic for linux and mac: Added a new context menu option ("undo changes") to undo selected files in the pending changes view.

You now can multi-select a subset of files in the pending changes view, then right click and select "undo changes" for that selection.

Completely redo the pending changes options dialo…

Plastic and Gluon (all platforms): Completely redo the pending changes options dialog. We better classified the options, and each one is now self-explained. We also added new ones:

  • Compare file contents instead timestamp to determine changed files.

  • Move files similarity percentage.

  • Check if fswatcher/inotify is enabled and working and warn if not (only Windows and Linux).

  • Added a property to enable the "precise change tracking" based on the NTFS journal (only Windows).

We added move detection to the side-by-side diff…

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 :)

Bug

When the last line of any of the contributor does…

Mergetool: When the last line of any of the contributor doesn't have an 'end of line' (EOL) and it's involved in a conflict, the result file showed this line plus the next one on a single line. This issue only happened when the EOL is not ignored by the comparison method. Now it's fixed

We fixed a scenario where changesets were created…

We fixed a scenario where changesets were created without data in the repository. This happened when the result of a checkin operation couldn't be saved on the workspace because the workspace metadata files were unavailable (e.g. the antivirus locked the plastic.wktree). It caused the server to keep only changeset information, discarding the content of the files. Now we ensure that when a changeset is created on the server, its data is also there.

We fixed an issue in complex recursive merge scen…

We fixed an issue in complex recursive merge scenarios that could store incorrect item traceability data, potentially causing the checkin operation to fail on some backends.

This issue could be reproduced when a directory path was reused during a recursive merge. This means that a directory is deleted and then another one is added using the same path. The new directory had to have part of the contents of the old directory, and some of the old directory children had to be changed in any of the ancestors. If all these conditions were met, the stored revision ID in the merge traceability for that new directory could be wrong, set to a large negative number: the virtual revision ID used during the merge resolution.

At that point, some backends failed when they stored that virtual revision ID if the merge changes were checked in.

The server returned 404 Not Found for URL paths t…

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.

the differences inside moved blocks were not pain…

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

When the attributes combobox had upper and lowerc…

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.


7.0.16.2392

Public | 2018-07-24

New

WebUI diff: Xlink changes are now supported. Added/changed/deleted xlinks will be properly displayed in the diff view when selected. Also, changed items inside xlinks were fixed.

We added navigation to the side-by-side diff view…

WebUI: We added navigation to the side-by-side diff viewer! A small control will appear above the two editors displaying the currently focused difference, the total number of differences and buttons to navigate through them. Enjoy!

Dynamic views didn't show any progress while runn…

OS X GUI: Dynamic views didn't show any progress while running background operations. Now it's fixed.

We called dynamic views those that are displayed on the right side of the main view: history view, annotate view, browse repository view, shelves view...

Bug

we fixed an issue that caused shelved changes to…

Shelve operation: we fixed an issue that caused shelved changes to be deleted, even if they were applied later on, in some uncommon scenarios. We bumped into this issue when a shelve created from a cherry pick (i.e. cherry-picking a changeset and choosing to undo the changes after shelve) had the source changeset of the cherry-pick deleted. It happened to all files that were modified only on source. The problem was caused by the changeset where the shelve was applied because it reused the data of the deleted one. When the cherry-pick source changeset was deleted the data was no longer available.

Steps to reproduce:

  1. Switch workspace to branch A

  2. Change foo.c and check it in -> this creates changeset X

  3. Switch workspace to branch B

  4. Cherry pick changeset X from branch A to branch B, but don't check it in

  5. Shelve the current workspace changes enabling the option 'Undo these changes in the workspace after shelving them' -> This creates shelve Y

  6. Apply shelve Y to the workspace

  7. Checkin (in branch B) -> This creates changeset Z

  8. Delete changeset X (in branch A)

  9. Show differences of changeset Z. We notice that changes of that foo.c file are missing. An error message 'Cannot download revision {revId} from server...' is displayed.

The server returned the error message "The given…

Jet backend: The server returned the error message "The given key was not present in the dictionary" when the first write operation in a repository was started by a server-side merge that only contained the merge link (no changed items). Now it's fixed.

When the last line of any of the contributor does…

Mergetool: When the last line of any of the contributor doesn't have an 'end of line' (EOL) and it's involved in a conflict, the result file showed this line plus the next one on a single line. This issue only happened when the EOL is not ignored by the comparison method. Now it's fixed


7.0.16.2381

Public | 2018-07-20

New

The app no longer closes when it detects that the…

Gluon for Windows: The app no longer closes when it detects that the configured server requires a higher client version. You'll just be prompted with a warning message but you'll be able to navigate through the GUI when you dismiss it.

improved shared workspaces integrity. Now, the wo…

Windows GUI and CLI tool: improved shared workspaces integrity. Now, the workspaces can be safely shared among several different users (for example, through a network drive), thanks to changes in the way Plastic SCM guarantees the integrity of the files inside the .plastic directory.

The labels view is now unlocked in the WebUI! You…

WebUI: The labels view is now unlocked in the WebUI! You can now check the labels in your repositories from your favorite browser :)

Added copy/cut/paste options to the diff textbox…

Linux GUI: Added copy/cut/paste options to the diff textbox in the pending changes view and the diff view. Note that the cut and paste options are only enabled when the textbox is not read-only.

The file explorer view is now unlocked in the Web…

WebUI: The file explorer view is now unlocked in the WebUI! You can now browse the repository of any branch, label or changeset from your favorite browser :)

Also you can see the content of the files. We will be adding more functionality to this view in the next days, so stay tuned :)

We've improved the diff changeset/branch UI. Now…

WebUI: We've improved the diff changeset/branch UI. Now it has proper syntax highlight and the files are displayed side-by-side in a compact fashion, just like our desktop GUI does. This translates into a smoother navigation because it doesn't insert empty blocks to compensate for added-deleted lines! We're also working in applying this layout to the code review diffs, so stay tuned :)

before-clientcheckin trigger: now, the PLASTIC_PENDING_MERGE_LINKS environment variable includes the information about the merge links affecting the repositories under a xlink, and not just the merge link of the repository where the checkin occurs.

Bear in mind that, as always, the before-clientcheckin trigger will execute once per affected repository under a xlink, and then once again for the repository where the checkin occurs. If you don't want this to happen, you can add a filter. You can learn more about trigger filters here: https://www.plasticscm.com/documentation/triggers/plastic-scm-version-control-triggers-guide.shtml

When the Plastic SCM server is down, the GUI disp…

Windows GUI: When the Plastic SCM server is down, the GUI displays a red notification bar saying that the license information cannot be obtained.

The red bar stays for 1 hour before refreshing, so even if the server is up again (or reachable), the GUI would continue to show the error message.

Now the GUI will try to reconnect every 60 seconds instead. Also, we added a "try again now" action link.

We added a text box to filter the diff list entri…

WebUI: We added a text box to filter the diff list entries. You will find it in the diff view, it's really helpful when there are dozens of changes in the diff list!

We added the ability to grant read access to a su…

Path based security: We added the ability to grant read access to a subtree of a repository easily (without worrying about its parents). This is useful when you want to give access to a user or group to only one subdirectory but not the entire tree.

Remark: this is a server-side feature. You need to update your server to take advantage of it.

Example:

Consider the following structure:

/

/game

/game/code

/game/code/foo.c

/game/art

/game/art/banner.png

/libs

/libs/log.dll

We want James (our external contributor) to download '/game/art', but not the rest of the repo.

To achieve it:

  • Deny James all permissions for path '/'

  • Remove 'Denied' read permission for him, overriding it in path '/game/art'.

After that, James will only see these items:

/

/game

/game/art

/game/art/banner.png

Bug

Merge operations deleted all contents of a direct…

Merge operations deleted all contents of a directory, even private files, when the directory was deleted as a result of the merge. Now, private and changed files inside the deleted directory will be preserved to ensure that no local changes are lost.

The "select merge contributor" in merge view for…

Windows GUI: The "select merge contributor" in merge view for automatic conflicts was enabled, and made no sense. Now it's fixed.


7.0.16.2356

Public | 2018-07-11

New

The app no longer closes when it detects that the…

Gluon for Windows: The app no longer closes when it detects that the configured server requires a higher client version. You'll just be prompted with a warning message but you'll be able to navigate through the GUI when you dismiss it.

fixed an issue in workspaces shared by different…

Windows: fixed an issue in workspaces shared by different developers on a shared computer.

Short explanation: to update files inside .plastic we first wrote them to the user's tmp dir, then moved. It caused ACL issues under certain conditions.

Long story:

John did a checkin in c:\workspaces\gamedemo. Then logged out.

Now Mike tries to update and gets a weird "can't access plastic.wktree" error.

Why? Because the shared path c:\workspaces\gamedemo directory has been configured to have read/write access to the entire "devel"

We changed the way in which we write workspace metadata files inside the .plastic directory.


7.0.16.2346

Public | 2018-07-04

New

Improved the help message that is displayed when…

All platforms: Improved the help message that is displayed when a binary file is selected in the pending changes view. Now it suggest to use the "external diff viewer" (if configured) to see diffs of binary files.

We improved the pending changes/checkin views ref…

Linux/Mac: We improved the pending changes/checkin views refresh behavior to avoid accidental checkins. Until now, these views stole the focus from the comment text area when the refresh operation finished, then setting the checkin button as the focused element! That caused undesired checkins, for instance when a user was typing their next checkin comment with a refresh operation running in the background.

Bug

In some Remote Desktop scenarios, or after playin…

Windows: In some Remote Desktop scenarios, or after playing with the windows screen config, the SyntaxEditor (diff) crashed with a "The specified Visual is not a descendant of this Visual" exception. Now it's fixed.

The details panel (from the 'Explore Workspace' o…

Windows/OSX/Linux Gluon: The details panel (from the 'Explore Workspace' or 'Checkin changes' tab) threw an exception 'You don't have permissions for operation read.' when any revision of the selected file was created in a branch for which the current user doesn't have read permissions. Fixed.


7.0.16.2338

Public | 2018-06-30

New

Added a --view argument to open gluon from the co…

Gluon mac: Added a --view argument to open gluon from the command line showing an specific view. Examples:

gluon --view=CheckinView

gluon --view=ChangesetsView

gluon --view=WorkspaceExplorerView

gluon --view=WorkspaceConfigurationView

Enabled the "Select loaded Assets" button in the…

UnityPlugin (OS X): Enabled the "Select loaded Assets" button in the "Version Control" tab, to allow users to select loaded assets when working in Gluon mode.

Bug

The fast-update operation failed when file system…

The fast-update operation failed when file system permissions of a directory were changed. Now it's fixed.

The merge operation failed with the error '{path}…

The merge operation failed with the error '{path} is not in a workspace' when it had to apply changes under a cloaked directory that was loaded previously on disk at some point (i.e. has out-of-date contents), and those changes are now under a different path.

Plastic got stuck when displaying the form to get…

Windows: Plastic got stuck when displaying the form to get archived revisions on disk. Now it's fixed.

Selected checkboxes seemed disabled due to a grey…

Windows gluon: Selected checkboxes seemed disabled due to a grey color. Use normal color instead.


7.0.16.2319

Public | 2018-06-22

New

The new WebUI preview is available now!

The new WebUI preview is available now!

We have been working on the foundation of a new web interface. Long-term users probably remember (and some even use) the original WebUI. It looks good and works well, but it is known to be hard to deploy.

That's precisely why we created the new version, which is based on the same infrastructure that we used for the WebAdmin; every Plastic SCM server can open the web interface without any further configuration.

The WebUI is currently in preview; it includes only basic functionality focused around code review. You can list branches and changesets and create code reviews for them.

We have created the new interface from scratch, based on modern web tech (JavaScript front-end with VueJS) and our goal is to continue building on top of it.

Stay tuned for new features and remember, we welcome all feedback!

To access the WebUI, just go to http://localhost:7178/webui/repos (or replace 'localhost' with the host name of your Plastic SCM Server instance). Make sure your server.conf file doesn't include a StartWebAdminTool entry set to false!

Note: It only works if your server is configured in LDAP or User Password working modes (it requires a username and password to login).

The expanded directories, selected file, and scro…

Windows GUI: The expanded directories, selected file, and scroll position was not correctly restored when you closed the Workspace Explorer view, and then closed Plastic. Now this configuration is saved to a config file called plastic.uisettings.conf.

Now both applications remember certain UI setting…

Linux GUI and Gluon: Now both applications remember certain UI settings, such as the width, position, sorted column and order for all trees/lists views.

Bug

We found a failing case solving directory conflic…

OS X and Linux GUIs: We found a failing case solving directory conflicts inside level-2 or deeper xlinks (a xlink inside a xlink inside the main repository) when picking the source changes (discarding the delete). Now it's fixed. Example:

  • DST branch:
C /Rich(xlink to Rich rep)
C /Rich/Core(xlink to core rep)
D /Rich/Core/src
  • SRC branch:
C /Rich(xlink to Rich rep)
C /Rich/Core(xlink to core rep)
M /Rich/Core/src -> /Rich/Core/SOURCE
A /Rich/Core/SOURCE/core.txt

After refreshing the items view, the tree was col…

Windows GUI: After refreshing the items view, the tree was collapsed and expanded again, creating a noisy UI experience. Now it's fixed.

We fixed a bug in rule matching, which affected t…

We fixed a bug in rule matching, which affected the ignore, cloaked, hidden changes and readonly/writable rules. To illustrate this with an example, the rule '/game//tests/coverage/**' was incorrectly matching directory '/game//tests/coverage' but it should only ignore its contents. Now it's fixed.

The "undo unchanged" operation didn't handle the…

The "undo unchanged" operation didn't handle the exclusive checkouts correctly. Fixed.

Example:

  • John checks out /branch.png, which is locked as a result (exclusive checkout)

  • Kate locally modifies /branch.png (no checkout)

  • Kate performs the "undo unchanged" operation to /branch.png

  • At this point, the operation left /branch.png as checked out for Kate, which was incorrect

We corrected this behavior so that /branch.png wouldn't be affected by either the "undo unchanged" (because it was changed) or the checkout (it can't be checked out because it's locked by John).


7.0.16.2311

Public | 2018-06-21

New

Improved calculation of moved text. Now it's abou…

Diff performance: Improved calculation of moved text. Now it's about 10 times faster.

Bug

we fixed an ugly and weird crash during checkin.

OS X checkin: we fixed an ugly and weird crash during checkin.

The crash was reported by several OS X users during the last 2 weeks, and we were finally able to fix it.

Users tried to checkin from command line or GUI, and Plastic crashed.

Then the adventure started:

  • First we were unable to reproduce it, although we spent several days on it.

  • Finally, after a couple of online meetings with customers, we found it only seemed to happen with low memory and on a real laptop, not a virtual machine as we were doing.

  • We upgraded Xamarin on our build machine from 4.0.0.216 to 4.4.1.193 because we initially thought the issue was fixed by a newer Mono. During testing we discovered that it failed much less often than before, but it still failed. We released 7.0.16.2306 just to mitigate the problem temporarily.

  • We started thinking it should be a GC issue. So we contacted Microsoft.

  • After some investigation, they told us that the issue seemed to be in the way we invoke zlib to compress files before sending to server.

Finally, and thanks to the detailed report from the Mono developer, we think the issue is gone.

It happened because we invoked zlib.compress2 passing an output buffer as large as the input buffer, then we handled Z_BUF_ERROR in case compression couldn't improve the original fragment size. Well, docu says the output buffer must be at least 1% + 12 bytes bigger than the original. We did that, and now it doesn't crash anymore.

The weird thing is that this code has been there for 10 years. Billions of files have been compressed using this code on Windows, Linux and OS X over the years. At this point we think it might be due to an upgrade from the older zlib 1.2.8 to 1.2.11 on latest OS X.

Special thanks to Vlad Brezae from Microsoft, who debugged Mono and pointed the issue and solution in the zlib client code.

Line numbers on diff viewer were not visible for…

OS X: Line numbers on diff viewer were not visible for moved regions. Now it's fixed.


7.0.16.2306

Public | 2018-06-19

New

now we show the name of the user holding the log…

File locking and LDAP/Active Directory: now we show the name of the user holding the log instead of the SID.

Historically, we displayed the SID, which was not very useful... Yes, shame on us hackers :'(

Now built-in semantic diffs fallback to text if f…

OS X: Now built-in semantic diffs fallback to text if files can't be parsed.

It also displays the error error message so you know what to do.

It happened often when semantic diff tried to parse Java files but the Java VM was not installed.

Bug

'cm crypt' can now handle * chars. Before it was…

'cm crypt' can now handle * chars. Before it was trying to expand wildcards on the arguments, preventing it from correctly encrypting text with '*' symbols. Fixed.

Very weird null fixed in replica when the maximum…

Very weird null fixed in replica when the maximum number of licensed users was exceeded.

It was almost impossible to reproduce but we saw a "null object reference" when trying to replicate a branch and the maximum number of licensed users was exceeded. The null showed up instead of the real license issue. Now it's fixed.

Pending Changes crashed when it was about to show…

OS X GUI: Pending Changes crashed when it was about to show the diffs for a file and the diff was undone (changes undone outside Plastic).

It happened because any unhandled exception makes the OS X UI crash. We reviewed all pending failure points.

Upgraded to newest Xamarin.

OS X: Upgraded to newest Xamarin.

Two customers reported a crash doing a checkin in a laptop running out of memory.

We were finally able to reproduce it and found that a newer Xamarin reduced the chances of crashing.

The problem is not entirely fixed, we are working with Microsoft to solve what seems to be a Mono garbage collector crash.

Fixed a null in checkin related to Xlinks and security.

Here goes the full explanation, which is not trivial:

  • You need a workspace to a repo that has an Xlink.

  • You don't have checkin permission on the Xlinked repo (permission not granted, which doesn't mean it is denied).

  • You merge from a branch with changes on the Xlinked repo (someone else made the changes, since you don't have permission).

  • Now you try to merge and the null happens (object reference not set...)

Now it is fixed.

update forced didn't clean up the dialog correctl…

OS X GUI: update forced didn't clean up the dialog correctly.

  • Plastic shows a dialog if an update finds issues.

  • The dialog shows 2 options: "retry update" and "update forced".

  • If you select all the issues and click "update forced" the "Issues" view wasn't cleaned.

Now it works fine :)


7.0.16.2293

Public | 2018-06-13

New

In the diff viewer, when the text encoding change…

Windows, linux, mac: In the diff viewer, when the text encoding changed between two versions of a file, now we display the old and the new encoding, instead "encoding changed".

Added long path support for both Plastic and Gluo…

Windows Installer: Added long path support for both Plastic and Gluon in Windows 10. Note that you may need to update your computer policy as described here

REMARKS: In case you already customized the plastic.exe.config file, a backup file named plastic.exe.config.installer.backup will be generated in the PlasticSCM "client" install folder.

Do not show the file content for big added/privat…

Windows, linux, mac: Do not show the file content for big added/private files in then pending changes view and the diff viewer.

Big files are considered 2Mb by default. You can change this value adding/editing a property in the mergetool.conf file. For example, if you want a file to be considered as big when it's bigger than 50Mb, you need to specify the following in the mergetool.conf file.

big_file_size=52428800

Now, the "UnityPackageManager" folder is consider…

Unity plugin: Now, the "UnityPackageManager" folder is considered for versioning, as Unity2017.2 requires according to the following info.

The "Packages" folder will also be considered. This means both folders and their contents will appear in the "Pending changes" view of "Version Control" window in Unity when they contain any change.

Now diffs are semantic by default for supported f…

Mac: Now diffs are semantic by default for supported file types (C#, vb.net and Java)

Bug

make the changeset double click consistent. From…

2D version tree: make the changeset double click consistent. From now on, it will always be "Diff Changeset" (default changeset action).

Fixed a null reference exception that seldom appe…

Polarion extension: Fixed a null reference exception that seldom appeared when retrieving the task information of a branch.

There were no error notifications for the user wh…

There were no error notifications for the user when a null reference exception was caught in a thread operation. It was logged but not displayed. Now, it's fixed!

The fix affects to all platforms (Windows, OS X, Linux) and Gluon.

Undoing all changes in the Pending Changes view f…

Undoing all changes in the Pending Changes view failed when a given item was deleted and copied during a merge operation at the same time. The message 'An item with the same key has already been added' appeared in an error dialog. Now it's fixed.

The "cm diff" from the command line in a non-exis…

Linux CLI: The "cm diff" from the command line in a non-existing directory failed with a "path null" error. Now it's fixed.

Syntax highlight was not correctly enabled on the…

Linux, mac: Syntax highlight was not correctly enabled on the pending changes view and the diff view. Now it's fixed.

The "Workspace Explorer" went blank and ugly if y…

Windows: The "Workspace Explorer" went blank and ugly if you clicked on it during update or checkin. Now it's fixed.

The file size in the Workspace Explorer for chang…

Windows: The file size in the Workspace Explorer for changed files was wrong. The value was get from the server revision size. Fixed by reading the disk file size instead.

Browsing the contents of a repository in a given…

Browsing the contents of a repository in a given changeset or branch failed with a null reference exception if the browsed tree contained an Xlink whose repository was unreachable. Fixed.


7.0.16.2277

Public | 2018-06-07

New

Now it is possible to undo changed files in the…

Windows, Linux, and Mac OS: Now it is possible to undo changed files in the 'Items' view (a.k.a. 'Workspace Explorer' view).

Bug

Sometimes, the proxy server configuration was not…

Windows: Sometimes, the proxy server configuration was not displayed in the configuration window altough it was correctly configured it in the client.conf file. Now it's fixed.

On the following scenario, the 'merge' operation…

On the following scenario, the 'merge' operation was wrongly checking out a locally changed file although the exclusive checkout could not be acquired. Now it's fixed and the checkout is not done.

  • The repository is configured to require exclusive checkouts (locks) for .png files

  • User A and user B have their workspaces pointing to the latest changeset of '/main' branch (both are up-to-date)

  • User A modifies & checks-in foo.png file.

  • User B modifies foo.png file (without performing a checkout).

  • User B: the pending changes view shows a notification telling that there are new changes on the server and gets the new changes from the server.

  • The merge from the head changes fails because the merge cannot checkout foo.png to merge its content. But after the error, foo.png file is wrongly checked-out.

The [code]filetypes.conf[/code] file could contai…

Windows: The filetypes.conf file could contain usage comments in spanish language, even if the english language was configured. Now it's fixed.

Diff dialog: Fixed the following scenario:

Windows: Diff dialog: Fixed the following scenario:

  1. Select a changeset from the 'Branch Explorer' view.

  2. Select "Browse repository on this changeset" on the context menu.

  3. Select a file on the items view.

  4. Selected 'Diff' >> 'Diff revisions...' on the context menu. A dialog will appear to diff the selected revision with the workspace revision.

  5. Click ok -> An error appears. The branch name of the target revision was not well formed. Now it's fixed.

Branch Explorer: after a redesign we made a few w…

Windows: Branch Explorer: after a redesign we made a few weeks ago, many users reported that the option tab displayed when restarting Plastic was not the right one.

We also realized the zoom level was not stored correctly.

We fixed both things and refactored the code that stored BrEx visual settings.

When a big added file was selected in the pending…

When a big added file was selected in the pending changes view, the application gets hung for a couple of seconds. Now, it's fixed!

This fix applies to all platforms (Windows, OS X, Linux) and Gluon.


7.0.16.2264

Public | 2018-06-01

New

Now the server-side merge (preview feature) can a…

Now the server-side merge (preview feature) can apply an existing shelve.

Example:

cm merge sh:2 --to=br:/main --merge

If that shelve was created using the server-side merge (so it contains merge traceability info) and it's applied on the same destination than the original merge, the created changeset will include merge traceability from the original merge. What this is mean:

  • Using the server-side merge, we perform a merge from changeset 5 (br:/main/task head) to changeset 10 (br:/main head), leaving the result on the shelve 2.

  • Using the server-side merge, we apply the shelve 2 on the changeset 10, creating the changeset 11.

  • The changeset 11 will include a merge link from changeset 5 and all info about the changes done on that merge. The same merge traceability that if we merge the changeset 5 to the changeset 10 directly without using the intermediate shelve.

Additionally, the merge operation can now ensure that there are no changes on the destination contributor (because the ancestor and the destination contributor are the same) using the option '--no-dst-changes'. This option is particularly useful to ensure that the destination branch head is the same one that was there when the shelve was created. It also ensures that the original merge traceability can be applied.

Example:

cm merge sh:2 --to=br:/main --merge --no-dst-changes

Switching a workspace between gluon and standard…

Gluon UI: Switching a workspace between gluon and standard modes could easily leave an out-of-date directories configuration. Now, the directories configuration is automatically restored by the gluon update when switching from a workspace in standard mode. This way, new files in the repository are automatically downloaded from Gluon again.


7.0.16.2261

Public | 2018-05-31

New

we have made more improvements to the 2D version…

Windows GUI: we have made more improvements to the 2D version tree!

Now when you launch it with no options selected ("version tree" options in Branch Explorer without "filter only parents" or "Display all merges in history", the diagram will be much more compact than it used to be.

It is a simplified graph, much easier to understand :)

In addition to that, there will be no nodes without parent in the graph anymore, so you will be able to navigate through the history from any node.

-)

Fixed a few texts in Gluon merge after editor review :-)

fixed a regression introduced in 7.0.16.2237 rela…

Windows GUI: fixed a regression introduced in 7.0.16.2237 related to modal dialog without parent window.

The fix we made didn't take into account that an intermediate modal dialog could be displayed, and failed when that happened, hanging the GUI.

Scenario:

  • Pepper is working on workspace 1 updated to latest on main.

  • Tony on workspace 2 checkins foo.prefab.

  • Pepper doesn't have last change on foo.prefab.

  • Pepper modifies foo.prefab without checking out (and forgetting to claim the lock).

  • Now Pepper wants to update:

** She has the following setting turned on: "Preferences" panel --> Other options --> Behavior when updating workspace with changed items --> Allow.

** She is asked to merge during update, because of colliding changes.

** Plastic tries to lock foo.prefab, but it can't because it is not in HEAD version, it tries to show an error message, but it fails due to the bug with the modal dialogs shown above.

Fixed.

Bug

GitSync failed with the error 'An item with the s…

GitSync failed with the error 'An item with the same key has already been added' when two different Plastic SCM branches had their names translated to the same git branch name. We have fixed it so the second branch adds a numeric suffix ('${branchName}-0', '${branchName}-1', ...) to the git branch name, which solves the duplicate key issue.

Example:

Both names of Plastic branches '/main/task wksp' and '/main/task-wksp' were translated to the same git branch name: 'master-task-wksp', causing GitSync to fail. After this fix, they will be translated to 'master-task-wksp' and 'master-task-wksp-0'.


7.0.16.2256

Public | 2018-05-28

New

Added "SmartMerge" support out-of-the-box for new…

Configuration to merge Unity files on Windows: Added "SmartMerge" support out-of-the-box for new installations:

  • .prefab and .unity files will use "UnityYAMLMerge.exe" (a.k.a "SmartMerge") to merge both contributor contents on a file during a merge

  • If SmartMerge requires manual conflict resolution, it will fallback to regular PlasticSCM text mergetool.

  • .meta files will use Plastic SCM regular text mergetool too.

REMARKS:

  • The Unity SmartMerge configuration is hard-coded in Plastic SCM configuration. We assume that, if you are managing .prefab and .unity files, you will likely have Unity & SmartMerge installed

  • Attempting to merge a .prefab or .unity file will throw an error if SmartMerge application does not exist in expected install path:

%ProgramFiles%UnityEditordataToolsUnityYAMLMerge.exe
  • If that happens, you will have to manually edit the SmartMerge path in Plastic SCM Merge Tool preferences.

  • More info about Unity Smart Merge can be found here

The branch, label, attribute and repository name…

The branch, label, attribute and repository name cannot longer include the character \r nor the character \n on it.

Now, the 'skip format changes' and 'comparison me…

SemanticSCM: Now, the 'skip format changes' and 'comparison method' options are updated according to the option selected by the user (e.g: if the user checks the 'skip format changes' option, the 'comparison method' is updated with the "Ignore EOL and whitespaces" value and vice versa).

We redesigned the set of actions you're allowed t…

Gluon: We redesigned the set of actions you're allowed to perform during long checkin operations:

  • The items tree will be locked in order to prevent checkboxes from being toggled (windows, linux, mac)

  • The Switch button will remain disabled during the checkin operation (windows, linux, mac)

  • The auto-refresh feature will be disabled while the checkin operation is still running (only windows)

  • We fixed the message displayed when there's an operation running (only windows)

Modified lock strategy during merge.

Modified lock strategy during merge.

Now files that are copied to the workspace during merge but are not in conflict will not be checked out and hence locked.

As a result, merges from the head of the branch can be completed even if one of the files to copy from head is locked by another user.

== Problem ==

This fix is relevant for teams where users do locking and merging no a single branch on the same repo. It won't be a problem if developers use branches or if binaries and code (typically art and code in games) are on separated repos.

== Scenario description ==

  • Jim touches CarBehavior.cs.

  • Meanwhile Tony checked in CarBehavior.cs.

  • Beth checkins Car.prefab and locks it again to continue working.

  • Now Jim wants to checkin CarBehavior.cs but requires a merge because Tony modified it too.

  • The merge requires Car.prefab to be downloaded, and the previous lock strategy tried to lock it. The merge couldn't proceed because the file was already locked.

== When was it modified previously ==

We modified the strategy back in 7.0.16.1857 (Dec 18th 2017) and this has created several issues with locks and merges.

Gluon can now merge files!

Gluon can now merge files!

We just added merge capabilities to Gluon. So, now when files are in conflict during checkin, Gluon will launch the configured merge tool (same tool configured for regular Plastic) and help you solve the conflicts.

It works on the 3 platforms.

Bug

the application crashed when the browse repositor…

Mac OS GUI: the application crashed when the browse repository view was opened and closed several times. Fixed.


7.0.16.2246

Public | 2018-05-24

New

Added a "switch to branch" button (next to the sw…

Gluon for Linux: Added a "switch to branch" button (next to the switch workspace button) that allows to switch the working branch in the current workspace.

The status performance (cm status & pending chang…

The status performance (cm status & pending changes view) was improved to skip looking for non-ignored items under ignored paths when there are no exception rules in the ignored.conf file.

In a workspace with 30k ignored items out of 60k total, the cm status command runs 2 times faster.

when you disable the auto-refresh of Checkin Chan…

Windows Gluon: when you disable the auto-refresh of Checkin Changes, it won't be refreshed when you switch tabs either.

Bug

fixed renames involving only upper-case/lower-cas…

Gluon: fixed renames involving only upper-case/lower-case.

The issue happened with Gluon on case-insensitive filesystems. The checkin of a case-sensitive rename (move Foo.c to foo.c) failed with the error "The item '/Foo.txt' cannot be moved to '/foo.c' because it is already loaded in the destination in the server. Please undo the move operation and update to the latest version".

But now it's fixed :-)

The differences were not calculated according to…

SemanticSCM: The differences were not calculated according to the "skip format changes" option in the diff viewer. Fixed.

The cm update --cloaked was not working. The --cl…

The cm update --cloaked was not working. The --cloaked option was ignored. Fixed.

The server-side merge (in-preview) wasn't properl…

The server-side merge (in-preview) wasn't properly tracking changes on file system (FS) permissions when those were the only changes applied to an item (i.e. no content changes). This issues didn't make the server-side merge fail, but the differences of the resulting changeset didn't properly group the merge changes related to those FS permissions changes.


7.0.16.2237

Public | 2018-05-22

New

there were cases where a modal dialog was display…

Windows GUI: there were cases where a modal dialog was displayed but it was not set as parent of the main window, so you could go outside plastic, return, and be unable to click on any action thinking it was frozen. It was fixed long ago but now we removed a few more corner cases.

Gluon auto-refresh pending changes is now configu…

Gluon auto-refresh pending changes is now configurable.

New option added to Pending Changes option, so that you can now configure whether you want to auto-refresh or not.

Bug

We fixed some server-side merge (in-preview) issu…

We fixed some server-side merge (in-preview) issues, detected in complex merge scenarios with moved items dependencies (related to cycle move conflict).

Disabled the auto case corrector language feature…

Diff/Mergetool: Disabled the auto case corrector language feature of the textbox -developed by ActiPro- in order to avoid unexpected behaviors when the editing occurs (e.g: restore difference using the action bar).

The warning message shown by the switch operation…

Windows GUI: The warning message shown by the switch operation with pending changes was not modal. Fixed.

The error message when trying to update with checkouts in a Gluon workspace was improved: "Cannot switch from a Gluon workspace to a standard one with checkouts. You can checkin from Gluon (or undo) and retry the update."


7.0.16.2228

Public | 2018-05-19

New

We changed the Pending Changes "options button" b…

OS X and Linux GUI: We changed the Pending Changes "options button" behavior, so that it can always be clicked.

This means you can change the options while the pending changes is being refreshed.

This is useful if, for some reason, the Pending Changes takes forever, due to move detection, most likely. You can disable move detection before waiting for the search to finish.

Windows GUI: Some users reported that merge link colors in the Branch Explorer don't have enough contrast and they are not visible enough. Changed to use a stronger green.

Bug

The GUI didn't show any error message when the up…

Windows GUI: The GUI didn't show any error message when the update/switch operation failed. Fixed.

The error message when using the 'fast update' operation in a Gluon workspace was improved: "The 'fast update' option is not allowed in Gluon workspaces. Please disable the option and retry the operation again."


7.0.16.2220

Public | 2018-05-17

New

2'). The workspace will load the shelve content i…

Now Plastic can switch a workspace to a shelve using the cm switch command (e.g. 'cm switch sh:2'). The workspace will load the shelve content in read-only mode, the same way a 'switch to label' does. This feature allows you to test and build temporary changes before committing, and it is essential for the devops initiative.

Taking advantage of the new External SCM Integrat…

CodeBeamer issue tracker extension: Taking advantage of the new External SCM Integration capabilities of CodeBeamer, we added an option to log every checkin using that feature instead of just adding a comment to the affected issues. This increases traceability and provides a tighter integration with your issue tracker. Please make sure you're using a compatible CodeBeamer version before you enable it!

From now on, we will automatically search for cod…

Windows GUI: From now on, we will automatically search for code moved between files in the diff window. If there are matches, you'll be notified.

We will only find refactors automatically if there are less than 50 files. Up to that, a button will appear to launch it, just as it did before. Please have in mind that analyzing refactors can be a time/resource consuming operation.

We implemented a context menu for annotate/blame…

Linux GUI: We implemented a context menu for annotate/blame with the following actions:

  • Diff branch: Diffs the branch where the selected line was changed.

  • Diff changeset: Diffs the changeset where the selected line was last changed.

  • Annotate parent revision: Annotates the parent of the current revision.

  • Annotate before this changes: Annotates the changeset parent of the one where the selected line was changed. This is good to navigate back changes.

  • Add diff selection: Copies a text to the clipboard. Use diff with previous selection to diff with selected text.

  • Diff with previous selection: Diffs the previously selected text vs the current selection.

  • Annotate options: To configure the fields to show in the left pane (date, author, changeset, branch, etc ...)

Also you can use back and forward buttons to navigate between annotated versions.

Basically we applied to Linux the same changes we released for Mac a few versions ago.

The error messages when trying to configure an it…

Gluon: The error messages when trying to configure an item that is changed in the workspace were improved to give better information to the user.

Examples:

  • The file 'voice/player.wav' cannot be loaded/unloaded because it is already changed at 'voice/player.wav'. Please undo the change and retry the operation.

  • The directory 'voice' cannot be loaded/unloaded because it contains changes inside 'voice'. Please undo all the changes inside the directory and retry the operation.

  • The root item cannot be loaded/unloaded because there are pending changes in the workspace. Please undo all the workspace changes and retry the operation.

The client update triggers (before & after) were…

The client update triggers (before & after) were only executed by the standard update operation. Now, they are also triggered by the 'fast-update' operation and the Gluon update.

We enhanced the server-side merge (preview featur…

We enhanced the server-side merge (preview feature) so it can create a shelve with the merge result instead of checking it in. This allows users to review the merge result before it's confirmed. To take advantage of this staged merge you just need to include the '--shelve' argument in the merge command.

Example:

cm merge br:/main/task --to=br:/main --merge --shelve

cm diff sh:2

Now the shelve content can be checked using the diff command. Example: cm diff sh:2

Improved the format used by the branch filtering…

TeamCity CI Plugin: Improved the format used by the branch filtering based on an external program.

The external program receives a JSON list of branches to filter from the stdin and returns a list with the actual branches that you want TeamCity to process in the stdout, also in JSON format.

The following is an example of a possible input and output if the external program just wants TeamCity to process DTC-14:

[
   {
      "BranchName":"/main/DTC-15",
      "BranchHeadChangeset":"21651",
      "BranchComments":"Change comment size",
      "BranchCreationDate":"2018-03-19 17:30:00",
      "BranchOwner":"John",
      "Repository":"devops_tc2",
      "Server":"blackmore:7070",
   }


   {
      "BranchName":"/main/DTC-14",
      "BranchHeadChangeset":"29726",
      "BranchComments":"Fix Jira 14 - null in head",
      "BranchCreationDate":"2018-03-20 18:27:28",
      "BranchOwner":"Tom",
      "Repository":"devops_tc2",
      "Server":"blackmore:7070",
   }


   {
      "BranchName":"/main/DTC-16",
      "BranchHeadChangeset":"29999",
      "BranchComments":"Fix broken unit test boo",
      "BranchCreationDate":"2018-03-21 8:19:18",
      "BranchOwner":"Bill",
      "Repository":"devops_tc2",
      "Server":"blackmore:7070",
   }

]

And the output:

[
   {
      "BranchName":"/main/DTC-14",
      "BranchHeadChangeset":"29726",
      "BranchComments":"Fix Jira 14 - null in head",
      "BranchCreationDate":"2018-03-20 18:27:28",
      "BranchOwner":"Tom",
      "Repository":"devops_tc2",
      "Server":"blackmore:7070",
   }
]

This way we basically enable users to create the custom filters they need, connect to their issue trackers, project management tools and the like.

We have published Java code implementing a custom filter here.

Added a "switch to branch" button (next to the sw…

Gluon Mac: Added a "switch to branch" button (next to the switch workspace button) that allows switching the working branch in the current workspace.

Bug

We fixed some item merge-tracking issues in the s…

We fixed some item merge-tracking issues in the server-side merge (in-preview), detected in complex merge scenarios. These issues didn't make the server-side merge fail, but the differences of the resulting changeset didn't properly group the merge changes.

We fixed a corner case merging an edited Xlink that threw a 'merge needed' message incorrectly.

The case happened if you had a common repository, let's say 'engine', xlinked by two repositories, GameA and GameB.

Each repository uses a custom main branch, /main/GameA and /main/GameB.

Then:

  • If the "engine" Xlink is edited manually in GameA to include engine changes that were performed in GameB (main/GameB@GameB)

  • And then the change is merged to main/GameA@GameA,

  • The checkin operation could throw a 'Merge needed' when no merge was needed.

The parameters of the plastic workspace name were…

Jenkins plugin: The parameters of the plastic workspace name were not correctly resolved. It means, it used the exact workspace name string (e.g. 'Jenkins-${JOB_NAME}-${NODE_NAME}') without resolving the parameters JOB_NAME and NODE_NAME (e.g. 'Jenkins-project-MASTER').

The 'cm revert' command of an xlinked item can be…

CLI: The 'cm revert' command of an xlinked item can be executed in any path. Before, it failed if executed outside the xlink path with the following error: "Object reference not set to an instance of an object."


7.0.16.2192

Public | 2018-05-08

New

Implemented a context menu for annotate with the…

OS X GUI: Implemented a context menu for annotate with the following actions:

  • Diff branch: diffs the branch where the selected line was changes.

  • Diff changeset: diffs the changeset where the selected line was changes.

  • Annotate parent revision: annotates the parent of the current annotated revision.

  • Annotate before these changes: annotates the changeset parent of the one where the selected line was changed. This is good to navigate back changes.

  • Add diff selection: copies a text to the clipboard. Use diff with previous selection to diff with selected text.

  • Diff with previous selection: diffs the previously selected text vs the current selection.

  • Annotate options: to configure the fields to show in the left pane (date, author, changeset, branch, etc ...)

Also you can use back and forward buttons to navigate between annotated versions.

The Plastic SCM plugin can work with multiple pla…

Jenkins plugin: The Plastic SCM plugin can work with multiple plastic workspaces or just a single plastic workspace. Now, the jenkins workspace and the plastic workspace paths will match in the single workspace mode. Therefore, some jenkins features (such as pipeline shared libraries) that need both paths to match will correctly work.

We changed the pending changes options behavior,…

Windows GUI: We changed the pending changes options behavior, so that it can always be invoked. This means you can change the options while the pending changes is being refreshed.

Bug

The merge-to command was not working outside a wo…

Command line: The merge-to command was not working outside a workspace. Fixed.


7.0.16.2183

Public | 2018-04-30

New

2D version tree is now able to filter only parent…

Windows GUI: 2D version tree is now able to filter only parents.

It means that you will only see changes that are related to the version you are loading.

You will find the new filtering option in the 'Version tree' options tab. By default, it's set to true.

This is the only option that depends on the working changeset. You will get different results depending on the changeset you are loading.

Overall performance of user and group reloads has…

Overall performance of user and group reloads has been greatly improved since the reload is now a background operation, so users won't be affected by slow LDAPs or Active Directories during regular operation.

Bug

We fixed some server-side merge (in-preview) issu…

We fixed some server-side merge (in-preview) issues, detected in complex merge scenarios with reused paths.

Detected a performance downgrade in the pending c…

Windows GUI and Gluon for Windows: Detected a performance downgrade in the pending changes view due to an interference of Windows Defender antivirus with the log files that Plastic GUI applications write.

This problem happens since release 7.0.16.2068. Now we have fixed the issue by updating the log configuration files for Plastic GUI, Gluon and Mergetool applications, removing the "MinimalLock" locking model. This way, Windows Defender antivirus won't be exhaustively analyzing the Plastic log files.

REMARKS: In case you already customized the plastic.log.conf, gluon.log.conf or mergetool.log.conf, a backup file will be generated with the ".installer.backup" suffix in the same folder.

Using a Unity project, having checked out multipl…

Gluon for Windows: Using a Unity project, having checked out multiple regular file/meta file pairs, if you select/deselect a file, its meta file pair is updated accordingly. But, if the commit view was refreshed, the pair state was lost. So, the user saw the checkboxes state change automatically, without any user interaction. Now, it's fixed.


7.0.16.2175

Public | 2018-04-26

New

Improved annotate view:

Windows GUI: Improved annotate view:

  • Redo the textbox context menus: Now use the same context menu for both annotated lines area and the file content area.

  • Reorganize information: We reorganized the information in the panel that shows the information (owner, changeset, branch, date and comments) of the selected line.

Implemented a way to navigate annotates.

Windows GUI: Implemented a way to navigate annotates.

  • Added a new option in annotate context menu, "Annotate previous changes (parent of cs:xxx)". This options shows the annotated file of the parent changeset of selected line. This way you can go back in versions of a file to track a change.

  • We also added two buttons to navigate back/forward in the annotate history.

The goal of this task is to help finding where a given change was made.

Enable filtering active branches based on Plastic…

TeamCity CI Plugin: Enable filtering active branches based on Plastic SCM attributes.

The goal is to test and merge task branches to main only when a given attribute is set. This way trunk-based development and DevOps can be easily implemented.

The recommended configuration for TeamCity build configuration is as follows:

  • Default branch to track in the VCS root is "/main".

  • Branch specification for branches to monitor besides the default one in the VCS root is "+:(/main/*)" (The parenthesis are very important, as they define the logical TeamCity branch name, and has to match with plastic full branch name!).

  • Enable the "Automatic merge" feature under the "Build features" section of the build configuration. Set the "Branch filter" to "+:*" so that TeamCity merges all that match the filter. Leave the other fields with the default values (the branches will be merged + checked-in to the default tracked branch "/main").

  • Add "VCS Trigger" in "Trigger" section of the build configuration. Set the "Branch filter" to "+:*" too.

When configuring the VCS root for a build configuration, a new section named "Plastic SCM advanced branch filtering" will show up.

Once it is enabled, a textbox allows filtering the candidate branches to be visible by TeamCity in two ways:

  • Specifying an attribute name and value pair as follows: attribute_name=attribute_value.

Example: status=resolved which means that only the branches with an attribute named "status" with the value "resolved" will be visible to TeamCity to queue & build them.

  • Specifying a complex query valid for "cm find branch" command (which is the underlying Plastic command executed to retrieve the candidate branches). It is not mandatory to specify a plastic attribute in this mode. Two examples below:
where owner!='john_snow' and date > '3/2/2018'
where attribute='stage' and attrvalue='done' and name like 'JIRA-%'

Enable branch filtering based on an external prog…

TeamCity CI Plugin: Enable branch filtering based on an external program.

When configuring the Plastic repository for TeamCity, a new checkbox named "Enable custom brach filtering" will appear.

Once it is enabled, a textbox allows specifying the command to run the branch filter and other textbox allows defining the environment variables to be passed to the filter (the format is key=value pair per line).

The external program will receive from TeamCity plugin a list of plastic branches serialized in JSON, and it is expected to return a filtered list serialized in JSON too.

An example of a list of just one plastic branch in JSON format is shown below:

[
   {
      "mParent":"/main",
      "mType":"T",
      "mChangeset":"29726",
      "mId":"70",
      "mName":"/main/TLK-10972",
      "mDate":"2018-03-20T18:27:28",
      "mOwner":"eric",
      "mRepository":"toolkit",
      "mRepServer":"blackmore:8087",
      "mComments":"Fix Jira 10972 - API to get user email",
      "mDateObject":"Mar 20, 2018 6:27:28 PM"
   }
]

This communication format has been modified in release 7.0.16.2220

This way we basically enable users to create the custom filters they need, connect to their issue trackers, project management tools and the like.

We have published Java code implementing a custom filter here.

Bug

We use tmp files when displaying diffs, in both d…

Windows GUI: We use tmp files when displaying diffs, in both diff windows and pending changes view. We download the revision contents to a tmp files, so we can reuse them later. Sometimes a "Could not find file ''" error was displayed. Now it's fixed.

When clicking on individual changesets in the bra…

When clicking on individual changesets in the branch explorer, the info in the "Properties" panel updated instantaneously. However, it slowed down from version 7.0.16.1944, making the user to wait 0.5-1 seconds after each click for that information to update. Fixed.

The plugin was unable to diff changed files when…

TeamCity CI Plugin: The plugin was unable to diff changed files when browsing changed files in TeamCity dashboard. Fixed.

REMARKS:

  • TeamCity does not handle moved status (but added/removed)

  • If a file was moved and changed in the same changeset, the teamcity plugin will show an error, as the queried path does not match with the new destination path. Will be fixed soon.


7.0.16.2157

Public | 2018-04-25

Bug

we protected a strange case where certain huge Br…

SQL Server and Branch Explorer: we protected a strange case where certain huge Branch Explorers (years of graphic) caused the data storage to throw the following exception:

'Cannot access destination table '#tmpe17c62c0fc2f46d2b1bbc2d1649e6fe0'

It seems it only happens when several branches are visible but their parent branches are not.

It is related to a Bulk Copy we use to speed up lookups under certain circumstances (most likely not being enabled in most cases).

We hope to make the life of one of our customers better with this fix :-)


7.0.16.2153

Public | 2018-04-24

Bug

Fixed the preview generation for PDF files (and o…

Gluon for OS X: Fixed the preview generation for PDF files (and other non-image file types).

When using plastic in spanish localization, the o…

Windows GUI: When using plastic in spanish localization, the ok/cancel buttons were not visible in the "enter comment" dialog, when executing a "merge to" operation. Now it's fixed.


7.0.16.2143

Public | 2018-04-19

New

If all the specified paths in the 'cm partial upd…

Gluon: If all the specified paths in the 'cm partial update' command are files inside the same xlink and the --changeset option is used, then the versions to download are searched in the specified changeset of the xlinked repository instead of using the top-level repository.

Bug

Some server-side-merge (in-preview) issues detect…

Some server-side-merge (in-preview) issues detected on complex merge scenarios have been fixed.

The fixed merge scenarios are related to:

  • An item that is moved on one contributor and deleted on the other plus other conflicts.

  • A deleted item in conflict plus an added item on the same path.

  • A deleted directory involved in multiple conflicts.


7.0.16.2137

Public | 2018-04-17

New

Now, you can create new attributes directly from…

macOS GUI: Now, you can create new attributes directly from the GUI. To do so, click on the "Apply attributes" button on the right of the Branch Explorer, and click on the "Create" button next to the attribute list.

we cleaned up the Branch Explorer view button lay…

Windows GUI: we cleaned up the Branch Explorer view button layout.

We made a number of changes to try to make the Branch Explorer view cleaner.

  • Added a date picker for quick filter by date from the toolbar.

  • Added a push button to quick show/hide relevant changests from the toolbar.

  • Zoom and home buttons moved to the diagram's right-bottom corner.

  • Legend and keyboard shortcuts buttons moved to the help panel.

  • Navigator and statistics buttons moved to the "Display options" panel.

  • Bookmarks buttons aligned to right.

  • Right-align the options (details) button.

This should reduce cluttering and make it more usable :-)

Gluon for Windows now can switch branches.

Gluon for Windows now can switch branches.

It is very easy to use: just click the "Switch" in the bottom panel and choose the branch you want to switch to.

Of course, remember that locks don't blend well with branches (yet, we are working on it).

While the initial design of Gluon was "as an artist I don't want to see branches", world evolved since, and teams did too. The same team that asked us to develop Gluon originally (Telltale) now needs to switch branches easily. More to come in this area.

The option '--restorefulldirs' was added to the '…

Gluon UI: The option '--restorefulldirs' was added to the 'partial configure' command. This option allows to reset the directory configuration in partial workspaces.

Check 'cm partial configure --help' for more info.


7.0.16.2123

Public | 2018-04-13

New

New [code]cm partial switch[/code] command allows…

Gluon: New cm partial switch command allows to change the working branch of the workspace as long as there aren't local changes.

Check cm partial switch --help for more info.

improved the checkout warning including a summary…

Unity plugin: improved the checkout warning including a summary message to show the info related to the locked items. Now, the warning message can be easily read in the bottom bar.

(e.g: "PlasticSCM: Checkout: Unable to checkout Scene1.unity (locked by tester), BehaviourScript.cs (locked by validator)")

Bug

8087 instead of --repository=repo@server:8087).

The cm mkwk command shows the usage and does nothing if it is not correctly invoked (for example, if we specify repo@server:8087 instead of --repository=repo@server:8087).

The server-side merge operation failed if the sou…

The server-side merge operation failed if the source contributor had deleted an item and a Xlink was added in the same path. Now it's fixed.


7.0.16.2113

Public | 2018-04-10

New

the 'Gluon mode' setting is now automatically det…

Unity plugin: the 'Gluon mode' setting is now automatically detected from the workspace on already existent projects.

(On new projects, if the 'Gluon mode' value is not set, the plugin will assume the workspace that has to be created is a non-gluon mode workspace).


7.0.16.2105

Public | 2018-04-06

New

we made some changes in the tabs of the main wind…

Windows GUI: we made some changes in the tabs of the main window, including resizing and rewording.

We made the tabs adjust better to the title, so more text is readable now.

We also made a big change: "Items view" is gone and now we call it "Workspace Explorer". Hope this won't annoy old users, but we think "items view" is too abstract for many newcomers.

This will solve this User Voice Reduce tab text to fit within tab shapes

Now, a story about "items view": back in 2005 we named versioned files and directories "items". In fact, each version of a file or directory was called "revision" but in order to refer to the abstract object itself we called it "item". See what I mean? An item can have many revisions, each of them containing data (contents of a given file or the directory entries if the item is a directory). Item/revision is like class/object. We had this "item" concept so deep in our minds, that we kept the "design name" in the GUI. And it survived 13 years :-) Now it almost sounds ridiculous to us, but for a long time we didn't almost pronounce file&directory but "item". Fortunately, now we simply try to make things simpler for users :-)

Bug

When you try to cancel a replication operation th…

When you try to cancel a replication operation that failed just while it was starting, the cancel failed with the error 'AssertFalse has found a positive condition'. Now it's fixed.

In Blue Ocean, if a build included multiple chang…

Jenkins plugin: In Blue Ocean, if a build included multiple changesets, only the first one was rendered in the details. Also, the info for the commit and timestamp columns were not filled. Fixed.

The merge-to operation failed under some circumst…

The merge-to operation failed under some circumstances when the merge included at least a deleted directory and a moved directory. This could happen only when the moved directory contained one item involved on the merge. Now it's fixed.

A null value message was shown, in rare circumsta…

OS X GUI: A null value message was shown, in rare circumstances, during the merge. It didn't have any effect on the operation. It was only an issue in the progress notification. Now, it's fixed.


7.0.16.2095

Public | 2018-04-04

New

we have done some improvements in the merge windo…

Windows GUI: we have done some improvements in the merge window after the new "merge-to" feature was implemented:

  • New title for "merge-to" with conflict resolution.

  • Handle the error when the server doesn't support thew new merge-to.

Bug

The semantic differences reported a parsing probl…

SemanticSCM: The semantic differences reported a parsing problem on launch when the source code parser was terminated. Fixed


7.0.16.2082

Public | 2018-03-27

Bug

Fixed an index out of bounds exception when click…

Linux GUI: Fixed an index out of bounds exception when clicking the last line of an annotated file.


7.0.16.2077

Public | 2018-03-26

New

server-side merge (or "merge-to" with conflict re…

New feature in preview: server-side merge (or "merge-to" with conflict resolution, if you prefer).

To enable it: add this in your client.conf:

<ServerSideMergeEnabled>yes</ServerSideMergeEnabled>

If you have been using Plastic for a while, chances are you are familiar with the "merge-to" feature. It lets you do "workspace less" merges. Like, you don't even have a workspace, but you can merge "main/task127" into "main".

But, merge-to had a big restriction: it only worked if there were no manual conflicts. As soon as a file had a conflict (even a simple one that could be fully automated), or a directory was in conflict, merge-to stopped.

Now this changed, and all type of conflicts, including file merges, can be resolved in merge-to.

The motivation behind the change? We are all moving towards more automated workflows where every single branch is tested before being merged. So, under that way of thinking, testing in your workspace first is not always necessary. We changed our minds here because, for years, we thought it was good to build and test your code locally prior to checkin the result of the merge, but DevOps and automation are changing all that, so now we feel confident of this merge-to with conflict resolution approach.

The feature is in preview at this point because is just out from the oven, but it will be enabled by default soon.

Now, you can create new attributes directly from…

Linux GUI (Gtk): Now, you can create new attributes directly from the GUI. To do so, click on the "Apply attributes" button on the right of the Branch Explorer, and click on the "Create" button next to the attribute list.


7.0.16.2074

Public | 2018-03-23

New

annotate is now ready (blame). Just right click a…

Linux GUI: annotate is now ready (blame). Just right click a controlled item in the workspace explorer view, and select the "annotate" menu item.

Load only the last 500 values of an attribute due…

Linux GUI: Load only the last 500 values of an attribute due to a performance issue with the dropdown control. Otherwise it takes forever to load. We tested with 30k values (reported by a customer) and it freezed for more than 30 secs.

GUI client apps (Plastic, Gluon and Mergetool) wi…

GUI client apps (Plastic, Gluon and Mergetool) will now leave rolling log files in $HOME\.plastic4\logs folder. In case of windows, the folder path is %LOCALAPPDATA%\plastic4\logs\.

Those apps will generate an info log file with relevant telemetry and another log file with more details and debug info.

Add support for OpenLDAP with the anonymous acces…

Server: Add support for OpenLDAP with the anonymous access disabled.

Remember the workspace base path between sessions…

Windows GUI, Gluon, Linux and OS X: Remember the workspace base path between sessions. By default, PlasticSCM proposes the $HOME/wkspaces directory to create new workspaces. Now, if the user changes this directory, Plastic will remember the base path and will propose it for the next time.

The auto-merge capability is now able to merge br…

TeamCity plugin: The auto-merge capability is now able to merge branches when the file conflicts are automatic. Before the fix, any file conflict (automatic or not) rejected the merge.

Bug

Changesets can't be deleted when there are shelve…

Changesets can't be deleted when there are shelves depending on them. However, the Jet backend incorrectly allowed this to happen. As a result, the dangling shelves became unusable (they couldn't be applied nor viewed). We've fixed this so this scenario of the 'delete changeset' operation won't happen anymore under Jet.

Reduced the number of duplicated builds that can…

Jenkins plugin: Reduced the number of duplicated builds that can happen using the Plastic SCM plugin. Now, the scm polling takes into account the current build avoiding to start a new build for the same changeset.

Fixed a "collection modified" exception when clos…

Linux GUI: Fixed a "collection modified" exception when closing the annotate view.


7.0.16.2063

Public | 2018-03-21

New

The Bamboo plugin can now update Jira status base…

The Bamboo plugin can now update Jira status based on the build & merge progress. The Jira task directly related to the branch being tested will be updated to reflect the actual status.

Example: when a build starts, the Jira 'status' workflow attribute can be set to 'Testing', then updated to 'Reopened', 'Closed' or even 'Merged' depending on the final result.

For further info about DevOps, trunk based development and task-per-branch check:

To configure this new feature, enable Monitor Jira to filter branches configuration field in Bamboo's Repository configuration. New textbox fields will appear to set the status of the Jira issue with a desired value when Bamboo triggers the following events:

  • A plan branch starts its build plan

  • A plan branch build fails

  • A plan branch build succeeds

  • A plan branch is automatically merged (only if gatekeeper automatic merge feature is enabled).

The allowed values for these fields are <issue_status>

Examples:

Testing
Open
Tested
Merged

REMARK: remember the <issue_status> has to be previously created in Jira Workflow!

Bug

Several fixes have been done in the 2D version tr…

Windows GUI: Several fixes have been done in the 2D version tree:

  • Set correct initial date in the branch explorer calculated taking into account the history revisions date.

  • Fix view options: version tree vs complete Branch Explorer. They were not doing anything at all. By default, the version tree is set. So, only relevant changesets are displayed.

Fixed an error deleting repositories using the "D…

Windows GUI: Fixed an error deleting repositories using the "Del" key when the selection was empty.


7.0.16.2057

Public | 2018-03-20

New

The "repositories" view will now remember the las…

Windows, Linux and OS X GUI apps: The "repositories" view will now remember the last typed server between application restarts if user modifies the default value.

Remark: It only works for the regular "repositories view" and not in the "cloud repositories" view.

The plugin do not request anymore all the reposit…

TeamCity plugin: The plugin do not request anymore all the repository branches when there is no branch specification filter defined. In that case, it only requests the default branch to watch.

improved the "Checkin conflicts" dialog. Now, the…

Gluon: improved the "Checkin conflicts" dialog. Now, the conflicts list is just plain text, so all the messages can be easily read and copied.

New annotate (blame) is here. Just right click a…

Mac GUI: New annotate (blame) is here. Just right click a controlled item in the workspace explorer view, and select the "annotate option".

Bug

"You are working with out-of-date objects. Maybe…

The 'code reviews view' failed with the following error: "You are working with out-of-date objects. Maybe your client or workspace is out of date, please update it." when there was any review of a branch that had been previously deleted.

The plugin was unable to list repositories from c…

Crucible plugin: The plugin was unable to list repositories from cloud server. Fixed: just enter the server name in the format "<your_organization>@cloud" and leave the port field empty when adding a new repository.


7.0.16.2047

Public | 2018-03-16

New

Plastic SCM 7.0 is officially out!

Plastic SCM 7.0 is officially out!

7.0 was first introduced back in December 18th 2017 (release 7.0.16.1857) as a preview and was finally moved as official with BL2047.

COMPATIBILITY

7.0 is backwards compatible with 6.0 and 5.4.

  • Compatibility is marked by the middle number 16 in the full version number, and it didn't change since 5.4.

  • We strongly recommend to update all clients and servers, but progressive roll outs of the new versions are totally possible, which is especially helpful in big deployments.

WHAT IS NEW:

These are some of new features in 7.0:

  • New Branch Explorer design (applies to all platforms).

  • New web-based server admin tool: it was previewed as a late 6.0, but it is now officially supported in 7.0. http://blog.plasticscm.com/2017/10/webadmin-introducing-new-server-admin.html

  • Gluon for Linux and Mac: the tool and workflow for non-coders is now available in all platforms.

  • Attributes support for Linux and OS X GUIs.

  • Greatly improved Bamboo DevOps support: http://blog.plasticscm.com/2018/03/devops-atlassian-bamboo-plasticscm.html

  • Greatly reviewed command line help and usage.

  • OS X usability improvements and restyling.

  • Added support for Polarion 3.17.1+

  • Windows GUI: much better responsiveness since lots of calls made in the main thread were removed. Clearly noticeable with distant servers (like Cloud).

WHAT IS COMING:

7.0 past pace evolution continues with new weekly releases. Here are some of the great features in the backlog:

  • Merge-to with full conflict resolution: ability to do workspace-less merges with conflict resolution. Great for teams with full test automation.

  • Enhanced DevOps: we are working on improving the integrations with TeamCity and Jenkins as we recently did for Bamboo. DevOps is a core priority for us.

  • MergeBot as DevOps core: Plastic server will be able to run merges when branches are ready and trigger builds in CI systems.

  • New WebUI: we are working on a full redesign of the web interface to browse repositories, perform code reviews, run diffs. It will be auto-deployed with the regular server as the WebAdmin does.

  • More flexible workspaces: regular Plastic (developer mode) will be able to work in "partial mode" (Gluon mode) to enable more flexibility. We are also considering the option to mix working in full and partial mode together, for teams who require more flexibility.

  • Improved code review: one of the big requests from customers. We will be finally working on updating the core feature and pushing it to the next level.

Bamboo CI Plugin can now update branch attributes…

Bamboo CI Plugin can now update branch attributes based on the branch status.

Example: when a build starts, a 'status' attribute on the branch can be set to 'testing', then updated to 'failed', 'passed' or even 'integrated' depending on the final result.

This feature is key to implement a DevOps pipeline using Bamboo and Plastic SCM.

For further info about DevOps, trunk based development and task-per-branch check:

To configure a Plastic repository in Bamboo and enable this new options:

  1. Enable Enabled plan branch filtering (feature recently launched and explained in the 7.0.16.1995 release notes),

  2. New fields will appear to set a given attribute name with a desired value when Bamboo triggers one the following events:

  • A plan branch starts its build plan

  • A plan branch build fails

  • A plan branch build succeeds

  • A plan branch is automatically merged (only if gatekeeper automatic merge feature is enabled).

The allowed values for these fields are <attribute_name>=<attribute_value>

Examples:

status=testing
status=failed
status=passed
status=integrated

REMARK: remember the <attribute_name> has to be previously created in plastic repository! Example:

cm mkatt status

(The attribute can be also created through Windows GUI too)

The 'items' preview now supports IrfanView as an…

Windows GUI: The 'items' preview now supports IrfanView as an external viewer. IrfanView is a famous image viewer sofware that supports several image types. Now you can generate item previews of some image files using IrfanView as an external preview provider. To configure it just go to Preferences -> Preview tools -> Add, select it from the combo, and adjust the settings.

Bug

7.0 Known Issues:

  • Mac OS X Server: An issue related to self-signed certificates with bundled Mono Framework prevents Mac Server to pull data from another server through SSL.

  • Linux and Mac apps: Sync with Git feature don't support the TLSv1.2 cryptographic algorithm for HTTPS, so synchronizing against some providers (e.g. GitHub) fails.

The item preview locked the images when reading,…

The item preview locked the images when reading, so when you opened the preview of the same revision in both items and history view, an error occurred. Now it's fixed.

If you were using spanish localization for merget…

If you were using spanish localization for mergetool and difftool, lot of texts were missing. Now, it's fixed.

Fixed a "index out of bounds" exception when rest…

Windows GUI: Fixed a "index out of bounds" exception when restoring a difference in the pending changes view, when the source file has a encoding mark (BOM).

both the "Checkout" and the "Open" menu items of…

Gluon and Plastic for Linux: both the "Checkout" and the "Open" menu items of the workspace explorer had the same accelerator keys. Fixed. Now, the accelerator for "Checkout" is "Ctrl + Shift + O", while for "Open" is still "Ctrl + O".


7.0.16.2031

Public | 2018-03-09

New

Improve the analyze differences feature so, if it…

Improve the analyze differences feature so, if it fails when analyzing the differences for a revision, show the information for the rest of the revisions (not like now that it showed nothing). In case of any error, an error message will appear in the diff view notifying the user.

Disabled the C# language error highlighting featu…

Mergetool: Disabled the C# language error highlighting feature of the textbox -developed by ActiPro- until it supports C#6/7. This will help avoid the confusions reported by users. We're in contact with the ActiPro guys to get it available as soon as possible.

now, the plugin binary .jar file is distributed i…

GoCD plugin: now, the plugin binary .jar file is distributed in windows and linux installers inside "client" install folder.

The attributes tab is finally in the branch explo…

Linux GUI: The attributes tab is finally in the branch explorer! The panel is updated each time the branch explorer selection changes, showing the attributes of the selected object.

The user will be able to apply new attributes, editing the value of the existing ones or remove them from this new panel.

A new 'cm patch' command is now available! It all…

CLI: A new 'cm patch' command is now available! It allows patches to be generated from a diff and applied in a workspace. The patch output is in the diff unified format, as usual.

By default, patches are written to standard output unless a path is specified using the --output optional parameter. There's also the possibility to manually set the external tool to be used (diff to generate patches, patch to apply them) using the --tool optional parameter. These tools will be searched in the PATH environment variable if the --tool parameter is not used.

Examples:

cm patch br:/main/task035
cm patch cs:958@myrepo@myserver:8084 --tool=C:pathtodiff.exe
cm patch cs:30@myrepo cs:39@myrepo --output=output.patch
cm patch --apply output.patch

The 'patch' command is not supported in our Java client.

The attributes tab is finally in the branch explo…

OS X GUI: The attributes tab is finally in the branch explorer! The panel is updated each time the branch explorer selection changes, showing the attributes of the selected object.

The user will be able to apply new attributes, editing the value of the existing ones or remove them from this new panel.

Bug

The dynamic pending changes view shown next to th…

Mac: The dynamic pending changes view shown next to the items view could be displayed in an inconsistent state after Add or Checkout operations in the items view tree. Fixed.

Sometimes a message like "Unexpected error: Canno…

Mac: Sometimes a message like "Unexpected error: Cannot access a disposed object. Object name: '[name]'." would appear when a workspace window with an open dynamic view was closed. Fixed.

Command line help failed to display if language w…

Command line help failed to display if language was not English or Spanish. Now it default to English if the specific translation is not available.

If you launched the mergetool for Windows directl…

If you launched the mergetool for Windows directly without any argument, it failed because it couldn't find the appropriate resources for the launcher form. Fixed.


7.0.16.2006

Public | 2018-02-28

New

From now on, the merge tools included with plastic will have their own configuration. Before they were using both config files, the client.conf and the mergetool.conf. Now, they will get the configuration only from the mergetool.conf file. The configuration moved is:

  • language=es

  • fipscompliant=true

  • stacktrace=true

Please add these keys to your mergetool.conf file in case you want to change those values.

Bug

The merge view opened the branch explorer propert…

OS X GUI: The merge view opened the branch explorer properties in the side panel when a merge finished. It was a minor detail, but it could be slightly confusing to users. Fixed.

After processing a merge, the hint message at the…

OS X and Linux GUI: After processing a merge, the hint message at the bottom of the merge view was wrong. It informed that the merge search finished without results, instead of notifying that the merge was successfully completed. Fixed.

Workspace update (you know, switching to a differ…

Workspace update (you know, switching to a different branch or cset) had an issue if a directory or file was locked (i.e. directory in use). Now the operation keeps the locked item as private (or out-of-date) and goes on updating the rest of the workspace.

Example: you have a console open in src/server and then you switch back to changeset where src was named "code". Before, the operation failed and the workspace was dirty. Now it works great, leaving just src/server as private. In fact, if you later go back to the initial changeset, the private is reused.

Sync with Git feature didn't support the TLSv1.2…

Windows: Sync with Git feature didn't support the TLSv1.2 cryptographic algorithm for HTTPS, so synchronizing against some providers (e.g. GitHub) failed. Fixed.

REMARK: Still pending to fix this issue for non-windows plastic applications.


7.0.16.1995

Public | 2018-02-23

New

We made some changes in our custom file preview s…

We made some changes in our custom file preview sytem so you can configure IrfanView as a external preview tool and, this way show previews for .psd files.

You can configure it by using the following command options to generate the thumbnail previews:

"@src" /convert="@output" /resize=(1024, 1024) /aspectratio

Added support for Bamboo 6.x.

Bamboo CI Plugin: Added support for Bamboo 6.x.

Enable plan branch filtering based on Plastic att…

Bamboo CI Plugin: Enable plan branch filtering based on Plastic attributes.

The goal is to support testing and merging task branches to main when a given attribute is set. This way trunk-based development can be easily implemented.

The recommended configuration for a Bamboo plan is as follows:

  • Branch to track in the Bamboo plan when configuring Plastic repo is "/main".

  • Enable automatic plan branch creation ("when new branch in repository is created" option is OK).

  • Enable automatic plan branch merging. Select the Gatekeeper strategy (with "push on successful" enabled, which means the resultant merge will be checked-in to /main on successful build).

  • Do not enable the "After branch was deleted from repository" checkbox when configuring the plan branch.

  • Enable the plan branch deletion for just a couple of days of branch inactivity ("After branch inactivity in repository" option). Once the branch is merged to /main, you shouldn't be working on it anymore (this way you will save disk space and Bamboo plan branches available, if limited).

  • Enable repository polling to track new changes once the plan branch is created.

When configuring the Plastic repository for a Bamboo plan, a new checkbox named "Enable Plan Branch filtering" will appear.

Once it is enabled, a textbox allows filtering the candidate branches to create a new plan branch in Bamboo in two ways:

  • Specifying an attribute name and value pair as follows: attribute_name=attribute_value. Example: status=resolved which means that only the branches with an attribute named "status" with the value "resolved" will be sent to Bamboo to create a plan branch.

  • Specifying a complex query valid for "cm find branch" command (which is the underlying plastic command executed to retrieve the candidate branches). It is not mandatory to specify a plastic attribute in this mode. Two examples below:

where owner!='john_snow' and date > '3/2/2018'
where attribute='stage' and attrvalue='done' and name like 'JIRA-%'

REMARKS:

  • Remember to create the Plastic attribute and apply the desired value (manually or through an external trigger) to the branches that you want to be built and merged by Bamboo.

  • Find more info about Plastic attributes here

Bug

There were two BranchExplorer display options tha…

Mac: There were two BranchExplorer display options that weren't properly working: "display full branch names" and "display branch task info". Fixed.

It failed to get the status of a locked item when…

Unity 3D Plugin: It failed to get the status of a locked item when the lock configuration was done through the webadmin. This happened because webadmin does not fill the lock server field in the lock.conf file and the unity3d plugin did not support an empty lock server specification.

Using Gluon, when we try to move a file that is i…

Using Gluon, when we try to move a file that is in exclusive use by another application (another application has it open and locked), the move operation fails as expected with the error 'The process cannot access the file because it is being used by another process.'. But sometimes after release the file, when we try to move the file again, using gluon, the operation failed unexpectedly with the error 'Selector can't locate a revision for the item foo'. Now it's fixed and after release the file, gluon can perform move operation.

The new version for the Polarion plugin reference…

The new version for the Polarion plugin referenced '3.17.1+' instead of '3.17.3+'. Fixed

The bamboo plugin was unable to retrive source co…

Bamboo plugin: The bamboo plugin was unable to retrive source code for a plan branch from Plastic repository after the first auto-merge operation performed on that plan branch. Fixed.

The path to the Plastic SCM command line was not…

Bamboo CI Plugin: The path to the Plastic SCM command line was not printed when saving the configuration. Fixed.

The bamboo plugin shown the data of the default r…

Bamboo plugin: The bamboo plugin shown the data of the default repository instead of the selected one when users edited a repository in the plan configuration. Fixed.

We have just detected an issue with "Sync with Gi…

KNOWN ISSUE: We have just detected an issue with "Sync with Git" feature targeting a GitHub repo. This issue prevents performing a sync operation correctly due to SSL/TLS restrictions on GitHub side. We're working on fixing this.


7.0.16.1973

Public | 2018-02-13

Bug

a bug slipped into our code and prevented our plu…

Crucible plugin: a bug slipped into our code and prevented our plugin from loading the Crucible repositories. Fixed.

If the configured server is using Jet as its back…

'Welcome to Plastic SCM' dialog: If the configured server is using Jet as its backend, some corner concurrency circumstances could cause the OK button in the 'Start a new project' tab to start an action that never ends. If that happens, the server will fail the next time it starts and it will log this message: "FATAL LicenseManager: Can't load information". Now it's fixed.


7.0.16.1960

Public | 2018-02-06

Bug

The image properties were not correctly updated w…

Windows GUI: The image properties were not correctly updated when changing between different image files in the diff viewer. Now it's fixed.

When creating a new workspace, Plastic got locked…

Windows GUI: When creating a new workspace, Plastic got locked when typing a non-existing root path (for example j:) in the path textbox, and then clicked the 'browse' button. Now it's fixed.

The pending changes, items and branch explorer vi…

Windows GUI: The pending changes, items and branch explorer views were not refreshed after checking changes with an update operation without conflicts. Fixed.

Since we released Gluon for OS X (release 6.0.16.…

OS X GUI: Since we released Gluon for OS X (release 6.0.16.1779), we accidentally hid the semantic differences feature.

Now it's fixed, and the diff mode selection (text diff vs semantic diff) is visible again in the diff viewers.

In after-replicationwrite triggers, the PLASTIC_B…

In after-replicationwrite triggers, the PLASTIC_BRANCH env variable indicates the replicated branch.

There was a bug and the env var was not filled for "push" operations.

It is fixed now.

Performing a push operation from server A to server B:

  • The server B wrongly executed the after-replicationread triggers.

  • The server A wrongly executed the after-replicationwrite triggers.

These are the executed triggers performing a push operation from server A to server B:

  • On server A: before-replicationread & after-replicationread

  • On server B: before-replicationwrite & after-replicationwrite

Performing a pull operation from server A to serv…

Performing a pull operation from server A to server B, the server B wrongly executed the after-replicationread trigger. Also, the server A was wrongly executing the after-replicationwrite trigger. Now, none of them are executed.

These are the executed triggers performing a push operation from server A to server B:

  • On server A: before-replicationread & after-replicationread

  • On server B: before-replicationwrite & after-replicationwrite

The import package and the push operation are not…

The import package and the push operation are not properly setting the PLASTIC_BRANCH for the before-replicationwrite and after-replicationwrite triggers. As a result, when a child branch is pushed (or imported using a package) with any of those triggers registered the operation was failing.

The repository trigger filters were ignored for t…

The repository trigger filters were ignored for the before-merge trigger. It's fixed now.

Example:

If you'd like the before-merge trigger to affect just the repository 'default', you'd run the following command to register the trigger:

cm mktrigger before-merge mergetest "c:/tmp/trigger.bat" --filter=rep:default,*

send time (sendt) was also wrongly used in receiv…

There was a log issue with requests: send time (sendt) was also wrongly used in receive time (rect). Fixed.

Sometimes the checkin operation could throw a Nul…

java cm client (a.k.a. java CLI ): Sometimes the checkin operation could throw a NullPointerException when multiple threads were used for data transferring. This could be achieved by tuning the client.conf configuration file. (It's important to remark that the integrity of the data never was affected). Fixed.


7.0.16.1944

Public | 2018-01-26

New

much better responsiveness since lots of calls ma…

Windows GUI: much better responsiveness since lots of calls made in the main thread were removed. Clearly noticeable with distant servers (like Cloud).

Added support for Polarion 3.17.1+. The API chang…

Added support for Polarion 3.17.1+. The API changed at this version and our Polarion plugin was not compatible. Now we ship two versions. The old one (compatible until Polarion 3.17.1, and the new one, compatible from Polarion 3.17.1 and higher).

The plugins and instructions about how to install it can be found in the /client/plugins directory.

Semantic diff engine now supports C# 7 language s…

Windows GUI and Mac OS X GUI: Semantic diff engine now supports C# 7 language specification!

REMARK: Windows installer will now require .NET Framework 4.6 to be installed before proceeding any further.

Bug

Fixed "An error occurred processing your request"…

Windows GUI: Fixed "An error occurred processing your request" when double clicking files in the pending changes view after a merge, when the status of those files was "Copied (new)".

The issue tracker extensions did not work properl…

Visual Studio Package: The issue tracker extensions did not work properly under the Visual Studio Package. A "File or assembly Newtonsoft.Json.Net20.dll cannot be found" exception was thrown. Now it's fixed.

Recently we fixed troubles we had with Plastic SC…

Windows Installer: Recently we fixed troubles we had with Plastic SCM windows services startup when upgrading installed Plastic SCM version from a non-administrator user account. And we fixed it for Plastic SCM versions starting from release 7.0.16.1873. This means that users upgrading from - let's say - versions 7.0.16.1873 to 7.0.16.1912 won't be hit by such trouble.

We have fixed this issue too when the upgrade is done from a version minor than 7.0.16.1873.

This means that users upgrading from version 6.0.16.1873 to 7.0.16.1935 won't have troubles with Plastic SCM windows services.


7.0.16.1930

Public | 2018-01-19

Bug

The application menu in the Menu Bar and the Dock…

Gluon for Mac OS X: The application menu in the Menu Bar and the Dock icon displayed 'macgluon' instead of 'Gluon'. Fixed.

Fixed a high DPI issue. The update and checkin pr…

Windows GUI: Fixed a high DPI issue. The update and checkin progress panels were cut on hightDPI screens. Now it's fixed.

The branch explorer view memory was severely incr…

Windows GUI: The branch explorer view memory was severely increased with the redesign for Plastic 7.0. Now it's fixed.

Linux & Mac OS X GUI: Some merge links were drawn out of its bounds. Now are ok.

The pending changes view performance was severely…

The pending changes view performance was severely degraded when there were tons of changed items in view. This was broken when the tree mode ("view items as a tree"). It was only appreciable with tons of pending changes. Now it's fixed.


7.0.16.1912

Public | 2018-01-09

New

-)

Lots of Linux GUI code refactored to simplify and clean up the use of lists. Big internal refactor :-)

When you deconfigured a file or directory, the ro…

Gluon (windows, gtk, mac): When you deconfigured a file or directory, the root node was always selected in the "explore workspace" tree. This was annoying when the node were on the bottom of a big tree.

Now, when you deconfigure an element, the focus go to the previous element or the parent directory, not the root.

Bug

the difference drawing was not work fine when the…

Mergetool for Linux: the difference drawing was not work fine when the region bounds exceed the textbox lines. Fixed.

We had some reports of the server being unable to…

Server: We had some reports of the server being unable to start after a sudden shutdown of its host machine if it was performing a background maintenance task at that moment. That sudden shutdown prevented the OS from flushing its buffer into the disk. From now on, the involved maintenance tasks will force the OS buffer flush to avoid any further issues in case of an unexpected system shutdown.

The replication process of a branch failed if the…

The replication process of a branch failed if the replicator user wasn't granted the 'replicatewrite' permission for its parent branch on the destination repository. Fixed.

The image preview for pdf files was broken few re…

Gluon for OS X: The image preview for pdf files was broken few releases ago when the preview image size was changed depending on the image resolution. Also, the aspect ratio of the files in the preview was not respected. Now both issues are fixed.


7.0.16.1902

Public | 2018-01-01

New

replica now shows detailed progress during metada…

Linux & Mac OS X GUI: replica now shows detailed progress during metadata transfer.

Added TrackPad support to scroll the diff viewer…

Mac OS X GUI: Added TrackPad support to scroll the diff viewer and the mergetool. Now you can use the scrolling gestures to scroll horizontally and vertically in the diff viewer and the merge tool.

-)

New style for Plastic for OS X. We redesigned the looks of the entire gui introducing same ideas we applied developing Gluon for OS X. We hope you like it :-)

We refactored the code of the configuration dialo…

We refactored the code of the configuration dialogs in OS X, Linux and Windows, including Gluon on the 3 platforms.

We also fixed a few things in Windows:

  • Fixed a couple of bugs with proxy server: a null connecting to a regular server with plasticproto.

And redesigned the config dialog for Gluon on Windows: no more cut texts, better layout.

The Plastic SCM configuration will automatically…

Jenkins plugin: The Plastic SCM configuration will automatically propose a default workspace name for the first (mandatory) workspace.

The Plastic SCM client will open as soon as you i…

Mac OS X GUI: The Plastic SCM client will open as soon as you install it for the first time! Now it's easier than ever to start working with Plastic SCM on your Mac :)

Bug

The "Show branch explorer" button from the "Versi…

Unity 3D Plugin: The "Show branch explorer" button from the "Version Control" tab was not showing the Branch Explorer view in Mac OS. Fixed.

The subtractive merge operation failed if the sou…

The subtractive merge operation failed if the source changes to subtract contained a deleted xlink. Now it's fixed.

The operation failed with the error "˜The changes…

Sync with Git: The operation failed with the error "˜The changeset X could not be imported" when the targeted Git repository contained a submodule whose URL was changed from the one that was originally used to sync. It's fixed now.

There was an issue configuring existing pipeline…

Jenkins plugin: There was an issue configuring existing pipeline projects. The PlasticSCM entry didn't appear in the SCM dropdown list if the pipeline was set to get the script from SCM. Fixed.


7.0.16.1889

Public | 2017-12-24

New

)

New Branch Explorer design arrived to Linux. We hope you like it :)

The 'cm partial update' command allows the '--cha…

The 'cm partial update' command allows the '--changeset=number' parameter so it can go to previous/newer changesets for an specific item or the whole workspace. This is only useful in Gluon workspaces.

Examples:

cm partial update --changeset=23

Updates the entire workspace to changeset 23. Files that are changed or checked out will be skipped and will remain on whatever version they had. It is useful to go back and skip newer changes you didn't want to download to your workspace.

cm partial update src/foo.psd --changeset=15

Downloads the version of foo.psd that was loaded on changeset 15. In case foo.psd is modified or checkedout the update will fail.

Now the image diff viewer loads the image propert…

Gluon for OS X: Now the image diff viewer loads the image properties (EXIF, TIFF, PNG, and other properties) in the properties viewer.

Improved the trackpad support for the branch expl…

Mac OS X GUI: Improved the trackpad support for the branch explorer. Scrolling and zooming gestures have been improved (now the diagram draws smoother while scrolling and zooming). Also improved the drawing when clicking&dragging using the mouse to scroll the diagram.

Bug

The "Analyze differences" functionality in the di…

Windows GUI: The "Analyze differences" functionality in the diff window was broken. The information was calculated but not shown in the view. Fixed.

In addition, we renamed the 'cloc' executable file from 'cloc-1.60' to 'cloc' (without the version number). We were a little bit out-of-date (cloc latest version is 1.72). We have also improved the message displayed when the cloc executable is not found, so we hope there won't be any more problems to use it :)

The diff window performed an unwanted refresh aft…

Windows GUI: The diff window performed an unwanted refresh after checkin/checkout/undo files in the items or the pending changes view. Now it's fixed.

When using the items view in Gluon, the preview i…

Gluon for OS X: When using the items view in Gluon, the preview image size could be wrong depending on the image resolution. Now it's fixed.

The revision history list in the details panel wa…

Gluon for Linux: The revision history list in the details panel wasn't updated (cleared) if a directory or a private item was selected. Fixed.

The content view wasn't displayed for private/add…

Gluon for Linux: The content view wasn't displayed for private/added items. This meant that the checkin view held a big empty space where the content view should be -if there were only private/added items- or that the diff view of a previously selected changed item wasn't replaced with the contents view of the selected private/added item.

The application icons were corrupted and couldn't…

Linux GUI: The application icons were corrupted and couldn't be displayed properly. Fixed.


7.0.16.1874

Public | 2017-12-22

New

We have done and in depth review of the help of t…

We have done and in depth review of the help of the command line (cm) to document flags that were missing and better explain some options.

Documentation is now much more complete than it used to be. It is an ongoing effort to make cm shine :-)

an out of date item cannot be checked in. Now, ch…

Until now, "Update workspace" operations (either on the GUI Items View / Workspace Explorer or through "cm update") warned about the changed items that would be left out of date. As a result, the checkin operation could fail if the user didn't force-update them and they try to checkin one of those files after performing some changes on it: an out of date item cannot be checked in. Now, changed items are checked on a workspace update. If they are in conflict with the new server changes, a merge operation will be launched.

Bug

Since new Branch Explorer for Plastic SCM 7.0, bo…

Windows GUI: Since new Branch Explorer for Plastic SCM 7.0, bookmarking a changeset/branch could show an error after the branch explorer is closed and reopened again. Fixed.

Upgrading Plastic SCM on windows logged as a wind…

Installer: Upgrading Plastic SCM on windows logged as a windows standard user could lead the installer not to detect a previous installation. When this happens, the installer show errors when starting Plastic Server and Change Tracker services. The issue only happened if the elevated admin user never configured Plastic SCM client. Now the issue is fixed.

Sometimes, when switching between the explore wor…

Mac gluon: Sometimes, when switching between the explore workspace view and the configure view, the selected paths are not visible, the scroll position is wrong. Fixed.


7.0.16.1857

Public | 2017-12-18

New

New Branch Explorer coming to Plastic 7.0!

New Branch Explorer coming to Plastic 7.0!

We redesigned the looks of the Branch Explorer for Windows and OSX (Linux will follow soon) introducing some new ideas we have been tinkering with for a while.

We hope you like it as much as we do and it soon becomes the new standard for all the branch diagrams we draw even on blackboards :-)

Gluon for Mac learns how to undelete files, so no…

Gluon for Mac learns how to undelete files, so now recovering past work becomes much easier.

-)

Gluon on Linux learns how to undelete items :-)

-)

A small game added to the Branch Explorer as a result of a HackWeek we did a few months ago :-)

It works in Windows.

  • When the branch explorer is focused, press Ctrl+Alt+P to show the game

  • Press Enter key to start the game

  • Use left and right arrow keys (or use the mouse) to move the paddle

  • Press 1 to decrease the game speed

  • Press 2 to increase the game speed

  • Press space bar to add more balls to the game

  • Press P to pause the game

  • Press Esc to exit the game

From now on, copied items (those modified only on…

From now on, copied items (those modified only on the merge source) will perform exclusive checkout (if needed) during the merge operation. As a result, the merge operation will no longer be able to modify a file that requires exclusive checkout while another user has checked out that particular file in their workspace to change it.

when you ignore files, you can now edit the rules.

Linux/OS X: when you ignore files, you can now edit the rules.

It works both from "pending changes" and "explore workspace".

It is very convenient to select a file and set rules to one of its parent directories.

The undo changes performance has been greatly imp…

The undo changes performance has been greatly improved.

It is specially noticeable when undoing changes from a merge.

Now undoing the changes of a big merge with thousands of changes is about 10 times faster. The bigger the merge is, the better is the improvement.

This improvement benefits the command line and all GUIs.

Bug

The undo checkout operation of a non-hydrated fil…

The undo checkout operation of a non-hydrated file was wrongly leaving the item set as if it came from the hydration source repository on the workspace.

Fixed some uncommon scenario where the same revis…

Cloud: Fixed some uncommon scenario where the same revision could be loaded on multiple locations. This could happen if the same repository was loaded multiple times across the same workspace (i.e. the workspace contains multiple Xlinks pointing to the same repository) and an update operation needed to download the file revision X to multiple paths: the operation could fail for some of those paths.

The "Update Forced" button in the Update report d…

GTK Gluon: The "Update Forced" button in the Update report dialog was always enabled. It should be enabled only if there is at least one checked error.

The Update Forced action in the Update report dia…

GTK Gluon: The Update Forced action in the Update report dialog wasn't taking effect. Fixed.