RADE

Source Code Manager

Changes History Graphic Tool

The GUI for displaying object change history

Quick Reference

Abstract

The Changes Graphic Tool is a tool that displays the history of all changes applied on a given object. This allows to understand the evolution of the object by seeing the origin of each change (previous change, origin workspace, author, etc).


Principles

Conversely to the adl_ds_chg command [1] whose purpose is to display information about one object currently visible in a given workspace, the Changes History Graphic Tool is a tool that gives a general view on all changes that happened on one object since its creation. Like managed internally, the history of the five types of changes appears as five oriented graphs where nodes are change versions and arrows give the origin of each version.

As the five types of changes are managed separately by SCM, the corresponding graphs are displayed in separate panes.

Remember that the tool displays information about the origin of each version, not about those currently visible in users' workspaces.

[Top]

Appearance

The interface is split in two parts:

The icon bar contains 

Each graph is composed of 

        for changes of type file content,
                    Warning: when the file content of a change is not accessible, the following icon is used : and the Open, Project, Compare actions are disabled.
        for changes of type move,
        for changes of type delete,
        for changes of type change of executable rights,
        for changes of type description.

            Warning: in the graph of changes of contents, some of the arrows going to a node can be in grey (like the exemple below).
                This means that the file content of this node is the same that the change linked to it with the orange arrow.
                In the exemple below, the file content of version 3.Dev1T1DOC is the same as the one of version 2.PrjT1DOC,
                so the link between 3.DevT1DOC and 2.DevT1DOC is not pertinent.

Figure 1: the Changes History's interface

[Top]

Usage

Starting the Tool

To launch this tool, you have first to launch the federate graphic tool by the command adl_gui. For more informations, have a look for its documentation.

When started, the program displays the main window and the following dialog box to enter the object of which the history is to be displayed.

Figure 2: Dialog box for specifying the SCM object

 

This dialog window provides radio buttons to specify which kind of information is to be entered for identifying the object. This object is always either a directory or a file and this object can be specified 
  • using its name, local or not, or any object's name belonging to the workspace
  • or using the SCM object identifier
  • or using the change identifier of one change on this object

This dialog saves the search path.

To launch the search on a previous entered path, click on the arrow button on the right of the list to display choices.

 
What Is The Best Way To Specify the Object We Want?

The usual way is to enter the "user" name of the file or directory you want to retrieve. Then if you think that there is a good chance that there is only one file having this name whatever its location is inside a workspace image file tree, you can unselect the check box "Path from root". Conversely if you guess that a lot of files exist with this name (for instance "IdentityCard.h" or "Imakefile.mk") it should be better to give a path from the workspace image root directory. (See "Multiple Objects Having the Same Name" to know what happen in such a case).

Entering an object identifier is not an usual way to access it. Nevertheless it is interesting to be able to enter it instead of a file name in case another command gave it and we want to know to which object it corresponds.

Like for the object identifier, it is interesting to enter a change identifier in case another tool gave it, otherwise it is easier to manipulate file names. Note however that entering a change identifier will lead to select automatically the corresponding node in the corresponding graph.

What Is an Object Identifier?

All the objects managed by SCM have a unique identifier which is computed when they are created. This identifier is used internally by SCM commands because the user name is just an attribute that is not unique and that can be changed at any time. This is not the case for a SCM identifier which is unique and does never change.

Some SCM commands can print this identifier. For instance the adl_ds_chg [1] command gives it at the beginning of output.

$ adl_ch_ws cga_dev
...

$ adl_ds_chg TCKManagement\TCKClientServer.m\src\TCKMngr.cpp
Workspace tree: TOOLSSDF

TCKManagement\TCKClientServer.m\src\TCKMngr.cpp Type: File element Id: C+44nh5cn9+3++++vk+9
...

What Is a Change Identifier?

Any change applied on an object is registered by SCM in association with an unique identifier. It is the same kind of identifier as for an object.

For instance, the adl_ds_chg command gives the identifiers associated with all the five type of changes associated with a file.

$ adl_ch_ws cga_dev
...

$ adl_ds_chg TCKManagement\TCKClientServer.m\src\TCKMngr.cpp
Workspace tree: TOOLSSDF
TCKManagement\TCKClientServer.m\src\TCKMngr.cpp Type: File element Id: C+44nh5cn9+3++++vk+9

Change of deleted Id: ++++-C+44nh5cn9+3++++vk+A State: Not deleted
Created by cga with adl_mk_elem on Monday, October 11, 1999 08:42:22 AM in the workspace cga_dev, tree TOOLSSDF
Visible through the workspace ToolsSDFINT in which it appeared because of adl_collect on Wednesday, November 24, 1999 04:06:25 PM

