Table of Contents

1      Starting up the GUI 1

1.1       The main screen. 1

2      GUI views. 6

2.1       Common view elements 6

Selecting elements in table views 9

Operations in the views 9

2.2       The items view. 10

Columns in the items view. 11

Operations available in the items view. 13

2.3       The branches view. 20

Columns in the branch view. 20

Operations in the branch view. 21

2.4       The changesets view. 29

Information displayed in the changeset view. 30

Operations in the changesets view. 30

2.5       The labels view. 31

Information displayed in the labels view. 33

Operations in the labels view. 33

2.6       The commit view. 35

2.7       The item history view. 36

Operations in the history view. 37

2.8       The changed items view. 38

Information displayed in the changed items view. 39

Operations in the changed items view. 39

2.9       The private items view. 39

Information displayed in the private items view. 40

Operations in the private items view. 40

2.10    The removed items view. 40

Information displayed in the removed items view. 40

Operations in the removed items view. 41

2.11    The code review. 41

2.12    The change statistics view. 46

2.13    The attributes view. 47

Information displayed in the attributes view. 48

Operations in the attributes view. 48

Using attributes in queries 48

2.14    The repository view. 49

Information displayed in the repository view. 49

Operations in the repository view. 49

2.15    The workspaces view. 51

Information displayed in the workspaces view. 51

Operations in the workspace view. 51

2.16    The revisions views 53

2.17    The annotate view. 53

2.18    The selector explorer view. 55

3      The branch explorer view.. 58

3.1       The diagram area. 59

Objects in the Branch Explorer 60

Scrolling  62

3.2       Toolbars and panels 63

Panels 64

4      The extended information panel 70

4.1       Properties tab. 71

4.2       Attributes tab. 72

4.3       Task info tab. 74

5      Comparing changes: review.. 75

5.1       What can be reviewed. 75

Branch comparison operations 75

Changeset comparison options 76

Label comparison. 76

Item comparison. 76

5.2       The review interface. 76

5.3       Changeset walking. 80

6      The 3D version tree. 81

6.1       Elements drawn in the tree. 82

6.2       The toolbar 83

6.3       3D Version Tree operation. 84

7      Merge. 85

7.1       The merge dialog box 85

The merge candidates 89

7.2       The merge tool 90

Navigation and options 91

Source, base and destination. 94

Result of the merge. 95

Automatic and non-automatic conflicts 95

Resolving a non-automatic conflict 95

XMerging files 97

7.3       The differences tool 98

Moved code detection. 99

7.4       The image diff tool 100

7.5       The binary merge tool 101

8      Preferences dialog. 103

8.1       General options 103

8.2       Differences and merge options 104

8.3       Comments options 105

8.4       Other options 106

8.5       Integration with third party issue tracking tools 107

8.6       Replication profiles 107

9      Shell Extension for Windows. 108

9.1       Introduction. 108

9.2       Minimal requirements 108

9.3       The Plastic SCM shell extension context menu. 109

9.4       Plastic SCM operation concepts 110

9.5       Plastic SCM operations through the context menu. 110

9.6       Using Plastic SCM context-menu. 117

 


 

Figures

Figure 1: Plastic GUI main screen areas 2

Figure 2: Workspace operations 3

Figure 3: sample items view. 4

Figure 4: view area scroll 5

Figure 5: log window detail 5

Figure 6: Common view elements 6

Figure 7: Other common view elements 8

Figure 8: View’s advanced options panel 8

Figure 9: tree and list buttons in items view. 10

Figure 10: Items view in list mode. 11

Figure 11: item operations 13

Figure 12: Check-in comments dialog. 15

Figure 13: Checking in an unmodified item. 15

Figure 14: Rules available for ignoring items 16

Figure 15: Ignore dialog. 17

Figure 16: Example of ignored item. 17

Figure 17: Example of cloaked item. 17

Figure 18: Move destination dialog. 18

Figure 19: item removal options 19

Figure 20: the branch view. 20

Figure 21: branch context menu. 21

Figure 22: Changeset walking window. 22

Figure 23: New branch dialog. 23

Figure 24: label selection dialog. 24

Figure 25: changeset selection dialog. 25

Figure 26: rename dialog. 27

Figure 27: Branch selection dialog. 27

Figure 28: changesets view sample. 29

Figure 29: Repository selection dialog. 29

Figure 30: Changeset operations context menu. 30

Figure 31: Sample labels view. 32

Figure 32: creating a label in a workspace with multiple repositories 33

Figure 33: Label operations 34

Figure 34: The commit view. 36

Figure 35: Sample item's history view. 36

Figure 36: Operations of a revision in the history view. 37

Figure 37: The changed items view. 39

Figure 38: The private items view. 39

Figure 39: The removed items view. 40

Figure 40: operations of a removed item. 41

