All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Hopwood <david.nospam.hopwood@blueyonder.co.uk>
To: xen-devel@lists.xensource.com
Subject: Re: Bitkeeper
Date: Tue, 12 Apr 2005 01:21:01 +0100	[thread overview]
Message-ID: <425B146D.5020909@blueyonder.co.uk> (raw)
In-Reply-To: <425A1F16.6000207@diku.dk>

Jacob Gorm Hansen wrote:
> From what I have read about darcs, the problem is the 'theory of 
> patches' approach which demands that all patches be loaded into memory 
> at once so that the order in which they should be applied can be 
> determined via a n*n comparison of the contents of each patch against 
> the contents of all other patches.

I don't know precisely why the current darcs implementation needs as
much memory as it does, but I know it is not for the above reason. An
important property of the 'theory of patches' is that merges can be done
in arbitrary order (see <http://abridgegame.org/darcs/manual/node8.html>).

The size of a merged patch will be similar to the sum of the sizes of the
input patches, just as in other SCSs. A very simple-minded implementation
that literally reconstructs the whole repository by patching an empty one
would require memory proportional to the repository size, but there's
nothing about the theory that would require you to handle the whole
repository at once.

 > Hmm, the Wiki page about darcs performance looks rather scary:
 >
 > http://www.scannedinavian.org/DarcsWiki/Performance

Those look like implementation nits to me, with known workarounds.

Also remember that other SCSs only support what darcs calls 'hunk patches'.
IIUC, it's only if you use features of darcs that are not present in other
SCSs that you hit the exponential complexity cases that are mentioned on the
wiki page.

That said, I've heard reports that the current darcs implementation can get
a repository into states that require an understanding of its internals to
get out of. It wouldn't be the only SCS that has that property, but people
may be more used to the particular ways in which CVS et al get confused.

> While all this talk of quantum operators may sound sexy at first, I am
> fairly sure it is vastly overkill for real-world source-control.

<sigh>. From a marketing point of view, even mentioning quantum mechanics
is a disaster. It might have been fine when the audience for darcs was three
physicists, but that page really should be rewritten. Anyway, the limit of
the analogy between QM and darcs' theory of patches is that they both involve
commutative operators; that's all.

> I other words, I would not be too optimistic about darcs having its 
> performance issues cleared up in the shorter term. Besides, there is the 
> issue of using a tool written in a language that the majority of 
> programmers will find hard to understand*.

The majority of programmers would have difficulty in understanding an SCS
implementation written in any language. Plenty of programmers understand
Haskell.

-- 
David Hopwood <david.nospam.hopwood@blueyonder.co.uk>

  reply	other threads:[~2005-04-12  0:21 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-04-07 22:03 Bitkeeper Paul Dorman
2005-04-07 22:18 ` Bitkeeper Jacob Gorm Hansen
2005-04-07 23:26   ` Bitkeeper Tupshin Harper
2005-04-07 23:53     ` Bitkeeper Jacob Gorm Hansen
2005-04-07 23:55     ` Bitkeeper Scott Parish
2005-04-08  0:21       ` Bitkeeper Jacob Gorm Hansen
2005-04-08  0:21         ` Bitkeeper Scott Parish
2005-04-08  6:55         ` Bitkeeper Chris Wright
2005-04-10 15:34         ` Bitkeeper Sean Perry
2005-04-11  6:54           ` Bitkeeper Jacob Gorm Hansen
2005-04-12  0:21             ` David Hopwood [this message]
  -- strict thread matches above, loose matches on Subject: below --
2006-03-07 16:23 BitKeeper Amit Vijairania
2006-03-07 17:51 ` BitKeeper Yoanis Gil Delgado
2006-03-07 17:08   ` BitKeeper Amit Vijairania
2006-03-07 18:15     ` BitKeeper Yoanis Gil Delgado
2006-03-07 18:33       ` BitKeeper Hans Reiser
2006-03-07 18:31   ` BitKeeper Hans Reiser
2006-03-07 22:27     ` BitKeeper Peter van Hardenberg
2004-08-16 22:21 Bitkeeper Brown, Len
2004-08-16 21:43 Bitkeeper Nathan Bryant
2003-07-19 16:00 Bitkeeper John Bradford
2003-07-19 16:17 ` Bitkeeper Mark Mielke
2003-07-19 10:33 Bitkeeper John Bradford
2003-07-18 19:51 Bitkeeper Richard Stallman
2003-07-18 20:06 ` Bitkeeper Rik van Riel
2003-07-18 20:22   ` Bitkeeper nick
2003-07-18 20:40     ` Bitkeeper Shawn
2003-07-18 21:28     ` Bitkeeper Alan Cox
2003-07-19 23:45       ` Bitkeeper Pavel Machek
2003-07-20  0:23         ` Bitkeeper Jeff Garzik
2003-07-18 20:32   ` Bitkeeper Shawn
2003-07-18 20:44     ` Bitkeeper Rik van Riel
2003-07-19 18:42     ` Bitkeeper Jan-Benedict Glaw
2003-07-19 18:49       ` Bitkeeper Larry McVoy
2003-07-19 18:57         ` Bitkeeper Jan-Benedict Glaw
2003-07-19 19:05           ` Bitkeeper Larry McVoy
2003-07-19 20:02             ` Bitkeeper Jan-Benedict Glaw
2003-07-18 20:09 ` Bitkeeper Trever L. Adams
2003-07-18 20:44   ` Bitkeeper Shawn
2003-07-18 21:03   ` Bitkeeper Larry McVoy
2003-07-18 21:58     ` Bitkeeper Trever L. Adams
2003-07-18 22:17   ` Bitkeeper Mike Fedyk
2003-07-18 22:39     ` Bitkeeper Alan Cox
2003-07-19  8:20       ` Bitkeeper Eric W. Biederman
2003-07-19 15:34         ` Bitkeeper Mark Mielke
2003-07-18 22:29   ` Bitkeeper Scott Robert Ladd
2003-07-18 20:30 ` Bitkeeper Michael Buesch
2003-07-18 20:36   ` Bitkeeper Shawn
2003-07-18 20:44 ` Bitkeeper Larry McVoy
2003-07-18 21:03   ` Bitkeeper Shawn
2003-07-18 21:08   ` Bitkeeper David Schwartz
2003-07-18 21:28     ` Bitkeeper Shawn
2003-07-18 21:23   ` Bitkeeper Alan Cox
2003-07-18 21:50     ` Bitkeeper David Lang
2003-07-18 21:54     ` Bitkeeper Valdis.Kletnieks
2003-07-18 22:16       ` Bitkeeper Alan Cox
2003-07-18 22:01     ` Bitkeeper Trever L. Adams
2003-07-18 22:27     ` Bitkeeper Larry McVoy
2003-07-19  9:45       ` Bitkeeper Marcus Metzler
2003-07-19 20:42       ` Bitkeeper Adrian Bunk
2003-07-19 21:57         ` Bitkeeper Larry McVoy
2003-07-19 22:28           ` Bitkeeper Adrian Bunk
2003-07-19 22:39             ` Bitkeeper Larry McVoy
2003-07-19 23:45               ` Bitkeeper Adrian Bunk
2003-07-20  0:02                 ` Bitkeeper Larry McVoy
2003-07-20  0:10                   ` Bitkeeper Tupshin Harper
2003-07-20  0:26                     ` Bitkeeper Valdis.Kletnieks
2003-07-20  1:11                       ` Bitkeeper Jeff Garzik
2003-07-20  0:23                   ` Bitkeeper Jeff Garzik
2003-07-20  0:28                   ` Bitkeeper jiho
2003-07-20  0:30                   ` Bitkeeper Valdis.Kletnieks
2003-07-20  0:50                     ` Bitkeeper Larry McVoy
2003-07-20  0:22                 ` Bitkeeper Jeff Garzik
     [not found]               ` <3F19DA04.80809@c-zone.net>
     [not found]                 ` <20030719235526.GA31428@work.bitmover.com>
2003-07-20  0:21                   ` Bitkeeper jiho
2003-07-19 23:57       ` Bitkeeper Pavel Machek
2003-07-18 21:06 ` Bitkeeper Jörn Engel
2003-07-18 22:00   ` Bitkeeper Svein Ove Aas
2003-07-18 23:50 ` Bitkeeper James Simmons
2003-07-20  2:50 ` Bitkeeper Zack Brown
2003-02-15  8:21 BitKeeper John Bradford
2003-02-15 22:26 ` BitKeeper Pavel Machek
2003-02-16 11:40   ` BitKeeper John Bradford
2002-10-14 15:11 bitkeeper Cameron, Steve
2002-10-14 15:14 ` bitkeeper Cort Dougan
2002-10-14 15:25 ` bitkeeper Hollis Blanchard
2002-10-15  8:45   ` bitkeeper fred
2002-10-15  9:47     ` bitkeeper Kenneth Johansson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=425B146D.5020909@blueyonder.co.uk \
    --to=david.nospam.hopwood@blueyonder.co.uk \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.