BitKeeper Basics
BitKeeper uses a concurrent model of development, where each repository is a complete tree that has its own history. Sets of deltas can be grouped into a changeset. In any one repository, changesets are ordered: each changeset depends on all previous changesets.
Changesets from one repository (the parent) can be pulled into another one (the child). If the child repository has no changes not in the parent, the two repositories will be identical after a pull.
If the child repository has changes that are not in the parent, then things get more interesting.
If the changes overlap, then the changes have to be resolved manually. Otherwise, the changes can be resolved automatically.
In either case a new merge changeset will be created at the head of the tree.
