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

Re: [PATCH/RFC v3 04/16] Connect fast-import to the remote-helper via pipe, adding 'bidi-import' capability.

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 15, 2012, 17:41 UTC
Message-ID
<7vboic6oik.fsf@alter.siamese.dyndns.org>
In-Reply-To
<2444647.P1AdWcSsQk@flomedio>
Florian Achleitner <florian.achleitner.2.6.31@gmail.com> writes:
Show 19 quoted lines
>> The updated code frees argv[] immediately after start_command()
>> returns, and it may happen to be safe to do so with the current
>> implementation of start_command() and friends, but I think it is a
>> bad taste to free argv[] (or env[] for that matter) before calling
>> finish_command().  These pieces of memory are still pointed by the
>> child_process structure, and users of the structure may want to use
>> contents of them (especially, argv[0]) for reporting errors and
>> various other purposes, e.g.
>> 
>> 	child = get_helper();
>> 
>>         trace("started %s\n", child->argv[0]);
>> 
>> 	if (finish_command(child))
>>         	return error("failed to cleanly finish %s", child->argv[0]);
>
> Yes, sounds reasonable. The present of immedate clearing has the advantage 
> that I don't have to store the struct argv_array, as struct child_process only 
> has a member for const char **argv.

And updated code shouldn't have to store struct argv_array either. If you just give the ownership of argv_array.argv to child_process and clean it as part of destroying the child_process, you do not have to worry about argv_array at all.

In order to cleanly support that use case at the API level, we may want to introduce argv_array_detach() that is similar in spirit to strbuf_detach(), which transfers ownership of the underlying memory to the caller.

Previous: Florian AchleitnerNext: Junio C Hamano
Message 30 of 36 in “GSOC remote-svn”
  1. 00/16 GSOC remote-svnFlorian Achleitner, Aug 14, 2012
  2. 01/16 Implement a remote helper for svn in C.Florian Achleitner, Aug 14, 2012
  3. 02/16 Integrate remote-svn into svn-fe/Makefile.Florian Achleitner, Aug 14, 2012
  4. 03/16 Add svndump_init_fd to allow reading dumps from arbitrary FDs.Florian Achleitner, Aug 14, 2012
  5. 04/16 Connect fast-import to the remote-helper via pipe, adding 'bidi-import' capability.Florian Achleitner, Aug 14, 2012
  6. 05/16 Add documentation for the 'bidi-import' capability of remote-helpers.Florian Achleitner, Aug 14, 2012
  7. 06/16 remote-svn, vcs-svn: Enable fetching to private refs.Florian Achleitner, Aug 14, 2012
  8. 07/16 Add a symlink 'git-remote-svn' in base dir.Florian Achleitner, Aug 14, 2012
  9. 08/16 Allow reading svn dumps from files via file:// urls.Florian Achleitner, Aug 14, 2012
  10. 09/16 vcs-svn: add fast_export_note to create notesFlorian Achleitner, Aug 14, 2012
  11. 10/16 Create a note for every imported commit containing svn metadata.Florian Achleitner, Aug 14, 2012
  12. 11/16 When debug==1, start fast-import with "--stats" instead of "--quiet".Florian Achleitner, Aug 14, 2012
  13. 12/16 remote-svn: add incremental import.Florian Achleitner, Aug 14, 2012
  14. 13/16 Add a svnrdump-simulator replaying a dump file for testing.Florian Achleitner, Aug 14, 2012
  15. 14/16 transport-helper: add import|export-marks to fast-import command line.Florian Achleitner, Aug 14, 2012
  16. 15/16 remote-svn: add marks-file regeneration.Florian Achleitner, Aug 14, 2012
  17. 16/16 Add a test script for remote-svn.Florian Achleitner, Aug 14, 2012
  18. Florian AchleitnerAug 15, 2012
  19. Junio C HamanoAug 15, 2012
  20. Florian AchleitnerAug 15, 2012
  21. Florian AchleitnerAug 15, 2012
  22. Junio C HamanoAug 15, 2012
  23. Junio C HamanoAug 15, 2012
  24. Florian AchleitnerAug 15, 2012
  25. Junio C HamanoAug 14, 2012
  26. Junio C HamanoAug 14, 2012
  27. Florian AchleitnerAug 15, 2012
  28. Junio C HamanoAug 14, 2012
  29. Florian AchleitnerAug 15, 2012
  30. Junio C HamanoAug 15, 2012
  31. Junio C HamanoAug 14, 2012
  32. Junio C HamanoAug 14, 2012
  33. Florian AchleitnerAug 15, 2012
  34. Junio C HamanoAug 14, 2012
  35. Florian AchleitnerAug 15, 2012
  36. David Michael BarrAug 14, 2012

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.