Selecting elements in table views
Operations available in the items view
Information displayed in the changeset view
Operations in the changesets view
Information displayed in the labels view
Operations in the history view
Information displayed in the changed items view
Operations in the changed items view
Information displayed in the private items view
Operations in the private items view
Information displayed in the removed items view
Operations in the removed items view
2.12 The change statistics view
Information displayed in the attributes view
Operations in the attributes view
Information displayed in the repository view
Operations in the repository view
Information displayed in the workspaces view
Operations in the workspace view
2.18 The selector explorer view
Objects in the Branch Explorer
4 The extended information panel
6.1 Elements drawn in the tree
Automatic and non-automatic conflicts
Resolving a non-automatic conflict
8.2 Differences and merge options
8.5 Integration with third party issue tracking tools
9.3 The Plastic SCM shell extension context menu
9.4 Plastic SCM operation concepts
9.5 Plastic SCM operations through the context menu
9.6 Using Plastic SCM context-menu
Figures
Figure 1: Plastic GUI main screen areas
Figure 2: Workspace operations
Figure 6: Common view elements
Figure 7: Other common view elements
Figure 8: View’s advanced options panel
Figure 9: tree and list buttons in items view
Figure 10: Items view in list mode
Figure 12: Check-in comments dialog
Figure 13: Checking in an unmodified item
Figure 14: Rules available for ignoring items
Figure 16: Example of ignored item
Figure 17: Example of cloaked item
Figure 18: Move destination dialog
Figure 19: item removal options
Figure 21: branch context menu
Figure 22: Changeset walking window
Figure 24: label selection dialog
Figure 25: changeset selection dialog
Figure 27: Branch selection dialog
Figure 28: changesets view sample
Figure 29: Repository selection dialog
Figure 30: Changeset operations context menu
Figure 32: creating a label in a workspace with multiple repositories
Figure 35: Sample item's history view.
Figure 36: Operations of a revision in the history view
Figure 37: The changed items view
Figure 38: The private items view
Figure 39: The removed items view
Figure 40: operations of a removed item
Figure 41: Code review for a changeset
Figure 42: Code review for a branch.
Figure 43: Create code review window
Figure 44: Diff with previous - with no comments
Figure 45: Diff with previous with comments
Figure 46: Clicking on the grey zone to add more comments to the same line
Figure 47: Editing the comments of a line which has several comments
Figure 49: sample change statistics view
Figure 50: Views toolbar scroll buttons
Figure 51: Sample attributes view
Figure 52: The repositories view
Figure 53: repository creation dialog
Figure 54: operations of a repository
Figure 55: sample workspaces view
Figure 56: available operations for a workspace
Figure 57: workspace selector dialog
Figure 58: Sample changeset content view
Figure 59: Annotate menu-item from Plastic GUI
Figure 60: Annotate window - Full description
Figure 61: Browse repository from a branch
Figure 62: Browse repository from a changeset
Figure 63: Browse repository from a label
Figure 65: Sample Branch Explorer view.
Figure 66: Repository selection dialog
Figure 67: Branch Explorer diagram axes
Figure 68: Branch Explorer with a branch context menu
Figure 69: Label representation in the Branch Explorer
Figure 70: Branch Explorer link types and colors
Figure 71: Merge link sample in the Branch Explorer
Figure 72: Branch base links in the Branch Explorer
Figure 73: Sample link information box in the Branch Explorer
Figure 74: Scrolling the diagram with the mouse
Figure 75: Branch Explorer navigator
Figure 76: Branch Explorer top toolbar
Figure 77: Branch Explorer search controls
Figure 78: Branch Explorer change statistics
Figure 79: the extended options panel in the Branch Explorer
Figure 80: Branch Explorer in visibility edition mode
Figure 81: Sample conditional format tab in the Branch Explorer
Figure 82: Extended information panel in a view
Figure 83: Tabs in the extended information panel
Figure 84: Sample branch properties tab
Figure 85: detail of the "save" button in comments edition
Figure 86: Attributes tab in the extended information panel
Figure 87: Applied attribute components
Figure 88: The apply attribute dialog window
Figure 89: Sample task information provided by a third party issue management tool
Figure 90: Review interface main areas
Figure 91: Items to compare in the review interface
Figure 92: Item differences in the review window
Figure 93: Changeset walking window
Figure 94: Basic elements in the version tree
Figure 95: Sample checked out revision in the version tree
Figure 96: 3D version tree toolbar
Figure 97: Sample merge dialog
Figure 98: items to merge operations
Figure 99: item candidate contributor revisions
Figure 101: Main areas of the merge tool
Figure 102: toolbar in the merge tool
Figure 103: Moved code detection parameters
Figure 104: difference highlight in the merge tool
Figure 105: automatic and non-automatic conflicts in the merge tool
Figure 106: non-automatic conflict navigation buttons in merge tool
Figure 107: a non-automatic conflict sample in merge-tool
Figure 108: the previous conflict sample, with base and source contributors deselected
Figure 110: XMerge with this selection.
Figure 111: sample differences window
Figure 112: moved code detection on the differences tool
Figure 113: Binary merge tool comparing images side by side
Figure 114: binary merge tool comparing images in blend mode
Figure 115: Sample binary merge tool.
Figure 116: sample bin merge tool with an image item
Figure 117: Differences and merge options in the preferences dialog
Figure 118: Comments options in the preferences dialog
Figure 119: Other options in the preferences dialog
Figure 120: Context menu from Desktop
Figure 121: Context menu Windows Explorer
Figure 123: Context menu after Add and Check in
Figure 125: Private file in Plastic SCM GUI
Figure 126: Private file in Windows Explorer
Figure 127: Controlled file in Windows Explorer
Figure 128: Directory in Win-Explorer before and after check in
Figure 129: Controlled file with multiple views
About this guide
This guide describes the features and functionality of Plastic SCM’s Graphical User Interface (GUI). It also addresses techniques for optimal system use.
This guide assumes familiarity with operating system concepts, programming languages and integrated development environments (IDEs) like Microsoft Visual Studio or Eclipse.
Online documentation
Plastic SCM also provides online reference through the Linux and Windows clients using the command line interface. This reference can be invoked via the command:
cm help
For extended information on a specific command, type:
cm help command
The graphical interface offers online assistance through the Help menu.
Please send comments and suggestions regarding this guide to support@codicesoftware.com
The Plastic SCM GUI provides simple access to the functionality of Plastic SCM. The Plastic GUI is a client that connects to a repository server and manages workspaces in the user’s machine.
The Plastic SCM GUI client is normally started from:
In every platform, using the command “plastic” from a shell on Unix, Mac platforms or in a DOS command window in Windows.
The main Plastic SCM GUI screen is composed of several areas, designed to present the user with a clear view of the versioned environment on which work is being done. The Figure 1: Plastic GUI main screen areas, shows an example of the main window of Plastic SCM.

Figure 1: Plastic GUI main screen areas
Descriptions of each area noted in Figure 1:
![]()
The currently selected workspace is highlighted in orange, while the rest of the available workspaces are displayed in white.
![]()
Specific workspace information shown is:

Figure 2: Workspace operations
![]()
Clicking on a workspace view button opens a new instance of the view if no previous view of that type has been already opened. If the view is already opened, clicking the button in the toolbar will scroll the views area to make that view visible on the top.
Since the list of view buttons may not fit in the window width, scroll arrows (the arrows on the right) are displayed for accessing non-visible buttons in this bar.
Workspace views can also be accessed by using the keyboard shortcut Control+number. The “number” is the position of the button. For instance, the combination Ctrl + 1 opens the items view, Ctrl + 2 opens branches, Ctrl + 3 the Branch Explorer etc.

Figure 3: sample items view

Figure 4: view area scroll
Note that this scrollbar affects the views’ area. Each individual
view will have its own scrollbars if needed to fully display its contents.
The scroll bar also displays the icons of the opened views. These icons can be
clicked and the view area will automatically scroll to that view. When icons
are hovered over with the mouse, the cursor changes to a hand indicating that
the icon can be clicked or dragged.
Note: If the Plastic SCM GUI is closed and opened again, it reminds the opened views before closing, showing them in the scroll in the same order that they had before closing. The scroll will appear in the upper part of the list of opened views.

Figure 5: log window detail
All views in the Plastic GUI share some common properties and elements, independent of their content. The common items are shown in the following figure:

Figure 6: Common view elements
Note: The refresh button in the items view does not retrieve information from the server, so it is not equivalent to an update operation. It refreshes the status of every item in the workspace. This is very useful, for instance, in case that having the items view opened, the status of an item has been changed from the command line or from a plugin.
Views can be resized by dragging with the mouse the bottom border. Only vertical resize is possible, since views will always have the same width and will automatically grow to have the width of the main window. Resize is possible only if the view is not maximized.
In addition to the common properties for all views, some views share other elements like these:

