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

Re: git-clone causes out of memory

From
Derrick Stolee <stolee@gmail.com>
Date
Oct 13, 2017, 13:55 UTC
Message-ID
<53f98311-3c5f-9863-5f6c-bc4f25fad317@gmail.com>
In-Reply-To
<20171013135058.q7vhufdtin42ddic@sigill.intra.peff.net>
On 10/13/2017 9:50 AM, Jeff King wrote:
Show 20 quoted lines
> On Fri, Oct 13, 2017 at 09:39:14AM -0400, Derrick Stolee wrote:
>
>> Since I don't understand enough about the consumers to diff_tree_oid() (and
>> the fact that the recursive behavior may be wanted in some cases), I think
>> we can fix this in builtin/rev-list.c with this simple diff:
>>
>> ---
>>
>> diff --git a/builtin/rev-list.c b/builtin/rev-list.c
>> index ded1577424..b2e8e02cc8 100644
>> --- a/builtin/rev-list.c
>> +++ b/builtin/rev-list.c
>> @@ -285,6 +285,9 @@ int cmd_rev_list(int argc, const char **argv, const char
>> *prefix)
>>
>>          git_config(git_default_config, NULL);
>>          init_revisions(&revs, prefix);
>> +
>> +       revs.pruning.flags = revs.pruning.flags & ~DIFF_OPT_RECURSIVE;
>> +

(Note: I'm running tests now and see that this breaks behavior. Definitely not the solution we want.)

Show 10 quoted lines
> Hmm, this feels wrong, because we _do_ want to recurse down and follow
> the pathspec to see if there are real changes.
>
> We should be comparing an empty tree and d0/d0/d0/d0 (or however deep
> your pathspec goes). We should be able to see immediately that the entry
> is not present between the two and not bother descending. After all,
> we've set the QUICK flag in init_revisions(). So the real question is
> why QUICK is not kicking in.
>
> -Peff

I'm struggling to understand your meaning. We want to walk from root to d0/d0/d0/d0, but there is no reason to walk beyond that tree. But maybe that's what the QUICK flag is supposed to do.

Thanks, -Stolee

Previous: Jeff KingNext: Jeff King
Message 12 of 23 in “git-clone causes out of memory”
  1. ConstantineOct 13, 2017
  2. Mike HommeyOct 13, 2017
  3. Christian CouderOct 13, 2017
  4. Mike HommeyOct 13, 2017
  5. Christian CouderOct 13, 2017
  6. Junio C HamanoOct 13, 2017
  7. ConstantineOct 13, 2017
  8. Jeff KingOct 13, 2017
  9. Derrick StoleeOct 13, 2017
  10. Derrick StoleeOct 13, 2017
  11. Jeff KingOct 13, 2017
  12. Derrick StoleeOct 13, 2017
  13. Jeff KingOct 13, 2017
  14. Jeff KingOct 13, 2017
  15. Jeff KingOct 13, 2017
  16. Derrick StoleeOct 13, 2017
  17. Jeff KingOct 13, 2017
  18. Derrick StoleeOct 13, 2017
  19. revision: quit pruning diff more quickly when possibleJeff King, Oct 13, 2017
  20. Derrick StoleeOct 13, 2017
  21. Jeff KingOct 13, 2017
  22. Junio C HamanoOct 14, 2017
  23. Jeff KingOct 13, 2017

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.