Wiki Tools

  • Find Page
  • Recent Changes
  • Page History
  • Attachments

Differences between revisions 5 and 7 (spanning 2 versions)
Revision 5 as of 2006-03-09 05:00:18
Size: 2402
Comment: Mention checkout creating bound branches at the moment.
Revision 7 as of 2006-06-30 19:36:19
Size: 1771
Comment: remove obsolete big note
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Big Note =
This is very new in Bazaar-NG. Expect some heavy bumps in order to play with this feature. In particular:
Line 4: Line 2:
Robert Collins:
Users using the 0.8pre 'checkout' feature, or 'repository' features may need to adjust their .bzr dirs to have a lockdir of the type just introduced. I don't have instructions for that, but I will as soon as I do the dogfood upgrade myself.
Martin Pool:
It should be enough to replace the file called "lock" with an empty
directory of the same name. Just to be clear: this doesn't affect
old-format branches created with bzr 0.8.
Robert Collins:
Yup that works, except it seems that only the .bzr/repository lock has been updated - .bzr/branch/lock still needs to be a standard file.
Line 58: Line 42:

I would love to see this feature. It would get me one step further to the endeavour of synchronising $HOME.}}}


Bound branches are a way to make sure that both a local branch and a remote branch have the same revisions. This is particularly useful if one likes to work on two machines or if one works on a laptop and then pushes a branch into a public place.

Bound branches can be stated in simpler terms. When a branch is bound to another branch, the commits for the branch will be applied to the other branch first.

How do I use bound branches?

General description of setting up bound branches

The general workflow looks something like this:

  • Push a branch to somewhere else, perhaps your ISP.
  • Make sure the pushed branch is up to date
  • cd into the branch that you want to bind to the remote branch
  • run the bzr bind LOCATION-OF-OTHER-BRANCH command

An alternative method is to use bzr checkout, which currently defaults to creating a bound branch when not invoked with --lightweight.

Examples of how to set up bound branches

 $ cd somebranch/
 $ bzr push s
 $ bzr bind s

From now on, commits to the local branch will go to the other branch first.

Or, using checkout

 $ bzr checkout s

How to make a branch unbound

One can unbind a branch by changing into the working tree of a bound branch and running:

$ bzr unbind

Questions & answers

mutually bound branches

Is it possible/recommanded to have mutually bound branches? For example, working on two different machines, and keeping the branches synchronized.


I would love to see this feature. It would get me one step further to the endeavour of synchronising $HOME.