Figure 7: Other common view elements
· Advanced options button toggles the advanced options panel, as shown in the following figure:

Figure 8: View’s advanced options panel
This panel appears on views whose content is based on a query of the Simple Query System, for instance the changesets, labels or branches views. The panel displays a text area with the query used to populate the view content, so that it can be modified. To get more information related to the Simple Query System, take a look into the User’s Guide.
Once the query has been customized, pressing enter or the Execute button on the right reloads the view content. A history of the queries used can be retrieved using the dropdown list in the query text area.
Three additional buttons are available below the query text box:
o Reset query resets the current query to the default one. This button only resets the text of the query. It does not refresh the view content.
o Clear history deletes the history of queries shown in the query dropdown.
o Set as default query sets the current query in the text box as the default query that is used when opening a new instance of the view.
It is possible to select several elements in the table-based views using the usual mouse and keyboard combinations of the host operating system. These combinations are:
All the operations in the Plastic SCM GUI are available via context menus. The elements shown in the view content (i.e. the rows in the tabular views) can be right clicked and a context menu with additional operations appears. More than one element can be selected in the table views. When multiple elements are selected, only the operations common to all of the selected elements will be available.
The default operation, that happens when an option is double clicked, is displayed in the context menu in bold.
The items view displays the tree of files and directories for the current workspace, plus additional information about the specific loaded versions of each item, such as item status, branch and version number, the date created, the author of the revision, the changeset number and some other useful information.
The items view is the default view loaded when the Plastic SCM GUI is opened for the first time or no previous configuration is available and the items view is where the common operations like adding, checking out or checking in will happen.
Items (files or directories) can be displayed in tree or list form, using the two buttons in the items view toolbar, as shown in the picture below:

Figure 9: tree and list buttons in items view
The tree view will display files and folders arranged in the familiar tree layout. The list layout will only display the contents of the current folder. In the list view, there is an additional “current folder” textbox, displaying the full path of the folder displayed.
Double click on a folder to open that folder in the view. Click on the up arrow button in the toolbar to navigate up one level in the folder hierarchy. It is also possible to navigate to a specific folder inside the current workspace by typing its path in the “current folder” textbox and pressing enter or by clicking the right arrow button next to the folder.

Figure 10: Items view in list mode
An item can have multiple status values. It is common to have controlled and changed items or controlled and checked out items.
Note: To get further information about the item, revision, branch, changeset and repository concepts among others, take a look at the User’s Guide.
Right clicking on the items view displays a menu of the available operations for the selected items. The available operations depend on the item status. For instance, check out cannot be performed on a private item, since that item is not a version controlled item.

Figure 11: item operations
These possible item operations are:
Performing an update on a file will check if the file requires updating. Performing an update on a folder will check the folder and all its items within the folder. This means that performing an update operation on the root of the workspace will update all of the workspace items.
The update operation will not overwrite changed items. If a changed item is found during the update operation, it will be reported when the operation finishes in the “Update report” dialog.
If, because of a change in the workspace selector configuration, a checked out item is no longer loaded (for instance, the workspace points to different branch), the update operation will automatically shelve the checked out item’s content so it is available again when the selector loads the old configuration.
Note: Cloaked items will be updated if the update option is explicitly invoked on the cloaked item. Otherwise cloaked items are ignored by the update operation.
If an item is checked out in the workspace, its contents will be automatically shelved to the repository so they will not be lost.
The user will be asked to provide a comment describing the changes performed, so it will be recorded together with the new version created.

Figure 12: Check-in comments dialog
If the items have been checked out but the content has not changed, a dialog box is displayed prompting the action to perform, as shown in this figure:

Figure 13: Checking in an unmodified item
This dialog box presents 3 options:
· Undo checkout since the item has not changed. The check out can be safely undone and this is the normally selected option.
· Force check-in will create a new version of the item with the same contents as the previous version.
· Cancel will simply cancel the check in.
The option “Don’t show this message again for this operation” applies to the selected option for all other items in the same situation.
Notes: This option is only useful on small folder trees since later on the user has to either check-in all of the items or undo the checkouts, which can be time consuming if there are no changes in the checked out items.
For instance, it is not recommended to recursively checkout the root of the workspace in order to change a few files within the root and then undo the checkouts or force the check in for all of the items.
Warning: This option discards any changes made to the item while it was checked out.
· Add to ignored list: Available for private items, it allows to add the selected item to the ignored list, so that it will not be added to Plastic SCM. An ignored.conf file, located in the root of the workspace, specifies which files must not be added to Plastic SCM, by means of rules. There are three possible rules to specify in the ignored.conf file:

Figure 14: Rules available for ignoring items
o Ignore the full file name.
o Ignore the file extension.
o Ignore the full location.
Once the appropriate rule is selected, the following dialog appears:

Figure 15: Ignore dialog
If the ‘Apply rules to all workspaces’ option is selected, an ignore.conf will be created in the local user directory, containing rules to apply to all the workspaces available on the machine.
![]()
Figure 16: Example of ignored item
When a directory is added to the ignored list, any item contained on it will also be ignored in Plastic SCM from that moment on.
An ignored item can be removed from the ignored list. The available option in this case will be ‘Removed from ignored list’, and the user will have to select the appropriate rule to remove from ignore.conf.
To get further information about ignored items, look at the user’s guide.
· Add to cloaked list: Available for controlled items, it allows marking items to not download them in an update operation, so that the update will be faster. Very useful when applied to big files, usually binary files, that are rarely changed. The first time an item is added to the cloaked items list, a cloaked.conf file is created in the root of the workspace. It works the same way as ignore.conf, that is: three types of rules:
o Cloak the full file name.
o Cloak the file extension.
o Cloak the full location.
Once the appropriate option is selected, the Setup filters confirmation dialog appears, as in the ignored case. You can apply the rules for all the workspaces on the machine by selecting the ‘Apply rules to all workspaces’ option. A cloaked.conf file will be created in the local dir of the user.
![]()
Figure 17: Example of cloaked item
When a directory is added to the cloaked list, every item contained on it will also be updated from that moment on.
A cloaked item can be removed from the cloaked.conf list, the same way as ignored files.
To get further information about cloaked items, look at the user’s guide.

Figure 18: Move destination dialog

Figure 19: item removal options
Plastic SCM recognizes commonly used file extensions and determines whether the file contains text or binary content. However, some files can be unknown to Plastic SCM and they will be marked as binary by default. If the files are actually text files, they can be marked as text file so the diff and merge processes handle them more effectively.
Branches are an important and extremely useful part of Plastic SCM operation. Branches are easy to manage, so branch-intensive development patterns such as branch per task development, can be easily and effectively implemented using Plastic SCM.
By default, the branch view displays a tabular list of the all branches in the repositories of the current workspace. The content of this view is retrieved using the Simple Query System, so it can be customized using the “Advanced” button.

Figure 20: the branch view
The branch view has a “Show extended information” button in the top toolbar, next to the refresh button. This button displays the extended information panel containing additional information about the selected branches. For more details on this panel, see the “Panels” section of this guide.
The columns in the branch view support the sorting and resizing functionality available in all tabular views, as previously described. The column contents are:
Right clicking on a branch or a group of branches in the branch view, displays a context menu with the available operations for those branches.

Figure 21: branch context menu
The branch view operations are:
This operation will open a new view with the items that have been changed in the branch. This is normally referred to as the content of the branch; the rest of the items in the workspace are inherited from the parent branch, depending on the configured branch base. For more information on branch bases, see the “Properties” section of this guide below.
For more details on the content of the changesets view, see the “The changeset” section of this guide.

Figure 22: Changeset walking window
The ability to “walk” a changeset is an extremely useful feature of Plastic SCM. This window allows users to review, changeset by changeset, the modifications that have been made on a branch. See the “Changeset walking” section of this guide for more details on this valuable feature.
The create child branch operation will create a new branch with the selected branch as parent. When selecting this option, a dialog for setting the new branch properties will be displayed:

Figure 23: New branch dialog
The content of the different sections in the dialog box are:
Optionally, comments can be provided which will be displayed with the branch properties in the branch view. The comments can include, for example, details about the branch and its use.
To select the type of base for the branch, click on the radio button next to the option chosen. The type of base which can be set are:

Figure 24: label selection dialog
A list of all labels in the repository of the parent branch will be displayed. The filter text box allows the user to filter the contents of the view as usual. Double clicking an element in the list or single clicking on an element and then clicking OK will select the label. Once the label has been selected, it will appear as the branch base.
Setting a label as a branch base is a common scenario, for example, when a release is created and shipped. At this point in the development, a branch base is usually marked with a label.
Notes: if a label that has not been applied is selected as branch base, when pointing the workspace to that branch a “Cannot load the root item” error will be reported, since the starting point of the branch does not contain any revision and the branch does not know which contents to load.
To select the changeset, click on the … button and a changeset selection dialog box will appear:

