Re: bzr repository ready?

From:

Jason Earl

Subject:

Re: bzr repository ready?

Date:

Tue, 24 Nov 2009 18:46:37 -0700

User-agent:

Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)

Richard Stallman <address@hidden> writes:
> There are terminology changes going on, and I'm not fully
> up-to-date with those. But the *semantics* are not changing: the
> normal way to use Bazaar is to fetch full historical data with
> each branch, so you have everything locally, and this is also what
> we are recommending for Emacs development.
>
> I am not sure how to reconcile that statement with what people said
> about lightweight checkouts -- that they are comparable to CVS
> checkouts in what they contain.
Yes, a lightweight checkout is comparable to a CVS checkout in that it
relies on the branch it is pointing to for history. If you created a
lightweight checkout from a remote branch you would be coming as close
to recreating CVS as is possible with a more modern version control
system. Bzr would still give you atomic commits, and the ability to
move files around without losing history (to name a few advantages), but
you would have to be connected to the network for most commands to work.
> Is the idea of lightweight checkouts that you first make a local
> repository and then make a lightweight checkout from that?
Yes, that's it precisely. Lightweight checkouts basically allow you to
create a working tree from a branch that you have in the repository. If
you only plan on having one branch on your local machine then a
lightweight checkout is *not* what you want. However, if you are
working on several different branches at the same time and you don't
want to have several different copies of the Emacs source code lying
around (with the attendant requirement to run make bootstrap on each of
these source trees), then a lightweight checkout is the solution to your
problem.
In that case you create a local repository to hold your branches and you
connect a lightweight checkout to the local branch you want to hack on
using "bzr switch". If later you need to hack on a different branch you
commit your changes to your local branch and bzr switch to the other
branch and hack there. Your source tree will be changed to match the
contents of the branch that you switch too, and all of the unversioned
files (like the stuff make bootstrap generates) will be there so that
make will only build what needs to be built.
If you have read:
http://www.emacswiki.org/emacs/BzrForEmacsDevs
You'll notice that it doesn't cover lightweight checkouts at all as
these checkouts are a more advanced topic. Lightweight checkouts are
handy, but they are not necessary. I personally think that many Emacs
hackers are likely to end up using them in the long run, but bzr allows
for a great deal of flexibility when it comes to designing your own
workflow.
Jason