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

Re: parsecvs fails even on simple input

From
RKRoman Kagan <rkagan@sw.ru>
Date
Jun 27, 2007, 15:33 UTC
Message-ID
<20070627153300.GA27933@rkagan.sw.ru>
In-Reply-To
<1182720667.13289.41.camel@neko.keithp.com>
On Sun, Jun 24, 2007 at 10:31:07PM +0100, Keith Packard wrote:
Show 10 quoted lines
> On Fri, 2007-06-22 at 15:36 +0400, Roman Kagan wrote:
> 
> > The problem is the following: after that commit parsecvs tries to add
> > objects to the git tree on its own via calls to libgit; however, in
> > between it runs git-pack-objects.  Thus objects move to pack files
> > without libgit being aware of it; this results in 'ivalid object'
> > errors.
> 
> Sticking a call to reprepare_packed_git() after the pack creation fixes
> this nicely.

Ehm sort of... Except that I woudn't call that extern declaration nice.

I'm now tracking down another problem which I didn't see before: parsecvs apparently doesn't close .git-cvs/log-XXX files and ends up exhausting the open file descriptor limit. I'll update when I have more info.

> >  Wouldn't it be better to teach parsecvs
> > to speak git-fast-import language instead?
> 
> Avoiding fork/exec is rather important for parsecvs perforamance.
Avoiding _one_ fork/exec is certainly not.

OTOH git-fast-import seems to be essentially the public API for the parsecvs kind of tasks. It may be wiser from the maintenance POV to use that instead of direct libgit calls (unless parsecvs is going to land in the git tree). I'll try to find the time and take a look at this somewhere next week.

Roman.
Previous: Shawn O. PearceNext: Keith Packard
Message 4 of 5 in “parsecvs fails even on simple input”
  1. Roman KaganJun 22, 2007
  2. Keith PackardJun 24, 2007
  3. Shawn O. PearceJun 25, 2007
  4. Roman KaganJun 27, 2007
  5. Keith PackardJun 27, 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.