"bzr info" gives no hint that a branch is a bound branch, or where it is bound to.

Bug #82603 reported by Andrew Bennetts
6
Affects Status Importance Assigned to Milestone
Bazaar
Fix Released
Medium
Unassigned
bzr (Ubuntu)
Fix Released
Medium
Unassigned

Bug Description

  affects bzr

I have a bound branch:

andrew@steerpike:~/warthogs/bzr/hpss$ cat .bzr/branch/bound
sftp://bazaar.launchpad.net/%7Ebzr/bzr/hpss/

However, nothing in the "bzr info" output indicates this (except the long pause
before displaying working tree stats while it does some network activity):

andrew@steerpike:~/warthogs/bzr/hpss$ bzr info
Location:
    shared repository: file:///home/andrew/warthogs/bzr/
  repository checkout: hpss

Related branches:
      parent branch: file:///home/andrew/warthogs/bzr/split-smart/
  publish to branch: bzr+ssh://xxx.xxx.xxx/hpss

Format:
       control: Meta directory format 1
  working tree: Working tree format 3
        branch: Branch format 5
    repository: Knit repository format 1

In the working tree:
       543 unchanged
         0 modified
         0 added
         0 removed
         0 renamed
         0 unknown
       406 ignored
        46 versioned subdirectories

Branch history:
      2113 revisions
       694 days old
   first revision: Wed 2005-03-09 04:08:15 +0000
  latest revision: Thu 2007-02-01 16:03:16 +1100

Revision store:
      9144 revisions
     42242 KiB

I am using bzr.dev (and bzr 0.14).

-Andrew.

Revision history for this message
John A Meinel (jameinel) wrote :

This seems to occur when you have a heavyweight checkout inside a local shared repository.

Aaron- did your recent 'bzr info' changes help this at all?

Changed in bzr:
importance: Undecided → Medium
status: Unconfirmed → Confirmed
Revision history for this message
Phil Frost (bitglue) wrote :
Download full text (3.7 KiB)

# I have a very similar problem:

~/bzrtest $ bzr init-repo --no-trees repository
~/bzrtest $ bzr init repository/dev
~/bzrtest $ bzr checkout --lightweight repository/dev/
~/bzrtest $ cd dev
~/bzrtest/dev $ touch one
~/bzrtest/dev $ bzr add one
added one
~/bzrtest/dev $ bzr ci -m 'added one'
added one
Committed revision 1.
~/bzrtest/dev $ cd ../repository/dev/
~/bzrtest/repository/dev $ bzr push ../../imagine_this_is_a_remote_server
Created new branch.
~/bzrtest/repository/dev $ bzr bind ../../imagine_this_is_a_remote_server/

# at this point, the situation is this:
# ./repository -- a --no-trees repository
# ./repository/dev -- a branch in that repo
# ./dev -- a lightweight checkout of ./repository/dev
# ./imagine_this_is_a_remote_server -- a mirror of the dev branch.
# ./repository/dev is bound to this. My understanding is that this is
# identical to ./repository/dev being a "checkout" of
# ./imagine_this_is_a_remote_server; the only difference being the way it was
# created.

# now, let's see what info will tell us. First, ./repository/dev. What's odd
# about this output is that it doesn't say that it is bound to
# imagine_this_is_a_remote_server.

~/bzrtest/repository/dev $ bzr info
Repository bound branch (format: dirstate or knit)
Location:
  shared repository: file:///Users/pfrost/bzrtest/repository/
  repository branch: dev

Related branches:
  publish to branch: file:///Users/pfrost/bzrtest/imagine_this_is_a_remote_server/

# next, ./dev, the leightweight checkout. What's odd here is that it *does* say
# that ./dev is a checkout of ./imagine_this_is_a_remote_server, but it's not!
# It's a checkout of ./repository/dev/ in my mind.
#
# I think the issue here may be overloading definitions of the word "checkout".
# From what I gather in IRC, there are two types of relationships involved.
# One, a working directory is always associated to exactly one branch. Two, a
# branch may be "bound" with "bzr bind" to another branch, the semantics being
# that any commits to one branch are applied to the other branch.
#
# A confusing problem is that one of these relationships is called a
# "lightweight checkout" (and then, only when the working tree and branch
# happen to be in different directories) and the other is a "heavyweight
# checkout". This implies a "checkout" is either "heavy" or "light", but in
# fact it can be both. If a branch is bound to another, but doesn't have a
# working tree in the same directory, is it still a checkout?

~/bzrtest/repository/dev $ cd ../../dev
~/bzrtest/dev $ bzr info
Lightweight checkout (format: dirstate or dirstate-tags)
Location:
       light checkout root: file:///Users/pfrost/bzrtest/dev/
  repository checkout root: file:///Users/pfrost/bzrtest/repository/dev/
        checkout of branch: file:///Users/pfrost/bzrtest/imagine_this_is_a_remote_server/
         shared repository: file:///Users/pfrost/bzrtest/repository/

Related branches:
  publish to branch: file:///Users/pfrost/bzrtest/imagine_this_is_a_remote_server/

# finally add a file and check that all three places pick it up. I had to
# check, because I wasn't sure if ./repository/dev really was bound to
# imagine_this_is_a_remote_server.

...

Read more...

Revision history for this message
Phil Frost (bitglue) wrote :

Forgot to mention, I'm using 0.18.

Changed in bzr:
importance: Undecided → Medium
status: New → Confirmed
Revision history for this message
Alexander Belchenko (bialix) wrote :

> Forgot to mention, I'm using 0.18.
try to upgrade to recent version, please.

Revision history for this message
John A Meinel (jameinel) wrote :

I believe this has been fixed for a while, but in 'bzr.dev' I get:
 % bzr info
Repository checkout (format: pack-0.92)
Location:
  repository checkout root: .
        checkout of branch: http://bazaar-vcs.org/bzr/bzr.dev/
         shared repository: /home/jameinel/dev/bzr
...

So it says I am a heavy-weight checkout inside a local shared repository, and gives the target branch.

Changed in bzr:
status: Confirmed → Fix Released
Changed in bzr (Ubuntu):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.