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

Re: [PATCH 2/3] added --batch option to mktree

From
JMJosh Micich <josh.micich@gmail.com>
Date
May 14, 2009, 09:24 UTC
Message-ID
<a644352c0905140224g41f645c1l734bee791656ea1d@mail.gmail.com>
In-Reply-To
<7vhbzoxl5k.fsf@alter.siamese.dyndns.org>
On Wed, May 13, 2009 at 11:18 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> This option enables creation of many tree objects with a single process
>
>... which is desirable in what way?  how does this justify the cost of
>maintenance?  what is it used for?

I have been writing a few of my own utilities on top of basic git commands and got mild performance gains from using the existing '--batch' option with "git cat-file" instead of executing new "git cat-file -p <sha>" processes for each object I wish to read. Later I was writing a utility for mirroring another SCM (creates many trees), and I faced a similar performance issue with "git mktree". After adding the '--batch' option, I experienced about a 30% speed increase.

If you find this logic persuasive, I can fix all the other issues and re-submit this patch.

>> +--batch::
>I think you want an blank line before this.
right
>> @@ -125,20 +125,42 @@ int cmd_mktree(int ac, const char **av, const char
>> *prefix)
>
>Linewrapped and would not apply.

sorry - gmane web interface did that. BTW - does git have a coding standard for maximum line length?

>What do you mean by "interactively"?  Does anybody type from the standard
>input?

I guess I was trying to stress the point that the created tree object ids are output immediately as the complete text for each tree is received. Other (bad) applications I have seen wait for EOF on stdin before sending anything to stdout, and this is exactly what I had avoided in the impl. Perhaps you could suggest better phrasing.

Show 5 quoted lines
>Decl-after-statement.
>No C++ comment please;
>Lose excess {} pair;
>Style: have an explicit ";" for an empty statement.
>used = 0; /* .... */
sorry - bad habits. gotta work out how to get my compiler to warn me about these
Show 7 quoted lines
>> +             if (is_batch_mode && got_eof && used < 1) {
>> +                     // allow input to finish with a new-line (or not)
>
>Style: have an explicit ";" for an empty statement.
>
>But more importantly, what does this comment mean?  Why do you want to be
>loose in input format validation?

I agree with your implied suggestion that tight input validation is better. I was actually trying to keep consistent with the way I believe mktree works today. The final \n is optional as far as I can tell.

Previous: Junio C HamanoNext: Sverre Rabbelier
Message 7 of 16 in “Proposed patch for mktree [0/3]”
  1. Josh MicichMay 14, 2009
  2. 1/3 '--missing' option for mktree: re-added strbuf_release(&p_uq), Updated man pageJosh Micich, May 14, 2009
  3. Junio C HamanoMay 14, 2009
  4. Josh MicichMay 14, 2009
  5. 2/3 added --batch option to mktreeJosh Micich, May 14, 2009
  6. Junio C HamanoMay 14, 2009
  7. Josh MicichMay 14, 2009
  8. Sverre RabbelierMay 14, 2009
  9. Josh MicichMay 14, 2009
  10. 3/3 improved validation of entry type in mktreeJosh Micich, May 14, 2009
  11. Junio C HamanoMay 14, 2009
  12. Josh MicichMay 14, 2009
  13. Josh MicichMay 14, 2009
  14. Jakub NarebskiMay 15, 2009
  15. Josh MicichMay 15, 2009
  16. Junio C HamanoMay 15, 2009

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.