Evaluation Guide

Step by step guide to get the best out of Plastic SCM in minutes

Intro

Follow this guide, complete the examples step by step, send us your results back and we will send you one of these awesome T-Shirts!!

Three models of awesome Plastic SCM T-Shirts

Getting it installed

Installing Plastic SCM is a matter of seconds. The default installation is about "next/next" and done.

1The first step to get Plastic SCM up and running is to download the binaries.

Plastic SCM is available for Windows, Linux and Mac OS X.

You can follow this guide using any of our supported client platforms: Windows, Linux and OS X.

If you are on Cloud Edition you don't have to configure the server.

In order to get the binaries you can visit:

Download Plastic SCM

2Once you have downloaded the installer, simply run it to get Plastic SCM installed.

Go to the Plastic SCM Installation documentation if you need any help.

The Plastic SCM server will be installed as a Windows Service.

In Windows the Plastic Gluon client will also get installed. Select the Plastic SCM GUI to be the tool we will use during this guide. For this evaluation, select only the "Server components", as you see on the following screenshot.

Screenshot of Plastic SCM intro, picture 1

3Once the software is installed, you'll enter the Plastic SCM Server configuration phase.

It is rather simple, you can even go for the default options.

We recommend the default settings for the Linux and Mac installations.

In Windows you'll be asked to select the "authentication mode" in the server. You can use the "local name" for evaluation purposes. Your username will be used by default in the client.

Once you finish the configuration, your local client and server will be ready to use.

Screenshot of Plastic SCM intro, picture 2

4Plastic SCM default installation uses an embedded database backend, so that installation and configuration becomes extremely easy.

Windows default installation will use SQL Server CE, which gives rather good performance and doesn't require configuration. It is perfectly usable in "fully distributed" scenarios (running a server on your laptop).

For team servers, backends such as SQL Server, MySQL or Postgres are more suitable.

Repo & WK

Create repo & wk

This is the first screen you're going to see once the Plastic SCM client starts up.
We're going to create a new "project".

I created a new repository called "quake" on my "localhost:8087" which is the server we just installed.

By default, Plastic will assign to the new workspace the same name you use to the repository, and a path on disk for the workspace.

Click "OK" to go create the repository and the workspace:

Plastic SCM - Windows - Create repo & wk
Plastic SCM - Windows - Create repo & wk
Plastic SCM - Mac OS - Create repo & wk
Plastic SCM - Mac OS - Create repo & wk

And then you've your workspace (working directory) and new repo up and running:

Plastic SCM - Windows - Workspace created
Plastic SCM - Windows - Workspace created
Plastic SCM - Mac OS - Workspace created
Plastic SCM - Linux - Workspace created

Pulling some code

Pulling some code

Let's start by unveiling the distributed way of working

1 Go to your branch explorer, right click on the "main" branch (the area surrounding the "home" ellipsis) and show the replication menu.

2 You're going to "pull" from a remote server we've setup on "amazon" with sample code.

Use demo.plasticscm.com:38087 as the source Server.

3 To "browse" the remote server you'll be prompted for a user and password: enter demo/demo

4 Select the "quakecode" repository.
And now you're ready to click on the "replicate" button

5 The replication process will fetch all the remote information for the "main" branch. First it will get the metadata, write it to the local destination repository, then it will replicate all the file data (the actual changes).

Screenshot of pulling some code

Distributed

Distributed Branch Explorer

Note: The Distributed Branch Explorer feature is only available on Windows for now.


1 Go to the Branch Explorer and you will see a diagram like the one below.
It contains the new changesets (ellipses) and labels that you have just pulled from the remote repository. We only pulled the "main" branch so far.

Screenshot of distributed, picture 1

2 Now click the "options" button. Then go to "replication sources" and click the server demo.plasticscm.com.

The Branch Explorer will get updated with new branches coming from the remote server.

They are not pulled but they are still rendered and you can diff the remote branches and changesets.

Screenshot of distributed, picture 2

