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.

Plastic 2.0 preview, step by step tour

Thursday, January 03, 2008 Pablo Santos , 3 Comments

We've just introduced Plastic 2.0 preview so now it is time to go through some of the new features, step by step.

The first thing you've probably noticed is the totally new GUI. We've rewritten the 1.x desktop tool trying to introduce a platform neutral look and feel.

The image above shows the Plastic SCM GUI introduced with 2.0 preview. So today I'll just focus on what's new at the GUI level.

If you download the VMWare OpenSuse machine you'll get an already preinstalled Plastic client and server which will help you follow this trip if you're not familiar with Plastic.

The first and foremost new feature is the ability to handle multiple views. The former interface was constrained to the workspace tree on the left and only one view on the right, so we decided to change it in favour of a multi-view layout, as shown on the following screenshot.

Our intention? Well, now it is a lot easier to keep the context while navigating through the information. Think about listing the available branches on a project and querying its contents. Previously you would jump from the branch list to the branch content, now the two views stay on your screen.

Now let's have a look at how to navigate the views. Well, to show the main ones you just have to click on the buttons at the top: items, branches, changesets, labels, checkouts and checkouts all users.

Suppose you're already on the branch view displaying the following content (as you would see using the sample included on the vmware image).

Right-clicking on a branch pop ups the context menu and you can view the revisions on the branch as displayed on the following image.

Another new feature is the changeset view. Changesets exist since release 1.0 but they were never first class citiziens for the GUI. Now there is a specific view to list them.

Do you want to see what has been modified on a certain changeset? Ok, it is quite easy: pop up the context menu and click on show changeset content.

A new view will be opened displaying the files and directories modified on the selected changeset.

And now let's introduce what I consider the most valuable new feature from a developer point of view: the code review helper tool. There is a handful of books and essays written about the subject, and all of them agree to some extent about the benefits of reviewing or inspecting the code. From formal inspections to peer review or even pair programming, they all seem to agree that code review is a great technique. I totally agree with them but normally the lack of proper tools make reviewing code such a boring process that we try to avoid it by all means. Well, we tried to make it easier, faster and less boring with this new review tool. Of course, if you're looking for a great book focused on code inspections take a look at Karl E. Wiegers' book. Or if you prefer a lighter but still effective reading, I would go for the classic Code Complete.

Ok, so, how do you launch the code review tool? Well, it is available from the changeset, branch and label views. From the changeset view you just have to select a changeset and click on compare changeset content.

And the code review tool will let you scroll through all the changes files or directories.

And the last (but not least) feature I'll be introducing today is the query system. Most of the new views are based on it and it eases selecting only the information you're interested on.

The sample below shows how to locate the changesets created by user hank only.

Well, and that's all for today. There are many, many other features in this new Plastic release, and I'll be introducing them in the coming weeks. Meanwhile feel free to try the new release, and please let us know what you think about the new GUI.
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.


  1. Hello,

    Seems interesting. Can you tell me how in terms of features it compares to GIT or Mercurial? Can you do local versioning? Or do you have to be attached to the remote server. I find very few SCMs that purport to be distributed but lack the ability to simply clone a repository on your laptop. Take a trip and while traveling make commits locally that you can later push once you have a connection.


  2. Hi Sean,

    Well, I planned to post about it in a few days, but here it goes:

    Yes, now plastic supports distributed development through the "replicate" command. It is already in the preview release we've just published, although we expect to make some minor changes before the official release.

    Right now, suppose you have a "default" repository and you want to replicate its main branch into another rep (on the same server). You would do something like:

    $ cm replicate br:/main@rep:default@repserver:localhost:8084 rep:second@repserver:localhost:8084

    Which will replicate br:/main into the "second" rep.

    The same command works between separate servers, so YES, you could use it to have your own server on your laptop and work disconnected, but this is just one of the possible scenarios.

    And yes, plastic doesn't only replicate, it can also "reconcile" changes, even if the same branch has been modified at the same time on two different repositories.

    The new replication system is one of the powerful features included in 2.0, and we're still trying to figure out how to make its use simpler, specially introducing GUI support, because right now we only have command line.