I just want to link a great post by David about the Bazaar working model:
Some thing the model is a little complex. But really it just breaks down into 3 things.
A repository is where your historical information is stored.
A branch is a pointer into this historical information. As new work is done, its history is appended to an existing branch, which gives a view of how the work has evolved.
And a working tree is where all of the real work happens. (This is where you make changes, and actually develop *your* work). We take care of the rest, you deal with the working tree.
By having these as 3 separate concepts, we can build them up into several different (and all useful) arrangments.