Overview of the HCL VersionVault build scheme

Learn about the build scheme of VersionVault.

Developers perform builds, along with all other work related to VersionVault, in views. Typically, developers work in separate, private views. Sometimes, a team shares a single view (for example, during a software integration period).

As described in Developing Software, each view provides a complete environment for building software that includes a particular configuration of source versions and a private work area in which you can modify source files, and use build tools to create object modules, executables, and so on.

As a build environment, each view is partially isolated from other views. Building software in one view never disturbs the work in another view, even another build of the same program at the same time. However, when working in a dynamic view, you can examine and benefit from work done previously in another dynamic view. A new build shares files created by previous builds, when appropriate. This sharing saves the time and disk space involved in building new objects that duplicate existing ones.

You can (but need not) determine what other builds have taken place in a directory, across all dynamic views. VersionVault includes tools for listing and comparing past builds.

The key to this scheme is that the VOBs of the project team constitute a globally accessible repository for files created by builds, in the same way that they provide a repository for the source files that go into builds. A file produced by a software build is a derived object (DO). Associated with each derived object is a configuration record (CR), which clearmake uses during subsequent builds to determine whether the DO can be reused or shared (see the following figure).

Figure 1. Building software with VersionVault: isolation and sharing
build software

For more information on how VersionVault keeps track of the objects produced by software builds, see Dependency tracking of MVFS and non-MVFS files. Additionally, for more information about the mechanism that enables such objects to be shared among views, see Build avoidance.