versioncontrol:atomiccommit

This is an old revision of the document!


The VCS should support atomic commits. This means that if a committer wishes to commit n files at once, either the commits to all n files succeed, or they all fail.

It should be impossible for a commit designed to affect multiple files only affect a subset of those files.

This will remove the race condition that sometimes occurs when users (or the tinderbox) update the source tree in the middle of a lengthy commit, and retrieve an inconsistent copy of the tree.

Note: this will not prevent developers from creating inconsistent copies of the tree, by, eg., committing a single logical change as two separate changes.

CVS does not implement atomic commits. The closest we currently get is the work carried out by log_accum.pl, which attempts to generate only one log message per change.

Atomic commits are fully supported by Subversion. A single commit either succeeds or fails.

It's all atomic.

  • versioncontrol/atomiccommit.1158606924.txt.gz
  • Last modified: 2006/09/18 19:15
  • by EricAnholt