Quick Tutorial - Show Differences

BrightBuilders offers developers the tool to compare BSP projects with one another, and highlights any differences made between any two given projects, across all project elements, right down to expression level changes. This may be achieved via the "Show Differences Between Projects ..." option in the context menu for opened projects, which returns a result set of the differences between the given project and a selected project.

The result set from this search provides a detailed graphical representation of changes between two projects, and this may be used to easily determine differences between similar projects, manage version changes, or clearly integrate group programming efforts into the same BSP.

Comparing Projects

Project elements, controls, properties and so forth in a 'base' project are compared against those of another 'target' project in the differentiation process. When this happens, any project elements that are new, deleted or modified in the target project are marked as such in the results.

Therefore, the differentiation is relative to the base project and is displayed as such when displaying the completed 'Show Differences' results.

To initiate differentiation, select the base project for the comparison, and then right click it's name, displaying the context menu. From here, the 'Show Differences Between Projects ...' option may be selected, and the user continue.

The dialog box below will display, populated with a drop-down list of currently opened BSP projects, and providing the user an option to browse for a different project. Selecting an opened project and selecting OK will run the difference immediately with the originally right clicked form in the project tree being established as the base.

Alternatively, if the project isn't open, selecting "Browse For Other project" will open the 'Select Project' Dialog, where a project may the located without opening it in BrightBuilder.

Once selected, the 'OK' button may be tapped, and the Show Differences results will display.

Alternatively, two projects may be selected simultaneously by using the Ctrl-Click selection in the projects tree. Doing this, then right clicking and selecting the 'Show Differences Between Projects ...' option will display Show Differences results for the two projects, with the base project being the project that was first clicked.

Show Differences Results

Performing a 'Show Differences' query between a base and target project will open the 'Show Differences Results' panel, displaying any changes to the project. Initially, the nodes are displayed as closed when the results panel opens, and may be expanded to browse each project difference.

When browsing, differences of the target project relative to the base project will be highlighted, and are able to be jumped to in the base project via double clicking each element.

The differences are represented as follows:

  1. anything not in the base, but is present in the target will be considered 'new' (displayed in green)

  2. anything that's in the base that is not in target will be treated as 'deleted' (displayed in red).

  3. any similar named items will be treated as 'modified' between the two forms (displayed in blue).

This is displayed in a tree format, where folders and elements may be collapsed and opened accordingly. Nodes which are empty represent project elements which remain unchanged between base and target projects.

Nodes which may be expanded indicate differences that are apparent when comparing both projects to one another, much like the Find Usages function in BrightBuilder. Double-clicking project element or sub-statement will open it's parent in the base form for comparison. Clicking on any listing of a deleted object will open its parent node in the Base project.

Differing Expressions

Expanding an expression node in this results panel will reveal differing blocks of code within the expression between the two projects. These blocks are of contiguous lines of code that differ between the base and target project's expressions, and may be expanded and collapsed when utilising the 'Show Differences Results' panel.

These blocks are defined as follows:

<Difference Type>: (i-j, x-y)

where i-j are the rows in the base project's expression, and x-y are the rows in the target project's expression.

Double clicking on any individual lines will open the base project's form, and then jump to the specified expression and starting line number in BrightBuilder.