Obviously bzr clone
, bzr branch
and bzr checkout
all do the same thing when given an URL as parameter and executed in a non-bzr directory.
Is there any difference for later Bazaar workflow? i.e. bzr commit
, bzr update
and friends.
Branching and cloning are the same, but branching and checkouts are not the same.
$ bzr help branch ... Aliases: get, clone See also: checkout
Looking over the Checkout Tutorial, you'll see that a checkout essentially binds every action you take directly to the branch. So anything you do is essentially push
ed when you do it -- obviously that's a huge workflow difference.
Difference between a Branch and a Checkout
Let's start by saying there is nothing you can do with a Checkout that you can't do with plain Branches. A Checkout just enables different defaults and workflow helpers.
What does Checkout do
With a Checkout, whenever you create new entries in a local Branch, it also creates them in a remote Branch. This corresponds to commands like
bzr commit
andbzr pull
. If you attempt to commit a new changes, and the remote Branch has a different state than the local one, it will prevent you, and let you know that you are out of date. You can usebzr update
to apply the remote changes locally.