Figure 25: changeset selection dialog
By default, this dialog displays a list of the changesets created during the last month in the parent branch. Since this is a standard changesets view, similar to the one available in the main window (See “The changeset” for more details), the date restriction can be changed, as needed, by clicking in the “Advanced” button.
Choose one changeset by double clicking it or single clicking the desired element and then clicking OK.
When using the branch in a workspace (by switching the workspace to that branch, operation that will be described later, the workspace will load the revisions of items as they were when the changeset was created. Any subsequent changes to items will be new revisions created in the branch. The rest of the items revisions will be inherited from the parent branch at the time the base changeset is created.
In this configuration, all items not modified in the branch will be inherited from the parent branch. If the parent branch changes, those changes will be inherited, except for the items that have been modified within the branch itself. The rule of thumb is: anything not in the current branch is loaded from the branch base on the parent branch. Since this base is set as “None”, the elements loaded from the parent branch will be the latest available.
Note that this is a moving base so the changes in the branch itself are not stable, but depend on the stability of the parent branch. If the parent branch evolves, this branch will evolve too, even if no changes are made directly on it. While this desirable in some scenarios, it might not be in others, so often the label or changeset bases should be used when creating a child branch.
Once the base has been selected, clicking OK creates the child branch. This branch is now ready to be used and it contains an empty changeset for holding information about the base.
Important Note: Take into account that renaming a branch does not update the workspace configuration, so if the current branch used in the workspace is renamed, the user needs to “Switch the workspace” to the renamed branch for the workspace to function properly.

Figure 26: rename dialog

Figure 27: Branch selection dialog
After the branch has been selected, the review interface is launched. See the “Comparing changes: review” section of this guide for more details.
Once the label has been selected, the review interface will be displayed. See the “Comparing changes: review” section of this guide for more details.
By default, a top level branch will not have a branch base either, so if a workspace is switched to a top level branch, Plastic SCM will not be able to load anything.
To be useful, a top level branch must contain a revision of the root directory. This can be achieved by merging from any other branch or setting a branch base. These branches can be useful for holding very specific revision configurations or totally divergent repository contents. For a more detailed explanation of branch concepts, see the Plastic SCM User’s guide.
When the branch base is modified in this dialog, it normally means that the branch contents will be affected by the new base. Specifically:
This operation is called rebase. In this operation, a merge from the branch to which the base is pointing is recommended, because if any item has been changed in both branches, it will be merged and the rebase will be complete. If items have been modified in only one of the branches, the merge is not required, but it is a good standard practice to perform a merge to assure code integrity. To get further information of the merge operation, take a look at the chapter “Merge”.
Tip: A good standard practice when changing the base of a branch is to perform a workspace update and a merge from the branch to which the base points in order to assure that the code base in the branch is up to date.
The branch view and the branch explorer view share a lot of functionality, since both views display branches and can launch operations on the branch. However, the branch explorer contains more functionality related to changesets and links, in addition to branches. For more information, see the “The branch explorer” section of this guide.
Changesets are created when a check-in operation is performed. All the items that are checked in together form a changeset that is assigned a unique number in the repository.
The changeset view is another tabular view based on the Simple Query System. This picture shows a sample changeset view:

Figure 28: changesets view sample
By default, the changesets view displays only the changesets of the last 30 days in the repository. Being a view based on a Simple Query, the default date range can be changed using the “Advanced” button.
Notes: Since this view will only display changesets in one repository, if more than one repository is configured in the workspace, a dialog box will be displayed to select from which repository view changesets, as shown below:

Figure 29: Repository selection dialog
The changeset view contains a list of rows representing changesets created in the repository. For each row, the following data is displayed:
This picture shows the operations available when right clicking on a changeset in the list:

Figure 30: Changeset operations context menu
The changeset options are:
It opens a new view with the list of revisions belonging to the changeset. For more details on this view, see the “The revisions views” section of this guide.
The new branch base will already be set to the selected changeset and the parent branch will be the branch of the changeset.
Labels are used to mark a set of revisions with a special meaning. For example, it is common practice to label all revisions that form a specific code release delivered to a customer. Labels are normally applied to all items in a workspace.

Figure 31: Sample labels view
The labels view lists all labels in all repositories in the current workspace. This view relies on the Simple Query System to gather its contents from the repository, so it is possible to customize what content gets downloaded using the “Advanced” option as described in the “Common view elements” section of this guide.
The labels view has a special button (not found on other views) that allows the creation of a new label object. Clicking this button opens a dialog box to enter the information for the new label to be created, like name and comment. Clicking OK in this dialog will create the label. The new label will appear selected in the view.
If more than one repository is used in the workspace, the label creation dialog will display a list of repositories in addition to the name and comments text boxes. The list of repositories allows selection of the repository in which the label will be created. In the picture below, a label called “my_new_release” is to be created in the repositories “codice” and “importers”:

Figure 32: creating a label in a workspace with multiple repositories
Creating a label is the first step in using labels. The next step, in order for the label to be useful, is to apply it to the workspace content. This step is described in detail in the “Operations in the labels view” section of this guide.
Each row in the labels view contains the following information:
The picture below shows the operations available for labels from the labels view:

Figure 33: Label operations
The operations are:
Since normally all the items in the workspace are labeled, this view can contain a large number of elements.
In the case of a workspace that uses more than one repository, this operation will try to apply the label with the same name as the selected one on the other repositories. If such label doesn’t exist in any other repository, Plastic SCM will continue applying the available labels.
Tip: ensure that every item is checked in before labeling items to assure that the configuration marked is usable and that it is possible to load the label in a workspace.
Note: If the renamed label is loaded in the current workspace, the selector of the workspace has become obsolete. To solve this problem, right-click on the label recently renamed and select the operation “Switch workspace to this label”. This operation is described later on this section.
Tip: If you are looking for a way to make changes to a specific label, the correct way is to create a branch whose base is the desired label and then switch the workspace to that branch.
This option will prompt for confirmation before continuing with a dialog box asking for confirmation and, if the user decides to proceed, an automatic update of the workspace will be performed.
· Permissions: this operation displays the permissions dialog of the selected labels. Refer to the Plastic SCM Security Guide for more details on the security settings for labels.
The commit view allows the users to manage the checked out items, changed items, private items and ignore items in a single view, which is much more comfortable. The following figure shows all the options that this view allows to do.

Figure 34: The commit view
In addition to this, if you commit private items, those items and the parent items that are private are added and checked in automatically.
Additionally, you can add comments to the operation, typing them on the text box provided. Also, you can specify comments specified in previous operations by clicking on the button provided.
Finally, you can review the changes done in a task before committing it by clicking on ‘Compare changes…’, which will open the comparing tool, showing the differences between the previous revisions and the new revisions created.
The commit view is a powerful tool to allow the developers to review their changes before committing them.
This view displays in chronological order the history of an item. All the revisions of the file are displayed, together with the labels applied to each revision.

Figure 35: Sample item's history view
For each revision, the full revision name, creation date, associated changeset, the markers in which that revision is labeled, the user who created the revision, any comment and the list of markers applied is displayed.

Figure 36: Operations of a revision in the history view
The operations are:
The changed items view displays the items in the selected path that have been modified without being checked out. These items are drawn with a blue icon overlay and their status in the Status column is “Controlled / Changed”. Changed items can be selected in the view and directly checked in; it is not necessary to check them out first.
Warning: Checked out items can be shelved, while changed items cannot be shelved.

Figure 37: The changed items view
By default, Plastic SCM is configured to set read-only attributes (or to remove the write permission on non-Windows platforms). Plastic SCM can be instructed not to set the read-only setting on items by default. This behavior can be managed in the preferences dialog box. For more information, see the “Other options” section of this guide.
The information available in the changed items view is a subset of the information in the items view. For details on the contents of each column in the changed items view, see the “Columns in the items view” section of this guide.
Since the information displayed in the changed items view is a subset of the information in the items view, the operations are the same as described in the items view. See the “Operations available in the items view” section of this guide for details.
Private items in Plastic SCM are those that are not under version control. These items are regular files and directories inside a developer’s local workspace which are not available to other developers on other workspaces, as controlled items are.

Figure 38: The private items view
The information displayed in the private items view is a subset of the information in the items view. For more details on this information, see the “ Columns in the items view” section of this guide.
Since the elements in the private items view are items, the operations are the same as described in the items view. For private items, the most relevant action is adding to source control. For more details, see the “Operations available in the items view” section of this guide. An additional operation provided in this view is the possibility of showing or hiding the ignored items by clicking on the checkbox located in the upper part of the view.
The removed items view is used to access the list of removed items in Plastic SCM in order to restore (un-delete) one or more of them. This view displays a list of all the removed items in the repositories loaded in the workspace.

Figure 39: The removed items view
Important Note: An item can be deleted from a branch but not on other branches (For example, because those branches have not received the changes that deleted it, either because the branch with the item deleted has not been merged yet, or because they do not inherit from the branch/changeset of the deletion).
The operations for the removed items view are:

Figure 40: operations of a removed item
For more details on the 3D version tree, see the “The 3D version tree” section of this guide.
Notes: If Plastic SCM detects that there is an item with the same name in the restoring location of the item, it will inform the user and not allow to restore it.
The Code review window is especially valuable in task per branch or task per changeset environments, where every piece of functionality (new, bugfix, defect or whatever) is encapsulated in a single changeset or branch. This tool allows inspecting the code created or changed in that task, increasing the quality of that piece of code and thus the code of the whole system.
In the next few pages we will show how a user working on an item can generate a code review for the item/file and assign it to be reviewed by another user.
Let’s suppose that a user create a branch to do some changes, commit them and mark the task as resolved. Now, he or she wants that someone else, probably a senior developer or an expert in the issue that involves the task, inspect the code. So, the user creates a review for that code.
Figure 59 and Figure 60 illustrates two ways to generate a code review, from the changeset view or from the branch view.

Figure 41: Code review for a changeset

Figure 42: Code review for a branch
When clicking on the appropriate option shown above, the ‘Create code review’ dialog will appear. See Figure 43 for details of this dialog.

Figure 43: Create code review window
When the ‘Show diffs after creation’ check button is marked, a Diff with previous window will open, enabling the review with the previous version of the item, and adding comments to the lines on the actual version of the file as illustrated in Figure 44 and Figure 45.

Figure 44: Diff with previous - with no comments

Figure 45: Diff with previous with comments
In Figure 45 the senior developer that was assigned the review added some comments to the lines, and a blue comment tag is applied beside the line, be noted the number inside the tag (1 in this case) indicates how many comments are added for that line, the idea is that many comments can be added for each line.
Once you have added the first comment in a line, more comments can be added by clicking on the grey side of the arrow.

Figure 46: Clicking on the grey zone to add more comments to the same line
After that, you can edit the comments added on a single line by clicking on the blue arrow. If there are more than one comment, a dialog will show the list of comments that are contained in the single line.

Figure 47: Editing the comments of a line which has several comments
At the bottom of the Diff window, the comment list that was empty in Figure 44 is now populated with the list of comments. You can at any time Edit, delete comments from the comment list window.
The list of code reviews are shown in the ‘Reviews’ view. See Figure 48.

Figure 48: Code Review window
You can Open code reviews, change their properties (title, assignee, status) or delete them by right-clicking on a specific review. Pending reviews appear in a red background color.
When double-click on a shown created code review (in this case ModuleHelloWorld), the code review window will open as previously illustrated in Figure 45.
The purpose of the change statistics view is to highlight where code modifications are taking place. It is often useful to see what items changes a lot because, for example, a large file with many changes may be a sign that the file should be splitted into smaller more manageable chunks.

Figure 49: sample change statistics view
The information displayed on the Change Statistics View are:
# All
activity (revisions) on the year 2008 on current repository
find revisions where date between “1/1/2008” and “3/31/2008”
# All my changes since 2008 on current repository
find revisions where owner = “ME” and date > “1/1/2008”
# Activity on branch /main/feature2
find revisions where branch = “/main/feature2”
Refer to the Plastic SCM User’s Guide for more details on the Simple Query System.
Attributes are used to define user properties that will be applied to objects in the repository. For instance, branches or changesets that require review may have a “Needs review” attribute applied and, once they have been reviewed, a “Reviewed by” attribute with the developer who performed the review.
The attributes view defines the attribute types which are later applied to specific objects via the attributes tab in the extended options panel of the different views. For more details on applying attribute values, see the “The extended information panel” chapter of this guide. It is also possible to create attribute types and apply them to objects from the command line, which can be useful for automating certain operations.
Note: the attributes view may not be visible by default on the views toolbar in the main Plastic SCM GUI window due to the width of the window. The user may need to scroll the toolbar to the right in order to make the attributes view visible.

Figure 50: Views toolbar scroll buttons

Figure 51: Sample attributes view
The attributes view contains the usual information including: name, repository, owner and creation date, having the same meaning as previously described in other views.
The context menu operations available in the attributes view area are limited to adding new attribute types, renaming, deleting and setting the permissions on the attribute types. These work as expected and described in other views.
Attributes can be used in the “where” clause of the Simple Query System to filter results of any object. The fields used to set attribute conditions are “attribute” and “attrvalue”, the first being the attribute type name and the second being the filter value. Some samples of queries are:
find
changesets where attribute = “TaskStatus” and attrvalue = “Resolved”
find branches where attribute = "ReviewedBy" and attrvalue =
"David"
find labels where attribute = “Public Release”
These queries can be used in the different views (for instance the branch or changeset views) to get the list of branches that have attributes applied.
There is also a conditional format rule in the branch explorer view that allows specifying a branch filter in the “where” clause. This rule is especially useful in combination with attributes, to highlight items that have attributes applied.
For more details on the Simple Query System, refer to the Plastic SCM User’s Guide.
The repository view displays a list of the known repositories in the current server. It is possible to register more than one server in the same client. For more details, refer to the Plastic SCM User’s Guide.

Figure 52: The repositories view
For each row in the repositories list, only the repository name and the server are displayed.
The repository view offers a “Create new repository” button for adding new repositories. This button will display a dialog box like the sample shown below:

Figure 53: repository creation dialog
In the dialog box, a new name for the repository is entered, as well as the server on which the repository should be created. The server field will remember the last value that used.
When right clicking on a repository, this is the detailed list of operations available:

Figure 54: operations of a repository
Notes: It is important to change the workspace’s selector if it used the repository recently renamed. To do this, select the renamed repository, and then right click on it; select “View branches” and from the branches view change to the branch that you were using before the renaming operation was done. The selector will be changed accordingly.
For more details on deleting and reconnecting repositories, refer to the Plastic SCM Administrator’s Guide.
The workspaces view will display the details of workspaces on the local machine.

Figure 55: sample workspaces view
The workspaces view displays the workspace name and the path on the local computer where each workspace is located.

Figure 56: available operations for a workspace
This list of operations available in the workspaces view is also available by right clicking on the Workspace Status bar in the main GUI window of Plastic SCM.

Figure 57: workspace selector dialog
Once the selector rules have been set in the text box, the selector is confirmed with the Ok button. After setting the workspace selector it is generally advisable to perform an update operation to load the versions indicated by the new selector rules. This is automatically done after clicking Ok if the checkbox “Update workspace after setting selector” is checked.
For more details on the selector rules, refer to the Plastic SCM User’s Guide.
The revisions view is launched from other views (for example, the changeset view or the label view) and it displays a set of item revisions that match a particular criteria, i.e: revisions contained in a changeset, revisions labeled in a marker, and so on.

Figure 58: Sample changeset content view
Note: the set of columns of this view is frequently used in the Plastic SCM GUI to display revision information in different contexts (like the private or changed items views). Some columns might seem redundant in a particular view, but are useful in other views representing revisions as well.
This is the meaning of the columns:
The operations available in this view are limited to a small subset of those available in the items view. The meaning of these operations is the same as previously described in the items view section. For more details, see the “Operations available in the items view” section of this guide.
The annotate view window is specially valuable in multiuser environment, when multiple users are working on the same item or file, and a convenient tracking system is desired to review the changes made to that item or file, by whom, when, and what has been modified.
In the next few pages we will show how two users modify, add, delete lines from a project file controlled by Plastic SCM, and how we can track every single modification history of that file through the annotate view.
Let’s suppose that a user, mauker, creates a file. Then, the user miller adds a line to the file and checks it in. Finally, the user luis will also edit the same file and add another line.
Note that for each check in the revision column number is increased. Figure 59 illustrates the Annotate menu-item which was brought forward by right-mouse click the controlled file in the Plastic SCM GUI.

Figure 59: Annotate menu-item from Plastic GUI
Figure 60 Illustrates the Annotate view window that shows line by line which user modified the file and in which version of the file the modification took place.

Figure 60: Annotate window - Full description
Imagine that for some reason (let’s suppose that you want to integrate a specific revision or study the history of an item or whatever) you want to know which revision of a specific file or directory is loaded in a specific configuration of branch, label or changeset. Or let’s suppose that you want to study the general structure of the repository in a specific branch, label or changeset. In order to do this, you have two options: you can change the selector to that configuration and update your workspace, which will take more or less time depending on the items that need to be updated or, on the other hand, you can use the selector explorer view.
The selector explorer view allows you to study the structure of a repository in a specific configuration without downloading any revision to your workspace. This way you can query the repository faster.
To open the selector explorer, right click on a branch, label or changeset and select the option “Browse repository on this branch…” (branch, changeset or label, depending on the case).

Figure 61: Browse repository from a branch

Figure 62: Browse repository from a changeset

Figure 63: Browse repository from a label
A view like the following will be opened:

Figure 64: Selector explorer
The contents shown in the main area are those revisions loaded in the selected configuration (branch, changeset or label). You can change manually the selector shown by clicking on the Selector Editor button; this way the user has plenty of flexibility to explore the content of a repository.
Despite this view is quite similar to the items view, you can only perform read-only operations with the items shown in the Selector Explorer, such as: view the history, open the 3D tree, diff with other revisions, etc. You cannot check out or check in revisions from the Selector Explorer view.
As you can see, the paths that appear in the Selector Explorer are not workspace paths (C:\mywkspace\...) but server paths, where ‘/’ is the root item and the rest are child items of the root path.
The branch explorer view is a powerful navigable diagram that represents the evolution of changes and the branch hierarchy. The following picture shows a sample of the branch explorer:

Figure 65: Sample Branch Explorer view
In this view, there is a toolbar at the top and a diagram area representing the branch hierarchy and evolution. Additional panels can be shown or hidden to access their functionality using the buttons on the toolbar.
Note: Since this view displays a single repository, if more than one repository is used in the workspace, a dialog box appears for repository selection to be displayed in the view.

Figure
66: Repository selection dialog
The diagram in the branch explorer represents several objects of the repository, represented by a single view. Branches contain changesets and changesets are sorted according to their creation date. Branches are in a hierarchy and they are drawn accordingly.
By default the branch explorer will only display the last 3 months of repository activity. However, this interval can be changed in the display options panel, as described in the “Toolbars and panels” section of this guide.

Figure 67: Branch Explorer diagram axes
In the diagram, the horizontal axis represents time. The columns of the Branch Explorer are days, and each day contains the changesets for that day. The vertical axis represents the branch hierarchy, where child branches are below their parent branches. Changesets are drawn horizontally in their order of creation, inside the column for the day when they were created and vertically inside the branch to which they belong.
Branches and changesets can be selected by clicking them. When selected, their properties will appear in the Properties tab of the “extended information panel”, when it is visible (see “The extended information panel”).
Right clicking on a branch or changeset also selects it and displays the context menu with the available operations. These operations are the same described in the branches and changesets views, respectively. For more details on the operations available for branches or changesets, see the “Operations in the branch view” section or the “Operations in the changesets view” section of this guide.

Figure 68: Branch Explorer with a branch context menu
Double clicking on a branch or changeset has the same effect as selecting the default operation, similar to the behavior of the branches or changesets views.
There are two other types of objects displayed in the Branch Explorer: links and labels.
Labels are represented with a vertical green line starting in the changeset loaded in the workspace when they were applied.

Figure 69: Label representation in the Branch Explorer
It is important to note that labels cannot be selected by clicking them with the mouse. However, labels can be a search result and can be navigated as with it is done with branches (see “Navigator panel”).
Links are the other type of object that can be displayed in the Branch Explorer. Links represent the relationship between two objects, one of them is the source and the other one is the destination. The following figure summarizes the types of links that can be found in the Branch Explorer:

Figure 70: Branch Explorer link types and colors
This is an explanation of the possible link types:

Figure 71: Merge link sample in the Branch Explorer
The merge link in Figure 71 has been generated in the following scenario:
Note: The merge link is only drawn in the Branch Explorer once the items are checked in.

Figure 72: Branch base links in the Branch Explorer
The color of the link changes when it is clicked and becomes selected in order to distinguish that link from the other links. An information box will pop up at the click point detailing information about the link, like its source and destination objects. This is a convenient mechanism to find the source or destination of a link that is larger than the current visible area.

Figure 73: Sample link information box in the Branch Explorer
The diagram area can be scrolled using several mechanisms:

Figure 74: Scrolling the diagram with the mouse

Figure 75: Branch Explorer navigator
The navigator also displays a representation of the branches in the complete diagram. This preview also displays colored branches when they are a search result or conditional format is applied.
Clicking anywhere on the navigator panel makes that zone visible and dragging the cursor also scrolls the visible area. If the diagram is scrolled using any of the mechanism described above, the blue box is moved to the visible area inside the diagram.
The Branch Explorer can offer additional information about the selected elements and also includes some navigational aids. The top toolbar contains the basic zoom and search controls as well as the buttons to toggle additional panels. This picture summarizes the contents of the toolbar:

Figure 76: Branch Explorer top toolbar
The elements in the toolbar are:

Figure 77: Branch Explorer search controls
Behavior of the controls:
· Search text box: enter the search text here. Pressing the enter key or clicking the magnifying glass in the text box will highlight in blue color the branches and labels that contain the entered text. The diagram will scroll to make the first search result visible.
· Go to previous/next search result buttons: these buttons navigate the search results selecting and scrolling the diagram as needed to make the current result visible.
· Clear search result button: this button clears the search results from the diagram and the text from the search text box. It has the same effect as clearing the text in the text box and hitting enter.
The Branch Explorer provides three additional panels that can be toggled with the buttons on the tool bar as explained above. Panel visibility is saved from session to session, so when a Branch Explorer view is closed and a new Branch Explorer view is opened, or the GUI client itself is closed and re-opened, the Branch Explorer zoom and visible panels are restored, but the settings on each specific panel are preserved.
The navigator panel is an aid to move around the diagram. See the “Scrolling” section of this guide for more details on the navigator usage.
The statistics panel displays a chart with the number of changesets created per day. A sample is shown in the following picture:

Figure 78: Branch Explorer change statistics
In the chart, a column representing the number of changesets created that day is displayed for each day in the period loaded of the Branch Explorer. Moving the mouse over the columns displays a tooltip with the data and the number of changes.
The extended options panel offers additional options and information. When visible, it is located on the right side of the Branch Explorer. This panel has several independent panels within it that can be switched like tabs by clicking on their header.

Figure 79: the extended options panel in the Branch Explorer
When a tab title (header) is clicked, it becomes the active tab and hides the previous one. The tabs are:

Figure 80: Branch Explorer in visibility edition mode
When the button is pressed, a short description of how the editor works is shown:
Note: new child branches of that branch will not be hidden by default.
Note: branches hidden in the Branch Explorer are also hidden in the branch view.

Figure 81: Sample conditional format tab in the Branch Explorer
The rules are displayed as a list in the central part of the tab. Several rules can be applied simultaneously to the diagram. A new rule is added with the “Add Format Rule” button, which displays a menu with the available types of rules, as detailed here:
· Simple query rule: this rule contains a text box that allows specifying conditions with the syntax of the WHERE clause in the Simple Query Language, as if a “find branches” query would be issued. This means that this filter is the same as performing a “find branches where…” query and assigns a color to the resulting branches in the diagram.
Note that only the conditions that would go to the WHERE clause in the query need to be introduced in the rule. For instance, to highlight all the branches in which I am the owner, the rule filter would be:
owner = ‘ME’
since the Simple Query to retrieve that list of branches would be
find branches where owner = ‘ME’
For complete details on the Simple Query System, refer to the Plastic SCM User’s Guide.
· Non-integrated branches rule: Highlights with the selected color the branches that have changesets not integrated in any other branch. A branch will match if it has one or more changesets after an outgoing merge link. If those changesets have not been integrated in any other branch, the branch is considered as “not integrated”.
· Branches used in the workspace rule: a simpler rule to highlight the branch or branches used in the current workspace. Only the specific branches pointed to in the workspace area highlighted, but not the parent branches of those highlighted branches. For instance, if the current workspace branch is /main/feature1/task019, only that branch will be highlighted. Its parent branches /main and /main/feature1 will not be highlighted.
When the rule is created, it is added to the list with a default color. The color for the rule can be changed by double clicking on the rule’s color tag. A standard color selection dialog will pop up and a new color for the rule can be chosen.
Rules can be deleted with the red X button that each of them have on the right.
Once the rules have been configured, clicking the apply button will perform the queries to the server and calculate the results, applying the defined colors to branches matching the criteria.
Several views in the Plastic SCM GUI share a common control containing information panels organized in tabs. These panels are accessible with the “Extended information” button in the view and appear on the right side of the view.

Figure 82: Extended information panel in a view
The top bar on the panel provides access to the available tabs of the view. If the tabs’ text is longer than the visible width of the panel, two scroll buttons will appear so that the complete list of tabs is accessible. The ‘X’ button closes the panel.

Figure 83: Tabs in the extended information panel
The following sections will describe the tabs available on the different views.
The properties tab will display additional details of the selected object, normally a branch or a changeset.

Figure 84: Sample branch properties tab
This tab allows changing the comment associated to the selected object by simply clicking on the comments box and typing the changes. As soon as the comment text changes, a save button appears.

Figure 85: detail of the "save" button in comments edition
To save the modified comment, click that button. The user does not need to perform any actions to discard the changes to the comment, simply click on another object in the view and the properties for that object will be displayed instead.
The attributes tab displays the attributes applied to the selected objects. While attribute types are created in the attributes view (see “The attributes view” section of this guide for more details on creating attributes types), they are applied to objects in this tab.

Figure 86: Attributes tab in the extended information panel
The tab is composed of the following elements:

Figure 87: Applied attribute components
Each entry in the list is built from the following components:
· Attribute name
· Attribute value that can be edited if clicked with the mouse. When that happens, the value box becomes a dropdown list where possible values of the attribute are displayed. A new value can be selected from the list or typed in the text box.
· Confirm attribute edition button: used to save the changes made to the attribute value.
· Delete attribute from current object button: used to remove the attribute from the current object.

Figure 88: The apply attribute dialog window
The name field is used to select the attribute to be applied. Click the … button to select the attribute type from the list of available types.
The value field is used to write the attribute value. When clicked, it can also display a dropdown list with the values that this attribute already has in other objects. If the desired value is there, click to select it, otherwise, type it and click Ok to add the attribute.
The task info tab displays information for the task associated with the selected object (either a branch of a changeset), only when a third party issue tracking system has been configured. See the “Integration with third party issue tracking tools” section of this guide for more details on configuring the link to a supported issue tracking tool.

Figure 89: Sample task information provided by a third party issue management tool
For more information on this tab, please refer to the Plastic SCM Extensions Guide, where an in-depth description of the options available on issue tracking integrations is available.
Reviewing the code history is one of the main functions of a version control tool. Plastic SCM provides a powerful change review mechanism for ease of visualization to optimize the review process.
The review interface compares two sets of revisions. The Plastic GUI offers the review operations as context menu operations for a variety of objects including branches, changesets and labels. The operations normally start with “Compare…” and will compare the set of item revisions contained in the selected object with other set of revisions. The following sections describe what can be compared in the Plastic SCM GUI.
More information about branches operations in “Operations in the branch view”.
More information related to changeset operations available in the section “Operations in the changesets view”.
More information about label operations in “Operations in the labels view”.
This operation shows all the changes made in the workspace that can be checked in. This can be a good method to review the changes done before checking in them, but Plastic SCM provides a useful tool which is better to do this, the Commit View (see “The commit view”).
More information about items operations in “Operations available in the items view”.
This Interface has two main areas, one for the items that will be compared, and another for displaying the differences between the selected items.

Figure 90: Review interface main areas
The areas are described in detail below.

Figure 91: Items to compare in the review interface
This area has several components, as depicted in the figure above:
· Item list navigation buttons: buttons to navigate to the first, previous, next and last items in the tabular list.
· “Hide elements list” button: toggles the visibility of the items list, leaving more space available for the differences area. Clicking it again displays the panel back.
· “Show only changed elements” button: checkbox controls whether all items being compared are listed or only those that have real changes. Since the review is always comparing two set of revisions, it is possible that some items have not changed from one set to the other. This is a common case for instance when comparing the contents of two labels, where both of them have been applied to all the items of the workspace, but it is very unlikely that all the items change.
· Items list filter text box: a filter box similar to the one found in the rest of the views. If anything is typed, only those rows containing that text will be displayed in the list of items. Clearing the text in the box makes the view display all items again.
· List of items being compared: for each row, the following information is displayed in columns:
o Path: the full path to the item.
o Revision on the left: the full revision including branch and revision number inside the branch.
o Owner (left revision): the user that created the previous revision of the item.
o Revision on the right: this is the branch and revision number of the revision created. This one contains the changes made on the selected object that opened the reviewing tool.
o Owner (right revision): the user who made the change.
o Description: short text describing the type of change made. It can be any of:
§ “The revisions are different”: a change has been made on an existing item and the differences can be displayed clicking on the item.
§ “Only in <object> revision”: the item has been added in the object, so it is only present in the object.
§ “Only in previous revision”: the item has been deleted in the object being browsed so it was available in the previous revision but it does not in the object.

Figure 92: Item differences in the review window
For more details on the options and usage, see the Differences Tool section of this guide.
This window offers the ability to review changeset by changeset the changes that occurred on the branch. A sample of this view is displayed on “Figure 93: Changeset walking ”.
This is a simple and convenient way of reviewing the changes made on a feature or task branch. When a developer groups related changes together in changesets, this view will tell the story of the implementation of the feature or task.

Figure 93: Changeset walking window
This window is very similar to the normal review window described in the previous section, with the addition of a list of changesets on the left side. This list consists of a chronological list of the changesets checked into the branch. For each changeset, the number, date and comments are displayed. Clicking on a changeset in the list makes it the current changeset, and the items modified in it will be displayed in the adjacent area.
The 3D version tree is the Plastic SCM’s visual representation of the evolution of an item’s history. The history of an element can contain many branches and it can become overly complex viewing 2-dimensional representations of the version tree. In addition, merge links further complicated 2-dimensional views.
Plastic SCM has introduced a new method of representing a version with merge traceability by adding a 3rd dimension to ease the visualization of the hierarchy and the links between revisions.
While the branch explorer represents a global view of the evolution of the whole code base, the version tree represents the particular history of a single item. If that item only has 2 revisions, then only 2 revisions will be displayed, independently of the number of branches in the repository or the revisions to other items.
The following sections describe the components of the 3D version tree and its operation.

Figure 94: Basic elements in the version tree
The elements that can be found on the 3D version tree of an item are:
When a revision is clicked, it is drawn in yellow. Two revisions can be selected by clicking on one and then, holding the Control key (or Command in Mac OS X) and clicking on the second revision. This can be used to show the differences between two revisions, by clicking on ‘Diff. selected’ on the upper-left side of the window.
When the revision is clicked, information such as the changeset number, revision comment and additional details are printed at the bottom of the window.
If a revision is checked out, it is drawn in yellow instead of blue and its version number is replaced by CO (Checked Out). A sample of this state is shown in the following picture:

Figure 95: Sample checked out revision in the version tree

Figure 96: 3D version tree toolbar
The components of the version tree toolbar are:
It is also possible to navigate to a specific revision by entering its full version specification and pressing enter or clicking the right arrow button. The version tree will automatically scroll to the specified revision.
The 3D version tree is operated with the mouse and some modifier keys. The options are:
The merge operation allows a user to mix changes done in a pair of revisions. The typical scenario is the integration of a branch into the main branch or when two users are working on the same files and both want to have the changes done by each other without missing their own changes.
Plastic SCM allows a user to mix changes done in changesets, branches, and labels, with the condition that the destination object must be a branch, because only a branch can contain checkouts.
The merge dialog box appears when a merge from branch or a merge from label operation is invoked. The merge dialog box also appears when a cherry pick or subtractive merge is performed. The following picture shows a sample merge dialog:

Figure 97: Sample merge dialog
The dialog contains an information area where the source of the merge is detailed. The source can be a branch, a changeset or a label. The source revisions will be merged with the revisions loaded in the current workspace.
Important: the merge destination is always a branch, which is the only object that can contain check outs. To work on a branch it is necessary to load it in the workspace, so, in the end, the destination of the merge is the contents loaded in the workspace. So, it is very important to have the workspace correctly updated before a merge operation, otherwise the merge candidates and / or the contents to merge could not be the correct ones, probably.
By default, Plastic SCM will try to automate the merge process without requiring user intervention, which simplifies the operation hugely. The merge process will use the merge tracking information in the repository (the green arrows shown in the 3D version tree, see “The 3D version tree”) to ensure that a merge case that was resolved in the past does not require resolution again. The automation attempts to minimize the number of conflicts that a user has to resolve manually.
It is possible to perform a merge from a branch and to also specify a label, meaning that only the revisions on the branch marked with the label will be processed to determine if they need to be merged.
Plastic SCM differentiates between text and binary files as well as directories to decide the best merge strategy to apply. Text files and directories can be processed line by line to reconcile the changes made, whereas binary files can only be merged as a whole.
When the merge process is launched, it calculates the items that will need to be merged, known as merge candidates. Those candidates are displayed in list form in the dialog. For each of the items to be merged, the following information is displayed:
Actions available to complete the merge:

Figure 78: merged advanced options
o Select merge contributor section: this options controls how the changes from the contributors (source and destination) are handled to generate the merge result.
§ Take changes in the “merge from” branch (and discard changes in my workspace): the merge result will have only the changes from the merge source. If changes have been made on the destination on the same files, those will be discarded. This means that the changes on the source will be taken and no questions will be asked.
§ Take changes in my workspace (and discard changes in the “merge from” branch): the merge result will discard the changes of the source and keep the content of the current workspace (the destination).
§ Merge changes in my workspace with the changes in the “merge from” branch: the result of the merge will have the changes of the source and destination. This is the default option.
o Merge tracking section: this section is only enabled when performing a cherry pick merge.
§ Ignore merge tracking: this option covers the scenario where a changeset has been merged and then it has been de-integrated using a subtractive merge. If the change needs to be merged again, no candidate items will appear in the dialog, since they have been already merged before and the merge links were created.
Checking this option will ignore the previous merge links (i.e. the merge tracking) so that all the revisions in the changeset will be evaluated as merge candidates and can be merged again.
o Conflict resolution section:
§ Automatic merge if only one contributor changes: Plastic will automatically merge an item if it’s only changed on the source or destination, but if it has been changed in the source and destination, the merge tool will be displayed so the user can review the changes.
§ Automatic merge if only source changes: Plastic SCM will automatically merge the changes if come from the source. If there is any change on the destination, the merge tool will pop up and display those.
§ Automatic merge if only destination changes: Plastic SCM will automatically merge the changes if they are on the destination. If there is any change in the source, the merge tool will popup and display them.
§ Merge changes from both contributors: this is the default option since it performs the most automatic conflict resolution.
Right clicking on merge candidates displays some operations to review the changes made on the merge candidates. These can be helpful in the process of solving a merge conflict.

Figure 98: items to merge operations
The options are:

Figure 99: item candidate contributor revisions
More information about the differences tool in “The differences tool”.
Important: once the merge operation has been performed, the involved items are checked out. It is strongly recommended to review the merge results and verify that the result obtained is the expected one. Then, and only then, it is necessary to check in the changes in order to create the merge link and this way avoid that the items merged are not detected as merge candidates again.
When a conflict cannot be resolved automatically, the Plastic SCM merge tool will pop up, displaying the involved revisions and the result of the merge. The user will be able to navigate the changes made by the contributors and select the proper content to resolve any conflicting changes. This is a sample picture of the merge tool:

Figure 100: sample merge tool
The merge tool is divided several areas, as shown in the following figure:

Figure 101: Main areas of the merge tool
The top toolbar is used to save the results of the merge as well as for controlling navigation through the changes and options.

Figure 102: toolbar in the merge tool
This is a detailed description of the available options:
Note: The selected change can be focused by clicking on it with mouse in the different text boxes.

Figure 103: Moved code detection parameters
By editing these values it is possible to decide how similar have to be two code fragments to identify them as the same code moved, in percentage. The second parameter means the minimum number of lines that a fragment of code has to have to be taken into account in the moved code computation.
The three files on the top represent the source (left), base (center) and destination (right). These files are scrolled as a whole using the scrollbar on the right. When a change is detected between the versions, it is highlighted in a different color.

Figure 104: difference highlight in the merge tool
In the merge tool, the base revision is compared with the source and destination revisions. This means the base file box will highlight the differences with both files, while the source file box will only highlight the differences with the base (in the same way, the destination file box only highlights the differences with the base).
The source, base and destination boxes are read only and their contents cannot be edited.
The content of each of these boxes are:
Source and destination revisions are also known as contributors.
The navigation of these files together with the result file is controlled with the scrollbar on the right side. The scrollbar also displays gray and red areas, representing where the conflicting changes in the result file are.
The result box in the bottom will contain the final result of the merge. The content of this box is saved with the “save” buttons on the toolbar. This text box can be edited, in contrast with the source, base and destination.
A conflict is just a change made on one or more of the involved files in the merge. If the change has been made on the source and destination revisions affecting the same set of lines, this conflict needs user intervention to be resolved. These are marked in red.
Any other case where only the source or the destination revisions contain changes is a conflict that can be automatically resolved. This type is marked in gray. The following picture illustrates both types of conflicts:

Figure 105: automatic and non-automatic conflicts in the merge tool
In order to complete an item merge, it is normally necessary to resolve all the non-automatic conflicts. These can be navigated using the buttons in the toolbar:
![]()
Figure 106: non-automatic conflict navigation buttons in merge tool
Clicking the next/previous buttons scroll the files to focus on the conflicts. Non-automatic conflicts will involve a change in both the source and destination revisions, on the same set of lines.
To solve a non-automatic conflict, the user must decide between the changes on the source, on the destination or neither of them. By default, the result file will contain the three options together (the content of the source change, the original code from the base and the destination change). Use the contributor buttons to toggle the contents of that contributor in the result file.

Figure 107: a non-automatic conflict sample in merge-tool
Clicking on the source (blue) contributor button removes the content of the source in the result. The same applies for the base and destination contributors. To put a contributor back, click on the button of that contributor again. For instance, the example in the above figure had by default the three contributors selected. After clicking on the source and base buttons (on the top), these are removed from the result, as shown in the next picture:

Figure 108: the previous conflict sample, with base and source contributors deselected
When the result cannot be set to the right content simply by selecting and deselecting contributors, it is possible to manually edit the result file as a regular textbox.
Once all of the non-automatic conflicts have been resolved, click on the “Save and exit” button so that the merge result is saved and the merge process continues with the rest of the items.
Notes: the merge tool is available tool in the Plastic SCM client folder, or executing simply ‘mergetool’. This is very useful to resolve merges ‘offline’, that is, saving three revisions of a file (source, base and destination) and resolve the merge by using this tool.
Let’s suppose that the changes done in a file are not related to adding lines, removing lines or modifying lines but simply with lines of code that have been moved from one place to another, as a result of a refactor operation. The merge tool can detect that kind of situations using a powerful tool, the XMerge, that detects this way moved code so that the user can handle it and manage it easily.
When the merge tool detects a situation like the described above, it shows the following button in the results panel:

Figure 109: The XMerge button
If you click on that button it will appear a dialog in which this situation will be explained and after that the text detected as moved will be selected automatically in the results panel and it will be proposed as a conflict:

Figure 110: XMerge with this selection
When clicking on ‘XMerge with this selection’ the merge tool will open another merge tool window showing only the moved code. Now, the merge tool can detect conflicts inside the moved code block and the user can decide which contributor is the correct one. The conflicts are resolved, then, as explained in a previous section called “Resolving a non-automatic conflict”.
The merge tool is also used to display simple differences between two revisions. The differences tool is a simpler version of the merge tool, where only two revisions are compared.

Figure 111: sample differences window
The files are not editable in the differences tool. Options are the same as already described for the merge tool in the “Navigation and options” section of this guide.
The differences tool can detect moved code, as the merge tool does. To do that, it is possible to configure the moved code detection parameters as explained in the section “The toolbar”.
If the differences tool detects moved code, it will show something like the following:

Figure 112: moved code detection on the differences tool
Clicking on the button with two boxes inside and the arrow between them will scroll and focus the corresponding moved code in the other contributor.
Clicking on the button with the window inside will open a new differences tool window that has only the moved code; this differences tool window can detect differences inside the moved code block.
When displaying the differences between image items, the binary merge tool is used to present a special view for comparing images.

Figure 113: Binary merge tool comparing images side by side
The image diff tool can compare the two images by displaying them side by side or blended together. When blended together, the blending can be controlled with the slider on the top, making one image more visible than the other. The mode can be chosen with the buttons in the toolbar.

Figure 114: binary merge tool comparing images in blend mode
The user can zoom in and out, as well matching larger images to fit within the visible area of the window using the zoom controls of the toolbar.
For binary files, the regular merge tool is not suitable since it is designed to handle text files. There is a special tool to merge binary files. When a conflict arises merging branches with binary content, the binary merge tool is displayed.

Figure 115: Sample binary merge tool.
The result of the binary merge will be one of the files involved, i.e. the base, the source or the destination revision. To choose which of the contributors will be the result, simply click on the appropriate “Ancestor file”, “Source file” or “Destination file” buttons.
When the document to merge is an image file, a preview is displayed for each of the revisions on the binary merge tool.

Figure 116: sample bin merge tool with an image item
Since the binary merge tool only allows choosing one of the files as the merge result, some changes to the result file may be required to assure the correct merge result. First, finish the regular merge operation. When the binary file with the conflict arises, the binary merge tool will pop up. Choose the version that is closest to the desired result and “save and exit”. The merged files will be left checked out and those check-outs will now have the merge traceability. Modifications to the merged items can be made to achieve the final desired result.
The preference dialog box sets the configuration options the Plastic SCM GUI operation. Preferences are organized in several tabs with multiple options for each of the functional groups. Each option is described in detail in this section.
The general options tab serves as the entry point to the client configuration wizard. Click on the logo button to launch the wizard. The steps in the wizard are described in the Plastic SCM Administrator’s Guide; please check the client installation section for details.

Figure 117: Differences and merge options in the preferences dialog
This tab configures the default differences and merging options. The options set here will be used for differences and merge tools operations. For a detailed explanation of each option, please see the “Navigation and options” section of this guide.

Figure 118: Comments options in the preferences dialog
The options in this tab determine which operations should display the comments window. The default setting is only the check-in operation requests comments.
When the comments dialog box is displayed, it has a checkbox to determine future appearances. If it is unchecked in the dialog box, it can be restored in this tab.
The last option, ‘Show empty comments warning’ is used in the Commit view, when the user clicks on Check-in and there is no comment stated in the text area provided. See “The commit view” for more information.
A pre-filled comment created using the comment’s auto-text feature can be set. The values for comment auto-text are:
Clicking on the question mark on the right displays a message box with the possible variables.

Figure 119: Other options in the preferences dialog
This tab offers a collection of options:
Notes: It is recommended to mark this option when the user is a novice, since having the workspace correctly updated is essential before performing some operations (for instance, a merge).
When the setting is unchecked, the behavior changes so that files are always writable. When a file is changed without being checked out, it is marked as “changed” and can then be checked in as if it were checked out.
The setting is on by default meaning that files are set as read-only, since this is needed by some IDEs.
This tab configures the connection with a third party issue tracking tool. The details of this configuration are described in the Plastic SCM Extension Guide. Please refer to that guide for detailed information.
This tab defines the list of server profiles to be used during a replication operation. For a detailed explanation of this tab, refer to the Plastic SCM Distributed System Guide, in the “Managing remote authentication” section.
Plastic SCM supports a Shell-Extension functionality that integrates powerful Plastic SCM functionalities directly into windows’ Shell by means of context menu options, which will add more flexibility to the work of the developer/normal user.
This chapter will explain how to use the GUI of Plastic SCM views and operations from the Shell Extension. To get further information about the different Plastic SCM views, please take a look at the previous chapters of this document.
To use the Shell-Extension the user is assumed to have successfully installed the Plastic SCM client.
The Plastic SCM Shell-Extension will successfully integrate into Windows Shell in the following versions of Windows:
· Windows XP
· Windows Vista
· Windows 7
· Windows 2003
· Windows 2008
For Plastic SCM installation instructions and requirements see the Admin-guide document.
After the user have installed the Plastic SCM client and successfully configured it to connect to the Plastic SCM server, many Plastic SCM operations will be accessible through a context menu by simply right-clicking on the Desktop window or inside any open windows file manager (Windows Explorer).
See Figure 120 and Figure 121:

Figure 120: Context menu from Desktop

Figure 121: Context menu Windows Explorer
As in the Plastic SCM client GUI, when controlled file status are modified (check in, check out, etc.) a small icon within the file icon is updated to reflect the status of the file. See Figure 122:

Figure 122: File status icon
In this section we will briefly discuss the accessible Plastic SCM operations from the context menu; please note that as any other modern context menu item, the Plastic SCM operations are accessible when the operation is logically enabled, otherwise it is inaccessible or grayed-out.
For instance, in Figure 121 a private file or in other words uncontrolled file will have the Add context menu item activated, but as soon the file is Added and Checked-in to Plastic SCM control, the Add item is grayed-out and a bunch of other operations are now available. See Figure 123:

Figure 123: Context menu after Add and Check in
Table 1 summarizes the functionality of each submenu in the Plastic SCM context menu.
|
|
Create workspace: will open the new workspace creating window. |
|
|
Refresh status: will reload the status of every item shown in the explorer. |
|
|
Preferences: Will open the Plastic SCM preferences window. |
|
|
Disable extension: will disable the extension see next screen-dump. |
|
|
Enable extension: Will activate the Shell-extension. |
Table 1: Context menu basic operations
From windows explorer and when the user right-mouse click a file/folder already controlled by Plastic SCM an extended context-menu is displayed as illustrated in Figure 123.
Table 2 summarizes the functionality of each submenu in the Plastic SCM context-menu.
|
|
Add: Will add an uncontrolled or in Plastic SCM terminology “Private” file to the repository so that they are traced and their evolution is recorded. The option is grayed-out because the file is already added and checked in. |
|
|
Update: The Update operation downloads files and directories from the repository in the server to the workspace in the developer machine. Update forced: will force the download of the items indicated by the workspace selector, regardless of current workspace content. |
|
|
Diff with previous: Will compare the differences of the current file revision with the previous one. |
|
|
Checkin: will ‘check-in’ or commit the changes made to an item in the Plastic SCM server. Checkout: Will checkout an item making it modifiable. Undo checkout: will undo any changes made to a checked out item. |
|
|
Rename: Will change the name of the item. If it’s a controlled item, its parent directory is checked out since this option doesn’t really change the item itself but its containing folder. Move: Will move the selected item from its current folder to the specified folder. A folder selection dialog is displayed so the user can choose the destination folder. Remove: Will remove an item. The parent folder will be automatically checked out and the item removed from the folder. A dialog prompts if the item is to be removed also on disk or not. |
|
|
History: will open a new view with the temporal evolution of the selected item. Version Tree: will open a new dialog with the 3D version tree of the selected item. |
|
|
Permission: will display the permissions dialog for the selected items. |
|
|
Refresh status: will reload the status of every item shown in the explorer. |
Table 2: Context menu extended operations
The following is the description of the context menu that appears when you right-click on a blank location within a workspace:
|
|
Update: will update the workspace from the repository. It checks if the selected items contents need to be downloaded from the repository to match the configuration of the workspace. Pending changes: Will open the Pending Changes window, which indicates for instance, if some items are still not checked-in. Branch explorer: Will open the Branch explorer which will display the hierarchy of the branches. |
|
|
Branches: Will open the branches window, which will show detailed information of the branches, like which repository the branch belongs to, owner, child branches etc. Labels: Will open the Labels window, where you can view, create apply Labels to your workspace. Changesets: Will open the changeset window, showing the version groups of items in changesets. Attributes: Will open the Attribute window to view, create and apply attributes. |
|
|
Reviews: Will open the Code Review window, which will show the reviews that have been applied to the branches/changesets. Change Statistics: Will open the Change Statistics window which will present the user with graphical report representation of the number of changes performed on an item in the repository. |
|
|
Repositories: Will open the Repositories window, where you can view, create or delete a repository. Refresh status: will refresh the content of the current location. Preferences: Will open the Plastic SCM configuration wizard. You can also change many settings for the Plastic client. Disable extension: Will disable the extension. See Table 1 for screen-shots. |
Table 3: Plastic Context menu within a workspace
For a detailed description regarding the menu items in the context menu, please see the GUI guide.
In this section, we will work through the process of starting a project, adding some files to it, adding the files to the Plastic SCM control ci, co etc. operations.
To start with we will create a workspace on the local computer, this is easily achieved by bringing the Plastic SCM context menu forward with a right-mouse click and choosing Create workspace; the New workspace window will pop-up. See Figure 124:

Figure 124: New workspace
Here we created a workspace called wksProject1 and the workspace path (or folder) is in C:\Projects\wks\ProjectShell. The repository server in this case we use the default repository on the local machine.
Now we can copy our project files to the workspace folder, be aware just copying the files to that folder will not mean that they are controlled; they need to be added to Plastic SCM version control. As soon the files are add to Plastic SCM and checked in with their first revision, the file icons will be tagged with a green mini-icon as previously illustrated in Figure 122.
Figure 125 shows a project file copied in the workspace, note the status of the file is private (not under Plastic SCM control).
Figure 126 shows the file in Windows Explorer as a normal file, with no change to its icon.

Figure 125: Private file in Plastic SCM GUI

Figure 126: Private file in Windows Explorer
From within Windows Explorer we can add the file and perform a check in operation, the file will be under Plastic SCM control and a first revision of the file will be saved into the repository. Figure 127 shows the controlled file with the green icon tag.

Figure 127: Controlled file in Windows Explorer
Remember to check in the parent directory, as it has been checked out when the file was added to Plastic Repository.
Figure 128 shows the directory before and after the check in.

Figure 128: Directory in Win-Explorer before and after check in
From now on, all the Plastic SCM operations on the controlled file are similar to the one performed from the Plastic SCM GUI.
Figure 129 illustrates the Checked-in file with at least two revisions, and we are performing from within Widows Explorer the Diff with previous and view version tree as shown in Table 2

Figure 129: Controlled file with multiple views