git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Significant performance waste in git-svn and friends

From
Mike Hommey <mh@glandium.org>
Date
Sep 6, 2007, 05:52 UTC
Message-ID
<20070906055211.GC5741@glandium.org>
In-Reply-To
<7vd4wwj16d.fsf@gitster.siamese.dyndns.org>
On Wed, Sep 05, 2007 at 01:40:42PM -0700, Junio C Hamano <gitster@pobox.com> wrote:
Show 7 quoted lines
> Mike Hommey <mh@glandium.org> writes:
> 
> > The same things obviously apply to git-cvsimport and other scripts
> > calling git-hash-object a lot.
> 
> I *obviously* hate this patch, as it makes this Porcelain
> command to be aware of the internal representation too much.

The patch was not supposed to be applied. I said it was lame ;) It was more of a proof of concept.

Anyways, thinking a bit more about it, I was wondering if it wouldn't be a good idea to have Git.pm have a "native" implementation (by native I mean a .so module) for low-level plumbing tools such as hash-object, cat-file and such.

Obviously, reinventing the wheel is not good, so this native implementation would be using a "git library" API, such as what has been done under SoC (though I don't know if this API exposes low-level plumbing functions)

> I wonder if letting fast-import handle the object creation is an
> option, though.

It could, probably. The reason I didn't use it is that it was way quicker to hack a 10 lines patch to create the blobs by hand than it would have been to fork a fast-import object at the correct place during git-svn initialization and piping to it at the appropriate times.

My goal was only to check how faster this would make it not to fork a git-hash-object per blob.

Mike
Previous: Shawn O. PearceNext: Eric Wong
Message 7 of 11 in “Significant performance waste in git-svn and friends”
  1. Mike HommeySep 5, 2007
  2. Junio C HamanoSep 5, 2007
  3. David KastrupSep 5, 2007
  4. Patrick DoyleSep 6, 2007
  5. Shawn O. PearceSep 6, 2007
  6. Shawn O. PearceSep 6, 2007
  7. Mike HommeySep 6, 2007
  8. Eric WongSep 6, 2007
  9. Shawn O. PearceSep 7, 2007
  10. Steven GrimmSep 7, 2007
  11. Mike HommeySep 7, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.