Development of multiple-version software employs versioned documents in a
store. The documents are compared (differenced) at both line and
character levels. Potential conflicts in merged documents are marked by
detecting possible alternative histories from a common parent document.
Changes from an earlier version are removed from a later version of the
same document even when the document has intervening versions. A build
lab allows developers to work in parallel on a new software build while
another build is being run and patched on a different set of documents;
the developers each have private copies from which changes pertaining to
a build have been added, and then backed out when the file is returned to
a common area.