emacs-devel
[Top][All Lists]
Advanced

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

Re: Basic Bazaar guide for Emacs hackers.


From: Jason Earl
Subject: Re: Basic Bazaar guide for Emacs hackers.
Date: Tue, 01 Dec 2009 12:56:26 -0700
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)

Eli Zaretskii <address@hidden> writes:

>> Date: Tue, 1 Dec 2009 10:26:02 -0500
>> From: Karl Fogel <address@hidden>
>> Cc: =?ISO-8859-1?Q?=D3scar_Fuentes?= <address@hidden>, address@hidden,
>>      address@hidden
>> 
>> > While the distributed workflow might be a better approach for
>> > people starting with a clean slate, existing developers (and users
>> > who track CVS) do not necessarily have the time to invest in
>> > learning a new workflow immediately, and are looking for minimum
>> > disruption immediately after the switch from CVS to bzr. So there
>> > is definite value in an additional document describing a quick and
>> > painless transition from CVS, and probably a migration path to the
>> > distributed workflow for when the developer has time to adjust
>> > their habits.
>> 
>> Absolutely.  We already have the additional document, and it is
>> prominently linked to, so no problems there.
>
> So, as long as we all think that the "Quick Start" page will be useful
> to some, here are a comment about it:
>
> The setup and workflow described by this page is advertised (by its
> parent "Bzr For Emacs Devs") as ``CVS-like''.  But this isn't really
> accurate, is it?  The command shown to checkout the trunk is this:
>
>     bzr checkout URL_TO_UPSTREAM_TRUNK trunk
>
> However, IIUC, the slightly modified checkout command
>
>     bzr checkout --lightweight URL_TO_UPSTREAM_TRUNK trunk

I *really* don't think that you want to advertise lightweight checkouts
that point to non-local URLs.

> is a closer equivalent of the CVS checkout, because it only checks out
> the working tree without creating a full local copy of history.  The
> history is only needed if one wants to commit locally.  People who
> don't plan on using local commits don't need to pay the extra price of
> larger disk storage and probably also some additional time it takes to
> do a heavyweight checkout.

The history is also needed if you want to do any sort of bzr command,
like bzr log or bzr annotate.  Heck, even bzr status requires access to
the parent branch.  Even if you don't want to commit locally (and with a
checkout you probably *don't* want to commit locally), it is still
worthwhile to have the branch history on a local disk.

Using a lightweight checkout might be a net win for people who are
simply interested in following Emacs development if the lightweight
checkout required less time to checkout or if it required you to
download less information, but that's simply not the case with the plain
jane http transport (I do not know if the smart server is an improvement
either, not that it matters as it appears that Savannah is not going to
provide one).

bzr checkouts *work* like cvs checkouts, you don't even need a fancy bzr
repository.  The primary difference is that they still work when
disconnected from the network.  Well, that and with bzr you can rename
files, and commits are atomic, and bzr is actively maintained, etc.

> OTOH, if we think that a heavyweight checkout is the recommended way,
> then we should at least mention its main benefit -- the local commit.
> Currently, the page only hints on that, but stops short of showing the
> commands to use this potential:
>
>   You have in your disk a copy of the VC history of the trunk branch
>   since the last bzr update. Hence, Bazaar does not need to contact a
>   server upstream for displaying logs, reverting edited files,
>   annotating, etc. This is useful for working off-line.
>
>   Bazaar makes possible to commit changes off-line to your local
>   history and send them upstream in one batch.
>
> Personally, I would do both: tell about --lightweight as the
> equivalent of CVS, and also tell about the local commits available
> with the heavyweight checkouts.  But that's me.

At some point we need to point people at the existing Bazaar
documentation.  I personally don't have a problem with CVS-style usage
of Bazaar.  In fact, one of the reasons that I like bzr is that it
allows for this type of usage in situations where it makes sense.

However, a lightweight checkout of a non-local branch is a real loser
performance wise, and it throws away many of the advantages that bzr has
over CVS.  The entire history of the mainline of Emacs can be compressed
into just under 200M.  The entire history of all of the branches of
Emacs is about 10% more than that.

I just don't think that lightweight checkouts is something that we want
to advertise.

Jason




reply via email to

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