Product Versioning Model

Figure 1. Product Versioning Model
A version in Molhado is global across entire software project
and is a point in a tree-structured discrete time
abstraction. All system objects are versioned in a uniform, global
version space across a software project, called product versioning
space. That is, Molhado emphasizes the evolution of the system as
a whole. In our version model, the state of the whole software system
is captured at certain discrete time points and only these captured
versions can be retrieved in later sessions. The current version
is the version designating the current state of the project. When
a particular version is set to be current, the state of the whole
project is set back to that version. Changes made to the project at
the current version create a temporary version, branching off
the current version. That temporary version will only be recorded
if the user explicitly requests that it be captured. To record the
history of an individual object, the whole project is captured. Capturing
the whole project is quite efficient because the Fluid IR only records
changes and works at the slot level.