With this simple "pull" operation we have just demonstrated some of the unique features of Plastic SCM:

  • It is fully distributed.
  • It provides visual representation of the branching & merging and also the distributed operations.
  • It provides "partial replication" - we just pulled the "main branch" but there are many other branches available. Plastic SCM is the only DVCS able to performa partial replica (git & mercurial can't).
  • It can explore remote repositories and remotely diff changes – the other DVCS don't provide remote "browsing" capabilities.
  • To learn more about the Branch Explorer visit Branch Explorer website

Merge

The merge machine

Now we're going to learn how to merge with Plastic SCM.
Learning how to merge in Plastic SCM is very simple. You will be merging branches in minutes.
And Plastic SCM features a very strong merge mechanism as you can see here:

1 We're going to create our first branch. Right click on the label "Baseline109". Click "Create branch from this label". We're going to create a branch named "bugfix4001". And don't forget to switch your workspace to the new branch.

Screenshot of merge machine, picture 1

Once you have switched correctly to the new branch your workspace should look like this:



Screenshot of merge machine, picture 2

2 Now we're going to change a file on the new branch "bugfix4001". In order to do that we're going to do two things:

  • We're going to move the file "common\FileSystem.cs" to "libs\cmdlib\FileSystem-Renamed.cs". As you see we're moving the file to a new location and also renaming it.
  • Then we're going to modify the file: look for the line where it says "count_ = 400;" and change it by "count_ = 350;" as you can see in the image below.

The screenshot shows you the pending changes view with the file that has been modified and also moved and renamed.
Finally type a comment and checkin your changes.


Screenshot of merge machine, picture 3

3 Once we've created our first branch and the first checkin, we're going to create a second change to force a merge conflict.

  • Create a new branch named "bugfix4002" also starting from "Baseline109".
  • And switch to it.
Screenshot of merge machine, picture 4

4 Now that we are at "bugfix4002" branch let's do the following:

  • Move the file "common\FileSystem.cs" to "art\FileSystem.cs"
  • Edit the file and locate the same line that we modified on the previous branch. Now it should be modified as follows: "count_ = 250" (check the screenshot below).
  • Checkin your new change.

As you can see we've forced a 'divergent move scenario' which means the same file has been moved in parallel to two different locations.
To make things even worse the file has also been modified.
This scenario means really big trouble for almost all other version control systems, but Plastic SCM can handle it correctly.
Check the MergeMachine documentation for more information about all the supported merge scenarios.

Screenshot of merge machine, picture 5

5 Now we're going to merge from "bugfix4001" into "bugfix4002". In order to do that:

  • Go to the Branch Explorer.
  • Right click "bugfix4001".
  • Select "merge from this branch".
  • Then a new tab with the merge will be displayed (very similar to the one in the screenshot below).

Plastic SCM detects a "divergent move conflict" as we expected.
Now click "Choose" in the "Resolution method" column in the "Divergent move conflict" and a dialog like the one in the screenshot will show up.
Here you can choose how to solve the conflict.
We will keep the “source” contributor which means we will keep the move done in “bugfix4001”.
It means that the file will be moved to "/libs/cmdlib" and renamed to "FileSystem-Renamed.cs".

Note: do not forget to follow these instructions precisely in order to complete the exercise correctly and qualify for the awesome Plastic SCM T-Shirt :-)


Screenshot of merge machine, picture 6

6 Look carefully in the "merge tab" and you will find an "explain merge" button. Click it and you will see a diagram like the one on the screenshot below.

It explains which ones are the 3 contributors on the merge: the 'source' (or theirs), the 'destination' (or yours) and also the 'base' (a.k.a. 'common ancestor').


Screenshot of merge machine, picture 7

7 Now go back to the "merge tab" and click on "Process all merges". Once the directory conflict was solved, Plastic SCM will try to solve the file merge.
Remember that the file "FileSystem.cs" was not only moved but also modified.
So when you run "Process all merges" the built-in 3-way merge tool will be launched.
It shows the following information:

  • Left panel shows the 'source' revision, the revision coming from branch "bugfix4001".
  • The center panel shows how the file was prior to the two modifications performed in parallel. Actually, the content of the file in the label "Baseline109".
  • The right panel shows the 'destination' or how the file is on the destination branch, this time "bugfix4002".
  • The panel in the bottom shows the 'result' of the merge.

You can click the 'blue', 'yellow' or 'green' buttons to select the right contributor for the conflict (remember, the line with "count_ = ").
In order to complete the exercise correctly, please make sure you keep the change containing the line "count_ = 350;".
Then click "Save & Exit" and the merge tool will be closed. Now go to "pending changes" and checkin.
Congratulations, you've completed your first merge cycle with Plastic SCM!

Screenshot of merge machine, picture 8
Plastic SCM implements the most powerful merge engine, enabling full parallel development.

  • No other version control system, including the modern DVCS like Git and Mercurial, are able to handle a case like this. They will end up duplicating the divergently modified file.
  • This is just a small example of the underlying merge power of Plastic SCM – the merge machine.

Submit

Submit

Congratulations for completing the Evaluation Guide. Now, if you want to request your free Plastic SCM t-shirt please complete the following steps.

1 Now, your Branch Explorer should look like the one below, with the branch "bugfix4001" correctly merged into "bugfix4002":


Screenshot of submit, picture 1

2 Create a new branch from "bugfix4002" and give it a new name.
The really important step is to fill in the "comment" of the branch with your email address, so we know how to enable the t-shirt claim page in your www.plasticscm.com account.
Click OK to create your new branch:


Screenshot of submit, picture 2

3 Now, it's time to push your changes back to the "demo.plasticscm.com" server.

  • Right click your newly created branch.
  • Go to "replication / push branch".
  • Type demo.plasticscm.com:38087 as the server to push your branch to.
  • Select the "result" repository from the list. Remember the user and password is demo/demo in case you are asked for it.
  • Press "Replicate" and you are done!

Now, if the exercise was completed correctly, you will receive an email notification and you will be able to claim your t-shirt from www.plasticscm.com.

Enjoy!


Screenshot of submit, picture 3

Learn more

Get the latest news