Transactions are Atomic

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.

The atomicity of transactions makes life simpler for the user. He never needs to worry about how to finish up the work of a partially-successful command. If a command fails, he just fixes the problem that caused the failure and executes the command again. Atomicity also means that AccuRev’s view of the various changes applied to the repository matches the user’s view.

Note: AccuRev does not record every change in a transaction. Keeping a new version is recorded in a transaction, as is promoteing an existing version to a higher-level stream. But no transaction is recorded when you change the location of a workspace.