Atomic commit
From Wikipedia, the free encyclopedia
An atomic commit is a concept supported by modern revision control systems that allows committing—uploading to the source—changes in multiple files (called a changeset) while guaranteeing that all files get fully uploaded and merged.
If there is a failure before a revision control system client can complete the transaction, such as the Internet line disconnecting or a conflict that cannot be automatically resolved by the revision control system, the "commit" is aborted and all changes that have taken place are reversed (rolled back). This functionality is similar to the rollback feature of modern relational databases.
In an atomic commit, typically the files that are committed together are concerned with a single modification, and everything changed in that modification should be included in the commit. (The word atom originally meant a smallest possible particle of matter, not further divisible.)
In this way, the code trunk stays stable; people who update their working copy do not miss changes left to be committed in somebody else's working copy; the changeset is not too messy to read through; and if the atomic commit is rolled back, the single modification is removed entirely from all parts of the code base.