Move Id: ++++1C-UCNB5cn9+3++++u++7 Folder: "TCKManagement\TCKClientServer.m\src" Name: "TCKMngr.cpp"
Created by cga with adl_mv on Thursday, October 28, 1999 10:50:44 AM in the workspace cga_liocha, tree TOOLSSDF
Visible through the workspace ToolsSDFINT in which it appeared because of adl_collect on Wednesday, November 24, 1999 04:06:25 PM

Change of content Id: ++++mCz2pJ5mz63I3+++06+In Content Id: Cz2p9rmz63I3+++06+Bp
Created by cpt with adl_ci on Tuesday, November 13, 2001 03:58:55 PM in the workspace cpt_dev_v5, tree TOOLSSDF
Visible through the workspace ToolsSDFINT in which it appeared because of adl_collect on Friday, November 16, 2001 08:00:13 PM

Change of executable Id: ++++-C+44nh5cn9+3++++vk+E State: Not executable on UNIX
Created by cga with adl_mk_elem on Monday, October 11, 1999 08:42:22 AM in the workspace cga_dev, tree TOOLSSDF
Visible through the workspace ToolsSDFINT in which it appeared because of adl_collect on Wednesday, November 24, 1999 04:06:25 PM

Change of description Id: ++++-C+44nh5cn9+3++++vk+F Summary: None Associated content Id: None
Created by cga with adl_mk_elem on Monday, October 11, 1999 08:42:22 AM in the workspace cga_dev, tree TOOLSSDF
Visible through the workspace ToolsSDFINT in which it appeared because of adl_collect on Wednesday, November 24, 1999 04:06:25 PM

 

[Top]

Selecting Information To Be Displayed

Viewing Different Types of Changes

The first pane that is displayed is the changes on file contents. Others changes are available by clicking on the corresponding pane: However, when a change identifier is given, the corresponding pane is automatically displayed and the corresponding version is highlighted.

Content This pane is the default pane and contains the graph of changes on file contents. It is not active for folder objects.
Move This pane contains the graph of object renaming (see adl_mv [2])..
Creation/Deletion This pane contains the graph of creation and deletion. Each node corresponds to the execution of either adl_rm [3] or adl_unrm [4] command.
Execution rights Only one node is available right now for this graph and corresponds to the initial rights of the objects and they have been specified through its creation type (see adl_ls_type [5]).
Description Actually the graph is reduced to one node that corresponds to the creation of the object (right now, there is no user command for setting the object description).

[Top]

Choosing Characteristics That Are Displayed

Default characteristics are displayed to the right side of each change version: they are the version identifier and the user who has created  this version. Other characteristics can be displayed. They are available by checking them in the settings window. Here are the characteristics that can be chosen:

[Top]

Settings

Any user can change the default settings by selecting the "settings" item in the "Tools" menu. These settings are saved between sessions.

Selecting Information to Display

The settings window proposes two panes:
  • the "Display" pane allows to choose the information to display and how they are displayed
  • the "Tools" pane  allows to change the external tools used either to open or compare two versions of file contents

When the user clicks on the "Ok" button, the new settings are saved in a file dedicated to this user.

The "Cancel" button is used to close the window without taking into account any changes performed on the default settings.

The "Apply" button is used to apply the changes without closing the settings window.

The "Default" button is used to reset all settings to the default ones (set by the tool).

 

[Top]

Changing The Tools For Viewing or Comparing File Contents
The program uses default tools for viewing of comparing files. Any user can replace these tools by his own tools: select the "Tools" panel in the settings window and enter the path to the new tools.

Note that different tools are proposed regarding the current platform but only those defined for the current platform are proposed for modifications.

On Windows platform the default tools are "notepad" and "vdiff32".

On Unix platform the default tools are "vi" and "xdiff".

[Top]

Using Contextual Menus and Menu Bar

Actions on a change

The user can interact with the changes of the graph by two ways:

The possible choices are different depending on the change :

       

        If the file content is not accessible(), the Open, Project and Compare items are disabled.

       

       

   

[Top]

Opening

Select the item "Open" in the contextual menu: this will cause the corresponding file contents to be extracted into a temporary file and the editor launched on it:

The name of the temporary file is computed according to the version identifier and the file name of the corresponding object.

The file is not extracted for edition. Changes on its contents won't produce any new version in the SCM database.

[Top]

Projecting

