Revisit Newbie Bazaar Repository and Branch Setup

Neil Martinsen-Burrell nmb at wartburg.edu
Thu Dec 9 20:04:51 GMT 2010


On 2010-12-09 12:47 , Eric Siegerman wrote:
> On Thu, 2010-12-09 at 08:00 -0600, Tom Browder wrote:
>>  From the laptop I did "bzr update" and "bzr commit".
>>
>> I was told revision 492 was committed on the server.
>>
>> On the server in the project branch I then did "bzr update" and I was
>> told that I was at revision 491.
>
> I think the problem is that you have two heavyweight checkouts
> chained together: laptop ->  central ->  company
>
> A commit in "laptop" wants to ripple all the way up to "company",
> but bzr doesn't seem to like that -- at least, when I created a
> simpler version of your setup (using file: URLs and native bzr
> instead of svn for "company"), attempting to commit in "laptop"
> yielded a complaint that, essentially, bzr can't commit to a
> checkout of a checkout (I've lost the exact message).
>
> That was with file: checkouts; when I tried it again with newly
> created bzr+ssh: checkouts, the commit appeared to succeed, but I
> found myself in the situation you describe.
>
> So it looks as though bzr doesn't like chains of heavyweight
> checkouts, but, depending on the transports involved, it only
> sometimes refuses to commit to them.  Aside: Is the latter a bug
> or an unavoidable limitation?

The former is an intentional decision (at least the last time I 
encountered it) so that Bazaar does not have to check for cycles of 
bound branches (A -> B -> A).

I believe that the ability to commit to a bound branch whose parent is 
itself a bound branch over *any* transport is a bug.  Can you give a 
reproduction recipe for what you did?

> Try unbinding "central" from "company"; that should let you
> resync it with "laptop".  Once that's done, you can rebind it and
> resync with "company".

This is the correct fix.  The synchronization for additional branches 
"up the chain" should be manual.

-Neil



More information about the bazaar mailing list