Converting from CVSNT
Matt Mackall
mpm at selenic.com
Tue Jun 30 17:15:35 CDT 2009
On Tue, 2009-06-30 at 17:42 -0400, Greg Ward wrote:
> On Tue, Jun 30, 2009 at 5:28 PM, Michael Haggerty<mhagger at alum.mit.edu> wrote:
> > Please correct me if I'm wrong in inferring that Mercurial doesn't care
> > whether the commits are in chronological order, but benefits from having
> > similar revisions near each other because the revlog format computes
> > diffs between revisions that happen to be adjacent in the file, not
> > revisions that are adjacent in the DAG. (I always wondered how the
> > revlog format represents branches, since it seems like such a linear
> > format. Obviously the answer is that it *doesn't* represent branches
> > very efficiently, at least in the general case.)
>
> That's a nice clear, elegant explanation. But I don't know how
> accurate it is; perhaps someone with a deeper understanding can
> enlighten us.
>
> > Anyway, if is it not too much work to determine a more advantageous (in
> > the sense of "efficient for Mercurial") ordering from among all of the
> > topologically valid choices, maybe cvs2svn could generate the changesets
> > in that order.
>
> That feels wrong. If there exists an ordering that makes Mercurial
> more space-efficient (and therefore time-efficient), shouldn't code to
> determine and impose that ordering live with Mercurial?
>
> > On the other hand, it might make more sense to develop a tool that can
> > optimize an existing Mercurial repository.
>
> Bingo... at least as a short-term measure. What you're looking for is
> contrib/rewrite-log with Benoit Boissinot's patch to reorder the
> manifest. I'm not sure where the canonical version of that patch
> lives; not in any of the official Hg repositories. I keep a copy in
> my personal patch queue just because I thought it might be handy to
> have.
>
> > It seems to me that such a
> > tool could usefully be applied to repositories that have been in use for
> > a while--a kind of "defragmentation" of lines of development, or "hg
> > repack" by analogy with git. Then the convert extension wouldn't have
> > to deal with this issue at all.
>
> Keep making suggestions like that. With any luck, MPM will be so
> outraged by the idea that Mercurial needs a "pack" operation that
> he'll either 1) fix the problem or 2) explain how to fix the problem
> so someone else can do it. ;-)
The solution has been known for some time: parent delta.
--
http://selenic.com : development and support for Mercurial and Linux
More information about the Mercurial
mailing list