Release Notes

Public

Release 5.4.16.647

Feb 20 2015
New

GTK & Mac GUI's: Shelve view has been implemented and it is fully functional. The context menu options are 'View shelve', 'Apply shelve in the workspace' and 'Delete'.

The shelve view can be opened from the "Show Shelves View" button in the pending changes view and it will be displayed on the right side of the view.

New

Triggers: Client side triggers can now be customized using relative paths or user-defined paths. The script execution paths can be built in the following ways:

* Using two new predefined variables: PLASTIC_BIN_PATH (Plastic SCM client installation directory) and WKSPACE_PATH (Current workspace location). Example:

 cm maketrigger before-clientcheckin "Relative trigger path" "@PLASTIC_BIN_PATH/triggers/checkdirectories.pl" 

* Using customized trigger variables, defined in the 'client.conf' file. The syntax is the following:

<TriggerVariables>
<TriggerVariable name="TRIGGERS_PATH" value="c:\triggers" />
</TriggerVariables>

The path directory separator char will be replaced depending on the target platform (i.e "@PLASTIC_BIN_PATH/triggers/checkdirectories.pl" will match "@PLASTIC_BIN_PATH\triggers\checkdirectories.pl in a Windows platform).

The use of these approaches will allow the definition of platform-independent client side triggers.

New

GTK & Mac GUI's: SSL certificates from Plastic SCM servers can now be accepted.

New

Windows GUI: Changed blogpost notification icon. Now, the number of unread blogposts is shown near to the "BLOG NEWS" menu item.

New

Bamboo plugin: Automatic merging feature is now supported (Both 'branch updater' mode and 'gatekeeper' mode).

New

GameUI: New option added in history context menu to show changeset differences.

New

Game UI: A new context menu option has been added in the history panel: 'Diff selected revisions' to let the user diffing two specific revisions (and not only diffing with previous revision).

The new context menu option will be available when two revisions are selected.

New

Game UI: Application startup performance has been significantly improved. Before this improvement, the application startup time was depending on the connection to the server, but now the application starts inmediatly.

New

Game UI: Usability improvements:

* Now it is possible to checkout files from the 'search item'.

* Ctrl+O (checkout) over an item moved away the focus from the selected item. Fixed.

* Focus is kept over an item after creating or renaming it.

* The scroll position is now remembered in the workspace explorer tree after restarting the application.

* Workspace name in window title was lost when switching between configuration mode and explorer mode. Fixed.

New

Greatly improved branch (and changeset) diff window to better explain merges.

This feature is an evolution of the original "item-merge-tracking" effort and greatly improves the way in which branches (and csets) receiving merges are diffed.

This feature is one of the most relevant improvements in branch/cset diffing the Plastic SCM team have developed.

When diffing a branch (or cset) that receives one or more merges, it is often hard to figure out what was really modified on the branch and what comes from the merge. It complicates reviewing code, specially when big rebases (merge from parent branch) happens.

Suppose the following scenario:

* You start branch "task1010" from label "build-117" on main.

* You modify a number of files and work on the branch for a couple of days.

* In the meantime "build-118" was created, including changes in more than 250 files.

* Prior to integrate your branch to main you're asked to rebase it to "build-118", so you merge down from label "build-118".

* Now your branch doesn't only contain the changes you made, it also contains all the changes (more than 250 files) coming from the merge.

If another developer (or yourself) diffs the branch "task1010" now, he will have hard time figuring out what was modified in the branch and what was merged. The branch is not clean anymore.

This is precisely what this new feature solves: it is able to split the diffs in groups, so it is easy to understand:

* which files just come from the merge and were untouched on the branch,

* which ones were modified on the branch,

* and more importantly, which ones were modified both in the branch and also in the merged branch, they were merges, and they're grouped under a category called "changed/changed" (or CC for short).

This third group of files changed/changed is the one greatly improved by this feature: when a file was both modified on your branch and also changed in the branch you're merging, it is grouped under CC, but then it was not easy to know which lines were actually modified on the branch, which ones were in conflict during the merge, and which ones were just modified on the source branch of the merge.

Now the branch (and cset) diff is able to render differently the lines that were modified on the branch, during the merge (result of a manual conflict resolution) and from the source branch being merged (automatic conflict resolution), making much simpler to review code of branches (and csets) with one or many merges.

Bug

Replication: The 'replicate' operation was adding duplicated reviews and review comments when a big number of objects were involved (around 10000 objects involved). Fixed.

Bug

GUI Client configuration dialog: The client configurator dialog wasn't properly handling SSL server specs. Also, the test connection to a SSL server was not working on Linux. Fixed.

Bug

GUI's: Opening HTML revisions from the history view was not working properly. Fixed.

Bug

GTK GUI: Replication panel has been improved to avoid overlapping controls.

Bug

GTK GUI: Application freezed when displaying several dialogs at the same time. Fixed.

Bug

Windows GUI and Command line client: Fixed several errors when the specified language in the 'client.conf' file was not valid.

Bug

Windows GUI: On the repository browser view (browse repository on branch or changeset), the repository actions available for xlinks (view branch explorer, branches, changesets, etc.) were not working. Fixed.

Bug

Windows GUI: Fixed some alignment and textual GUI issues.

Bug

Windows GUI: Improved the look and feel of the notification strip. Also, from now on, license warnings aren't displayed for commercial licenses.

Internal and public releases

The Plastic SCM development team works in short iterations delivering frequent releases.Our goal is to have at least one new release every week, with new functionalities, bug fixes and performance tweaks.

Every 'weekly' release is not published to our customers, but we like to detail each of them in the release notes so users can easily follow what we achieved on every short iteration.

The releases marked with the word "public" are the ones we do publish on the website. The ones marked as "internal" are the releases we create in-house to keep the project moving week after week.

Version numbering

Starting in Plastic SCM 4.0 the version numbering schema has been modified:

  • major.minor.compatibility.buildnumber

  • Sample: 5.0.44.511 means:
    • 5 -> major release number
    • 0 -> minor release number
    • 44 -> compatibility -> all clients and servers with "44" in the compat number are compatible, even if the build number changes
    • 511 -> internal build number