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.
bzr branch
and bzr checkout
do very different things. They both give you a working tree, but bzr checkout
gives you only a working tree; commits and updates work directly on/from the source repository. bzr branch
gives you a working tree of a new branch of the repository; commits on this branch will not be automatically applied to the source branch. I'm not sure on clone
.
Update: according to the comment, checkout
gives you the full history; that seems right. Semantically, checkout
looks and feels like a centralized VCS checkout with the branch locally; it implements this by keeping a local history (which you can browse offline - a plus), but linking it back to the original history so you can only commit when you're up-to-date and commits get automatically pushed. Moreover, it is possible to commit without connection by unbinding the checkout, in which case it becomes a regular branch.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With