git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Shawn O. Pearce" <spearce@spearce.org>
To: Rocco Rutte <pdmef@gmx.net>
Cc: git@vger.kernel.org
Subject: Re: mercurial to git
Date: Wed, 7 Mar 2007 10:59:29 -0500	[thread overview]
Message-ID: <20070307155929.GD27596@spearce.org> (raw)
In-Reply-To: <20070306210629.GA42331@peter.daprodeges.fqdn.th-h.de>

Rocco Rutte <pdmef@gmx.net> wrote:
> The performance bottleneck is hg exporting data, as discovered by people 
> on #mercurial, the problem is not really fixable and is due to hg's 
> revlog handling. As a result, I needed to let the script feed the full 
> contents of the repository at each revision we walk (i.e. all for the 
> initial import) into git-fast-import.

I thought that hg stored file revisions such that each source file
(e.g. foo.c) had its own revision file (e.g. foo.revdata) and that
every revision of foo.c was stored in that one file, ordered from
oldest to newest?  If that is the case why not strip all of those
into fast-import up front, doing one source file at a time as a
huge series of blobs and mark them, then do the commit/trees later
on using only the marks?

Or am I just missing something about hg?

> This is horribly slow. For mutt 
> which contains several tags, a handfull of branches and only 5k commits 
> this takes roughly two hours at 1 commit/sec.

Not fast-import's fault.  ;-)

> Somewhat related: It would be really nice to teach git-fast-import to 
> init from a previously saved mark file. Right now I use hg revision 
> numbers as marks, let git-fast-import save them, and read them back next 
> time. These are needed to map hg revisions to git SHA1s in case I need 
> to reference something in an incremental import from an earlier run. It 
> would be nice if git-fast-import could do this on its own so that all 
> consumers can benefit and can have persistent marks accross sessions.

Sure, that sounds pretty easy.  I'll try to work that up later
today or tomorrow.
 
-- 
Shawn.

  parent reply	other threads:[~2007-03-07 15:59 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-06 21:06 mercurial to git Rocco Rutte
2007-03-06 21:54 ` Theodore Tso
2007-03-06 22:47   ` Rocco Rutte
2007-03-06 23:08   ` Josef Sipek
2007-03-07  0:11     ` Theodore Tso
     [not found]       ` <20070314111257.GA4526@peter.daprodeges.fqdn.th-h.de>
2007-03-15  0:25         ` Theodore Tso
2007-03-15 10:19           ` Rocco Rutte
2007-03-15 14:12             ` Theodore Tso
2007-03-15 15:19               ` Rocco Rutte
2007-03-15 15:56               ` Linus Torvalds
     [not found]         ` <20070314132951.GE12710@thunk.org>
     [not found]           ` <20070315094434.GA4425@peter.daprodeges.fqdn.th-h.de>
2007-03-15 21:04             ` Theodore Tso
2007-03-15 22:07               ` Rocco Rutte
2007-03-17 11:37                 ` Simon 'corecode' Schubert
2007-03-16  4:53               ` Len Brown
2007-03-08  9:01   ` Rocco Rutte
2007-03-07 15:59 ` Shawn O. Pearce [this message]
2007-03-08  8:56   ` Rocco Rutte
2007-03-07 23:14 ` Shawn O. Pearce
2007-03-08 10:49 ` Rocco Rutte

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=20070307155929.GD27596@spearce.org \
    --to=spearce@spearce.org \
    --cc=git@vger.kernel.org \
    --cc=pdmef@gmx.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).