Select the item "Project" in the contextual menu: this will causes the following dialog box to be opened for entering the target file name. The default name is the same as for opening a version and is computed regarding the version to project and the file name of the corresponding object.

Figure 6: target file name for projection

Another file name can be entered and a directory browser can be opened by clicking on the "Browse..." button.

The file is not extracted for edition. Changes on its contents won't produce any new version in the SCM database.

[Top]

Comparing

It is possible to compare the contents of two versions of a file.

One way is to select one change, select the "compare with..." item in the contextual menu and then click on another version.

One second way is to select one change and then to press on the "shift" key and click on the second version using any button of the mouse. When the contextual menu appears, select the item "Diff" and this will causes the two versions to be extracted in temporary files and the "diff" tool run on them.

The names of the temporary files are the same as when opening or extracting versions, so it helps to identify them within the "diff" tool when this tool displays the names of files being compared.

 

[Top]

Propagation

This menu displays the list of the workspaces where this changes has been propagated.

Notice that in the fourth column, two information are displayed : the revision of the workspace in which the change appeared and the last revision of the workspace.

[Top]

Show if this change is seen in workspace

This menu allows to know if the selected change is seen in a particular workspace.

The following dialog box asks for the workspace name or the workspace revision:

The result of this operation is given in the information panel.

The following information are given:
- the version selected,
- the version seen in the given workspace or workspace revision,
- the inclusion or not of one version in the other.

[Top]

Open the folder of this object in a new window

This item is only available for the changes of type move. As it can be very interesting to have information about the englobing folder of an object, this one is opened in another window to allow to keep the first window opened on the original object.

[Top]

Actions out of a change

All the items are always availabled exept the "Show checkouts" item which has no sense for a directory element.

Search the change seen in workspace

This item is very useful to know which version of a SCM object is seen in a particular workspace or workspace revision.

The following panel is shown (it is the same than the item "Show is this version is seen in workspace" when using the change contextual menu).

When the change seen in a workspace or workspace revision is found, the graph is focused on this node and the information panel indicates which change it is.

[Top]

 

Search last change made

This item allows to know which is the last change made in a particular workspace or made by a particular user.

The following panel is shown:

When the last change made in a workspace or made by a user is found, the graph is focused on this node and the information panel indicates which change it is.

[Top]

Show Check-outs

When the tool is started and a file (or an object identifier) is entered, the program displays information about files that are currently checked-out in workspaces. This information is given because a check-out operation does not create any new version; a new version will be created for the new file contents during the check-in operation (see adl_ci [6]). This feature is available also when changing the object whose version graphs are currently displayed.

As these information disappear from the information pane as soon as a version is selected, it is possible to display by using the menu bar or the contextual menu out of a node (selecting the item "Show checkouts").

[Top]

Settings

See the Settings section.

 

[Top]

Multiple Objects Having the Same Name

This case does not occur when using an object identifier because it is unique.

Otherwise it is possible to enter a file name (short name or path name) that may correspond to different SCM objects because

What is important to know is that the research is done on all objects that have had the given name at a given time and not the first or last name of them.

When several objects are found for the same name, the program displays the list in order to let the user aware of that and to let him/her to decide which one is to be used for retrieving changes.

Figure 7: multiple objects with same name

Information displayed in the list should help the user to decide which object interests him/her. From the left to the right those information are:

On the figure 7, the user can see that there is only one file named "fic1.h" in the workspace DevT1DOC.

[Top]

Forgotten Changes

Figure 9: forgotten change

In the figure 9, we can see two versions made in a same workspace in parallel :
  • 5.1.PrjT1DOC
  • 5.2.PrjT1DOC

The version "5.1.PrjT1DOC" is older than "5.2.PrjT1DOC".

As the two version belong to a same level and have been made in a same workspace, we can conclude that the version 5.1.PrjT1DOC is a version that has been forgotten (see adl_forget_chg [7]) and a new check-out have been performed afterwards, creating the version 6.2.dev1.

 

[Top]


References

[1]  adl_ds_chg: displaying information about last changes
[2] adl_mv: moving objects
[3] adl_rm: removing objects
[4] adl_unrm: unremoving objects
[5] adl_ls_type: listing available file types
[6] adl_ci: checking-in official acquisitions
[7] adl_forget_chg: forgetting changes
[8] Federate tool

[Top]


History

Version: 2 [Jan 2005] Modifications in GUI and contextual menus
Version: 1 [Nov 2001] Document created

[Top]


Copyright © 2000, Dassault Systèmes. All rights reserved.