Figure 41: Code review for a changeset 42

Figure 42: Code review for a branch. 42

Figure 43: Create code review window. 43

Figure 44: Diff with previous - with no comments 43

Figure 45: Diff with previous with comments 44

Figure 46: Clicking on the grey zone to add more comments to the same line. 44

Figure 47: Editing the comments of a line which has several comments 45

Figure 48: Code Review window. 45

Figure 49: sample change statistics view. 46

Figure 50: Views toolbar scroll buttons 47

Figure 51: Sample attributes view. 48

Figure 52: The repositories view. 49

Figure 53: repository creation dialog. 49

Figure 54: operations of a repository. 50

Figure 55:  sample workspaces view. 51

Figure 56: available operations for a workspace. 51

Figure 57: workspace selector dialog. 52

Figure 58: Sample changeset content view. 53

Figure 59: Annotate menu-item from Plastic GUI 54

Figure 60: Annotate window - Full description. 55

Figure 61: Browse repository from a branch. 55

Figure 62: Browse repository from a changeset 56

Figure 63: Browse repository from a label 56

Figure 64: Selector explorer 57

Figure 65: Sample Branch Explorer view. 58

Figure 66: Repository selection dialog. 59

Figure 67: Branch Explorer diagram axes 59

Figure 68: Branch Explorer with a branch context menu. 60

Figure 69: Label representation in the Branch Explorer 61

Figure 70: Branch Explorer link types and colors 61

Figure 71: Merge link sample in the Branch Explorer 61

Figure 72: Branch base links in the Branch Explorer 62

Figure 73: Sample link information box in the Branch Explorer 62

Figure 74: Scrolling the diagram with the mouse. 63

Figure 75: Branch Explorer navigator 63

Figure 76: Branch Explorer top toolbar 64

Figure 77: Branch Explorer search controls 64

Figure 78: Branch Explorer change statistics 65

Figure 79: the extended options panel in the Branch Explorer 65

Figure 80: Branch Explorer in visibility edition mode. 67

Figure 81: Sample conditional format tab in the Branch Explorer 68

Figure 82: Extended information panel in a view. 70

Figure 83: Tabs in the extended information panel 71

Figure 84: Sample branch properties tab. 71

Figure 85: detail of the "save" button in comments edition. 71

Figure 86: Attributes tab in the extended information panel 72

Figure 87: Applied attribute components 73

Figure 88: The apply attribute dialog window. 73

Figure 89: Sample task information provided by a third party issue management tool 74

Figure 90: Review interface main areas 77

Figure 91: Items to compare in the review interface. 78

Figure 92: Item differences in the review window. 79

Figure 93: Changeset walking window. 80

Figure 94: Basic elements in the version tree. 82

Figure 95: Sample checked out revision in the version tree. 83

Figure 96: 3D version tree toolbar 83

Figure 97: Sample merge dialog. 86

Figure 98: items to merge operations 89

Figure 99: item candidate contributor revisions 89

Figure 100: sample merge tool 91

Figure 101: Main areas of the merge tool 91

Figure 102: toolbar in the merge tool 92

Figure 103: Moved code detection parameters 93

Figure 104: difference highlight in the merge tool 94

Figure 105: automatic and non-automatic conflicts in the merge tool 95

Figure 106: non-automatic conflict navigation buttons in merge tool 95

Figure 107: a non-automatic conflict sample in merge-tool 96

Figure 108: the previous conflict sample, with base and source contributors deselected  97

Figure 109: The XMerge button. 98

Figure 110: XMerge with this selection. 98

Figure 111: sample differences window. 99

Figure 112: moved code detection on the differences tool 99

Figure 113: Binary merge tool comparing images side by side. 100

Figure 114: binary merge tool comparing images in blend mode. 101

Figure 115: Sample binary merge tool. 101

Figure 116: sample bin merge tool with an image item. 102

Figure 117: Differences and merge options in the preferences dialog. 104

Figure 118: Comments options in the preferences dialog. 105

Figure 119: Other options in the preferences dialog. 106

Figure 120: Context menu from Desktop. 109

Figure 121: Context menu Windows Explorer 110

Figure 122: File status icon. 110

Figure 123: Context menu after Add and Check in. 111

Figure 124: New workspace. 118

Figure 125: Private file in Plastic SCM GUI 118

Figure 126: Private file in Windows Explorer 119

Figure 127: Controlled file in Windows Explorer 119

Figure 128: Directory in Win-Explorer before and after check in. 120

Figure 129: Controlled file with multiple views 120


 


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

 


1     Starting up the GUI

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.

1.1    The main screen

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

image008.png

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.

image102.png

Figure 5: log window detail

2     GUI views

2.1    Common view elements

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.

Selecting elements in table views

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:

Operations in the views

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.

