Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

Release is out!

Monday, December 23, 2013 Pablo Santos 0 Comments

A new release is now out, this time including a few interesting new features! Enjoy Christmas together with the new Plastic release :-)

New “time lapse” view

We’ve improved 2d history tree so that it now includes an embedded diff viewer making much, much easier to understand the evolution of a file.

Improved diff navigation

Whenever you’re just running a diff or doing a code review it is very useful to know which files you already viewed. If you navigate in order it is not a problem but sometimes you have to go back and forth to better follow the changes.

We’ve added a small improvement that will be of great help: now each time you click on a file it is marked as “viewed” so it is now straightforward to see which ones are still pending. Navigation buttons also help you go back (and forth) to the previous ones you visited.

Merge-to: merge to a branch instead of from a branch

There are times when you just want to merge your changes to a different branch and there are no conflicts involved so it can be slow to switch to the destination branch and then merge from the source.

Although we always recommend to build the code just after the merge (and run the tests!) sometimes it is useful to be able to directly merge without being on the destination branch.

That’s why we’ve introduced ‘merge-to’: click on a branch and merge it to another one. If there are no conflicts involved it will proceed and create a new checkin on the destination branch.

Let’s see it in action:

You want to merge “task003” into “main” and as you can see there can be conflicts considering the branch structure.

So you just right click on the branch, go to “advanced merge” and then select “merge this branch to…”. Then you will choose the destination branch from a list.

The merge tab will show up to let you do a preview of the merge:

Since there are no conflicts all you have to do is to just click on “process merges”. Plastic will prompt you for a comment for the new checkin.

Once you’re done the Branch Explorer will look at follows:

Annotate/Blame can now tell you if a line was changed during the merge

Most of the manual merge conflicts will be solved just by choosing one of the merge contributors as result. But sometimes you’ve to manually modify the code during merge. Now the annotate/blame can track it and display it as follows:

Since lines modified during the merge are potentially more dangerous this new feature helps tracking these changes.

Also, if you run a blame through your entire codebase (doing some scripting) it will be possible to count how many lines on your current codebase were modified during merge.

We’re working on a tool called “repoblamer” which is able to do this and also calculate some other interesting stats.

Additional new features

We’ve included some other minor new features:

  • Branch Explorer: Now it is possible to search changesets by GUID.
  • Installer: Now the first time that Plastic SCM is installed on a machine, the client wizard checks if there's a server up and running in localhost:8087 (which is the most common scenario, especially during evaluation) and if that is the case then the client field is filled with these information; therefore the user doesn't need to type it and the configuration process is faster and more comfortable.
  • Oracle backend: Connector upgraded to a version that supports the .NET 4 framework, so now the .NET 4 Plastic SCM version can be used with this backend.

And some bug fixes too

  • When searching on a textbox (diff viewer, annotate, ... ), it only found the first occurrence of a search pattern on a line. Fixed.
  • GUI and CLI: When the server location was changed, the "update" operation was throwing "No channel found" errors, when it was suposed to connect against the new server location. Fixed.
  • GUI and CLI: The "Browse repository on this branch/changeset/label" feature on GUI, and "cm ls" command on Command Line Client were not showing any results if an involved xlink cannot be resolved (the server the xlink repository belongs is down, the target changeset was not replicated yet, not enough permissions...). Fixed.
  • Exclusive checkout: The exclusive checkout operation was showing an error message under the following conditions: the branch doesn’t have changesets yet, the branch base is not the last changeset on the parent branch, the "requirehead" lock rule was set. Fixed.
  • Sync dialog: Aesthetical issues regarding labels not shown and progress cut fixed in Linux and Mac.
  • Admin tool and User Mode Tool GUI: These applications did not load the user configuration correctly.


Pablo Santos
I'm the CTO and Founder at Códice.
I've been leading Plastic SCM since 2005. My passion is helping teams work better through version control.
I had the opportunity to see teams from many different industries at work while I helped them improving their version control practices.
I really enjoy teaching (I've been a University professor for 6+ years) and sharing my experience in talks and articles.
And I love simple code. You can reach me at @psluaces.

0 comentarios: