Creating and Loading Revisions

The proactive approach to using Delta Analysis is to actively manage the creation and later loading of revisions. In this approach, the revisions are maintained as part of the specific Imagix 4D project you are using. (The alternative to this approach is to compare the current states of two projects).

Creating a Revision

As you make changes to your source code, you will periodically regenerate the project data so that the Imagix 4D database represents the current source code. If you think you might want to later structurally analyze differences from the current source code and database, you can create a revision. This can be done at any point, up until you once again regenerate the project data, causing the current database to be overwritten.

The revision is created through the Project > Create Revision... dialog. The dialog contains little to fill in. The description will enable you to later understand the particular status of the project at the time you created the revision, helping you to identify which revision to load. In addition, if you're working with a source control system you can specify a revision id. This is a timestamp or version id that can be later used by your source control system to load the proper version of the source file into the Diff Tool.

Loading a Revision

Once you have created a revision, you can use Delta Analysis to compare it with the current version of your project at any time. You're able to load any of your existing revisions through the Project > Load Revision for Delta Analysis... dialog.

The revision contains information about the functions and variables in your project at the time the revision was created. In addition to the control flow hierachy of the function calls and variable usage, the revision contains packaging information - which functions and variables were contained in which classes, files and ultimately directories.

In resolving which revision files and file members correspond to which current files and file members, Delta Analysis uses this packaging information. If you're maintaining the different versions of your source code all in the same directory structure, for example through a source control system, then the resolution can be done by a direct comparison of directories and files. 'Same location as current source files' should be selected.

However, if the location of the revision version of your files is offset from their current location, 'Root directory of revision was different than that of current project' can be used. The Help... dialog does some initial comparisons and offers suggested settings for the root directories of the revision and current projects. And if your root settings result in only limited resolution of the source files, you'll be alerted to that and can modify the settings.