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.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.
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.