2.2    The items view

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

Columns in the items view

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.

Operations available in the items view

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.

image104.PNG

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:

image105.PNG

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:

image106.PNG

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.

image107.PNG

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.

image108.PNG

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.

2.3    The branches view

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.

Columns in the branch view

The columns in the branch view support the sorting and resizing functionality available in all tabular views, as previously described. The column contents are:

Operations in the branch view

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:

image103.png

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.

2.4    The changesets view

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

Information displayed in the changeset view

The changeset view contains a list of rows representing changesets created in the repository. For each row, the following data is displayed:

Operations in the changesets view

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.

2.5    The labels view

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.

Information displayed in the labels view

Each row in the labels view contains the following information:

Operations in the labels view

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.

2.6    The commit view

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.

commit_view-en.png

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.

2.7    The item history view

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.

Operations in the history view

Figure 36: Operations of a revision in the history view

The operations are:

2.8    The changed items view

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.

Information displayed in the changed items view

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.

Operations in the changed items view

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.

2.9    The private items view

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.

private_view_en.PNG

Figure 38: The private items view

Information displayed in 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.

Operations in the private items view

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.

2.10The removed items 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.

delete_view_en.PNG

Figure 39: The removed items view

Information displayed in 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).

Operations in the removed items view

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.

2.11The code review

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.

CodeReview_CS.jpg

Figure 41: Code review for a changeset

CodeReview_Branch.jpg

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.

Diff_NoComments.jpg

Figure 44: Diff with previous - with no comments

Diff_withComments.jpg

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.

image113.PNG

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.

image114.PNG

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.

2.12The change statistics view

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.

2.13The attributes view

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

Information displayed in the 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.

Operations in the attributes view

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.

Using attributes in queries

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.

2.14The repository view

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

Information displayed in the repository view

For each row in the repositories list, only the repository name and the server are displayed.

Operations in the repository view

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.

2.15The workspaces view

The workspaces view will display the details of workspaces on the local machine.

wkview-en.png

Figure 55:  sample workspaces view

Information displayed in the workspaces view

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

Operations in the workspace view

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. 

2.16The revisions views

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.

2.17The annotate view

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.

Ann_Window-en.png

Figure 60: Annotate window - Full description

2.18The selector explorer view

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

image118.PNG

Figure 61: Browse repository from a branch

image119.PNG

Figure 62: Browse repository from a changeset

image120.PNG

Figure 63: Browse repository from a label

A view like the following will be opened:

repository_browser-en.PNG

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.

3     The branch explorer view

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

3.1    The diagram area

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.

Objects in the Branch Explorer

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

Scrolling

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.

3.2    Toolbars and panels

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.

Panels

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.

3.2.1.1    Navigator panel

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.

3.2.1.2    Statistics panel

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.

3.2.1.3    Extended options panel

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.

4     The extended information panel

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.

4.1    Properties tab

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.

4.2    Attributes tab

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.

4.3    Task info tab

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.

5              Comparing changes: review

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.

5.1    What can be reviewed

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.

Branch comparison operations

More information about branches operations in “Operations in the branch view”.

Changeset comparison options

More information related to changeset operations available in the section “Operations in the changesets view”.

Label comparison

More information about label operations in “Operations in the labels view”.

Item comparison

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

5.2    The review interface

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.

5.3    Changeset walking

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.

6     The 3D version tree

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.

6.1    Elements drawn in the tree

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

6.2    The toolbar

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.

6.3    3D Version Tree operation

The 3D version tree is operated with the mouse and some modifier keys. The options are:

7     Merge

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.

7.1    The merge dialog box

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.

The merge candidates

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.

7.2    The merge tool

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

Navigation and options

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.

Source, base and destination

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.

Result of the merge

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.

Automatic and non-automatic conflicts

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

Resolving a non-automatic conflict

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.

XMerging files

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:

XMerge.PNG

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

7.3    The differences tool

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.

Moved code detection

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:

moved_code_detection-en.PNG

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.

7.4    The image diff tool

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.

7.5    The binary merge tool

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.

8     Preferences dialog

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.

8.1    General options

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.

8.2    Differences and merge options

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.

8.3 Comments options

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.

8.4    Other options

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.

8.5    Integration with third party issue tracking tools

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.

8.6    Replication profiles

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.

9     Shell Extension for Windows

9.1    Introduction

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.

9.2    Minimal requirements

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.

9.3    The Plastic SCM shell extension context menu

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:

Contextmenu_Desktop.jpg

Figure 120: Context menu from Desktop

Contextmenu_Explorer.jpg

Figure 121: Context menu Windows Explorer

9.4    Plastic SCM operation concepts

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

9.5    Plastic SCM operations through the context menu

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:

After_ADD_Ci.jpg

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.

9.6    Using Plastic SCM context-menu

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