Bazaar

Bazaar

 




Wiki Tools

  • Find Page
  • Recent Changes
  • Page History
  • Attachments

Differences between revisions 4 and 5
Revision 4 as of 2006-03-08 05:39:40
Size: 2169
Editor: MatthieuMoy
Comment: A question : are mutually bound branches possible?
Revision 5 as of 2006-03-09 05:00:18
Size: 2402
Comment: Mention checkout creating bound branches at the moment.
Deletions are marked like this. Additions are marked like this.
Line 31: Line 31:
== Example of how to set up bound branches ==
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 ==
Line 38: Line 41:

Or, using checkout
{{{
 $ bzr checkout sftp://me@here.com//home/me/somebranch
}}}

Big Note

This is very new in Bazaar-NG. Expect some heavy bumps in order to play with this feature. In particular:

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.

Description

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 sftp://me@here.com//home/me/newbranch
 $ bzr bind sftp://me@here.com//home/me/newbranch/

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

Or, using checkout

 $ bzr checkout sftp://me@here.com//home/me/somebranch

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.