Codice Softwares Plastic SCM is the Cadillac of software configuration management. The only downside I see to it is the sheer number of features that bring with it a lengthy learning cycle to become acquainted with everything it can do.
Plastic SCM 4.1 was released in April 2012, and supports both merge and lock models. It can operate either as a central server or as a distributed server. The product also includes both a command-line version and a GUI. In other words, it allows pretty much any configuration that teams need or want. It is free for small projects up to 15 users.
Codice Software uses a short iteration cycle, and as such does multiple minor releases per year. As a result, dozens of new features have been released since the last major update at the end of 2011. The accompanying slide show demonstrates some overall big-picture features of Plastic SCM.
For this review, we tested out several specialized features that will benefit development teams. Normally, I only look at new features, but I have reviewed some especially useful features here, as well.
IT managers should note that Plastic SCM is primarily focused on managing development branches. Departments where developers work on independent branches that are then merged back together will especially benefit from using Plastic SCM. Departments that dont already work this way can expect a short amount of training time as developers come up to speed on the concept of working on a separate branch.
Indeed, I was skeptical about this orientation around application branches. However, the more I tested Plastic SCM, installing the system on two different computers for different users, the more I saw that this is indeed a powerful approach. My tests showed that when branch development is done correctly, it allowed me to easily pick and chose which features should be merged into the final release of my software development project.
As is typical of source-code management tools, Plastic SCM can be fully integrated into different integrated development environments (IDEs). I tried out the integration with Visual Studio 2010, and it worked great after I figured out the trick of telling Visual Studio to switch to the version control I used (in the Options dialog box under Source Control -> Plugin Selection).
After I chose Plastic SCM, Visual Studio switched right over, and I was able to immediately create a repository in Plastic SCM and check all my code in, and then continue using Visual Studio as I normally would. Additionally, Plastic SCM integrates with the new Visual Studio 2012, as well as Eclipse.
Plastic SCM Simplifies Code Branch Management
Next, I wanted to try some of the newer, more specialized features. Plastic SCM now supports importing and exporting Git repositories. I tested importing and exporting with both Git and SVN, and it worked as advertised. Plastic SCM now supports a fast import of Gits fast export feature. I tested this using the Cloud9 IDE, one of my favorite GitHub projects. The URL for the repository is https://Github.com/ajaxorg/cloud9.Git. I was hoping I could clone directly from GitHub to Plastic SCM, but the process isnt that straightforward. First, I had to clone the repository to my local drive via the Git command: git clone https://Github.com/ajaxorg/cloud9.git.
From there, I did a fast export from my local Git, and then I was able to import it into my Plastic SCM repository. It would have been nice if this could have been a direct copy from GitHub to Plastic SCM without having to clone the repository locally first, but thats okay; typically, if youre moving from one repository to another, youll only do it once. So having to clone it locally isnt a big deal. I just deleted it when I was finished.
New in Plastic SCM is the ability for a replica to replicate Git-imported branches that have two changesets whose parents are located in different branches. I have a lot of Git repositories and I was able to test out this feature exactly as described. First, I found two branches that fit the requirements to be good candidates to demonstrate the replica-handling feature. The feature worked perfectly in my tests. Although a feature such as this seems pretty minor, it demonstrates great support for importing Git repositories.
I also tested several minor features. One feature I tested might seem odd at first, but can actually be quite useful. According to the release notes, you can now install two different versions of Plastic SCM (specifically versions 3 and 4) on a single machine.
For large companies making a transition, this could be very useful, as it would allow a slower transition to the new system without having to immediately move older projects in. I happened to have access to a computer with the older Version 3 on it, so I was able to test out this feature. Theres not much really to report other than they were able to coexist just fine.
I used Plastic SCM in a distributed model with servers running on individual computers. Checking in and out, therefore, was fast. The merge tools worked perfectly, and allowed me to quickly merge the changes, which you can see in the accompanying slide show.