emacs-devel
[Top][All Lists]
Advanced

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

Re: Emacs Bazaar repository


From: Stephen J. Turnbull
Subject: Re: Emacs Bazaar repository
Date: Sat, 15 Mar 2008 09:00:27 +0900

Eli Zaretskii writes:

 > Incidentally, why are we concentrating on "bzr log"?

Partly because intuitively it "should" be fast, it's just a "cat" of
the index file.  But this isn't true for bzr, so people's expectations
are contradicted.

 > is that a frequent operation?

Yes.  You need changeset IDs frequently for communicating with users
and other developers, and for diffs.

 > With CVS, I find myself doing "cvs log" only once in a few months,
 > when I'm looking for a change corresponding to some ChangeLog
 > entry.

I think that you will pretty quickly find that ChangeLogs as you know
them have to be abandoned, because they cause merge conflicts at
O(n^2) or so, where n = "rate of commits/unit of time".  Also, most
developers in projects using VCSes more recent than CVS use "<vcs>
log" a lot.  A big problem is that ChangeLogs either have to be
excluded from their changesets, or you can't include a changeset ID in
the ChangeLog entry corresponding to the changeset.  (IDs are secure
hashes and thus you must solve a fixed-point problem for a secure hash
function if the ChangeLog containing the ID is part of the changeset!)

 > Aren't "push" and "pull" much more important, as far as speed is
 > concerned, for everyday work?

In theory, yes.  In practice, no.  They're done sufficiently often
that (with the possible exception of Darcs) all recent VCSes are
net-lag-bound because users won't put up with speed issues for local
repos.  In practice these also only have "big O" problems when you're
pulling an old and active branch for the first time, which is
acceptable if success is guaranteed.  (Another problem with bzr, as
we've seen -- a long pull is likely to fail because the requested
archives may disappear before they get shipped out the wire.  This is
probably a configuration issue with Jason's repo, typically there are
parameters you want to tweak for public repos vs private branches.)

 > Also the equivalent of "cvs diff", I think.

With the exception of Darcs (which can be O(r1 - r2)), all modern
VCSes do this quickly.

 > Those are the ops I use much more frequently than "log" and "annotate".

I use both fairly frequently, and it's very annoying to me when they
take more than 5 seconds or so.  YMMV of course.




reply via email to

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