The AccuRev data repository is organized into a set of depots, each of which stores the complete revision history of a particular set of elements. Each depot has its own section of the database. Changes to a depot are structured as a series of
transactions, each of which saves all the information involved in a particular change to the depot. Thus, the entire story of how a depot’s elements have evolved is contained in its
transaction history.
A user command that modifies elements is recorded as a single transaction in the metadata stored for the depot, no matter how many elements are involved. For example, if a user enters a keep command to create new versions of 12 files, a single transaction records all 12 versions. What if something goes wrong (for example, a network failure) while AccuRev is processing those 12 files? The entire transaction is cancelled, and no new version is created. The term
atomic describes this “all or nothing” aspect of AccuRev transactions.
Note: AccuRev does not record every change in a transaction.
Keeping a new version is recorded in a transaction, as is
promote’ing an existing version to a higher-level stream. But no transaction is recorded when you change the location of a workspace.