[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bzr repository ready?

From: Óscar Fuentes
Subject: Re: bzr repository ready?
Date: Fri, 20 Nov 2009 21:39:11 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux)

Lennart Borgman <address@hidden> writes:

> One thing I do not understand is these "lightweight" branches. Sounds
> good, but where are the files?
> I mean if I create a branch and it shares storage with the mirror of
> the mainline, does it still have all the files there that I need to
> compile and build Emacs? Is it just the history and version files that
> are shared, or?

It is essential to distinguish the working copy (aka working tree, the
files you work with) from the VC data (history, metadata, etc).

A lightweight *checkout* uses the history data that resides on the
parent branch, but you still have your working copy. It is very similar
to CVS, where you have your files but for viewing the log, diffing, etc
the repository is used.

A lightweight checkout is simply a way of saving disk space and get a
working copy quickly, as the history data is not copied from the parent
branch to the new branch.

On bzr parlance there are no lightweight branches. There are stacked
branches though, which also use the VC data of the parent branch. The
difference among a checkout and a branch is that when you commit on a
checkout your changes go to the parent branch too, but when you commit
on a branch your changes remain there, and you need another operation
(push) to send them to the parent branch (or to any other branch).

A non lightweight checkout supports committing changes without sending
them to the parent branch, using a command line option. A lightweight
checkout does not support this because it lacks the local VC data.

Actually, a non lightweight checkout is what Bazaar calls a bound
branch. You can unbind a non-ligthweigth checkout anytimme for
converting it to a regular branch and you can bind a branch to some
other branch to convert it to a checkout of that branch.

Bazaar supports quite a few models and can be confusing for those who
only know the centralized paradigm. IMHO the documentation should
recommend a model for beginners and give very detailed instructions for
it (maybe already does, I didn't read it).

For a sane version of the above explanation, execute this on your shell:

bzr help checkouts


reply via email to

[Prev in Thread] Current Thread [Next in Thread]