[Openstack] Moving code hosting to GitHub

Robert Collins robert.collins at canonical.com
Fri Apr 22 08:07:33 UTC 2011


On Fri, Apr 22, 2011 at 4:11 PM, Thomas Goirand <thomas at goirand.fr> wrote:
>
> git checkout -b new-soren-branch
>
> This is pretty instant. Now do:
>
> bzr branch trunk new-soren-branch
>
> and wait for all files to copy ...

So, bzr had a design concept at the start that folk should start in
one dir and grow - like RCS - because it gives a /very/ smooth
learning curve.

Unfortunately, it also sucks terribly as your project size grows and
grows and grows. It is however only a /default/ and as such can be
changed.

The bzr project is working (right now) on a fresh /default/ which will
work a lot better. Its also going to be a simpler layout on disk than
the current configuration which works well with really cheap branches.
I've copeid Martin Pool, the project lead, who can talk about the
plans there if you're interested.

Anyhow - this is the cheat sheet for making branches cheap with
vanilla bzr (no plugins needed etc etc):

$ bzr init-repo --no-trees project
$ cd project
$ bzr branch <source> trunk
$ bzr checkout --lightweight trunk working
# now trunk is a naked branch and working is a historyless checkout

# Key operations:
# make a new branch *and* switch to hacking on it
$ cd working
$ bzr switch -b newbranchname
$ ls ..
$ trunk working newbranchname
$ bzr info | grep checkout of branch:
.../newbranchname

# delete a branch
$ bzr switch trunk
$ rm -r ../newbranchname

# push the current branch
$ bzr push

# push an arbitrary branch (the .. is an artifact of the awkardness
about this setup I
#  mentioned before; it *is* being fixed by the work currently underway.)
$ bzr push -d ../branchname

# Finally, I like having the following config in my
~/.bazaar/locations.conf which lets me do
$ bzr push
# and have bzr Just Know where to push to by default for new branches
# This config is for my launchpad branches
[/home/robertc/launchpad]
submit_branch = /home/robertc/launchpad/devel
public_branch = bzr+ssh://bazaar.launchpad.net/~lifeless/launchpad
public_branch:policy = appendpath
push_location = lp:~lifeless/launchpad
push_location:policy = appendpath
merge_target = /home/robertc/launchpad/devel

I hope this helps with the mind numbing slowness of completely copying
history every time.

PS John Meinel has just made complete history copies take about 70%
less time in bzr trunk.

PPS on the networking side the ticket about network performance in
Shanghai I filed is moving, I've forwarded the trace and will be
following up after easter.

-Rob




More information about the Openstack mailing list