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

Re: git-revert is a memory hog

From
Jeff King <peff@peff.net>
Date
Jan 29, 2008, 22:20 UTC
Message-ID
<20080129222007.GA3985@coredump.intra.peff.net>
In-Reply-To
<alpine.LFD.1.00.0801300844170.28476@www.l.google.com>
On Wed, Jan 30, 2008 at 08:51:09AM +1100, Linus Torvalds wrote:
Show 5 quoted lines
> I definitely can reproduce it, it's horrid.
> 
> This is from "top" fairly late in the game, but with the thing not even 
> done yet. Current git, pretty much fully (and fairly aggressively) packed 
> current kernel repo, and using "diff.renamelmit=0".

Hrm, setting diff.renamelimit to 0 lets me reproduce (I thought I tried it before, but clearly not...).

The culprit seems to be diffcore-rename.c:476:
  mx = xmalloc(sizeof(*mx) * num_create * num_src);

Where that ends up allocating about 450M. I think this is exactly the sort of case that renamelimit was introduced to address.

-Peff
Previous: Junio C HamanoNext: Jeff King
Message 7 of 24 in “git-revert is a memory hog”
  1. Adrian BunkJan 27, 2008
  2. Shawn O. PearceJan 27, 2008
  3. Jeff KingJan 28, 2008
  4. Jeff KingJan 28, 2008
  5. Linus TorvaldsJan 29, 2008
  6. Junio C HamanoJan 29, 2008
  7. Jeff KingJan 29, 2008
  8. Jeff KingJan 29, 2008
  9. Junio C HamanoJan 29, 2008
  10. Jeff KingJan 29, 2008
  11. Jeff KingJan 29, 2008
  12. Linus TorvaldsJan 29, 2008
  13. Jeff KingJan 29, 2008
  14. Junio C HamanoJan 29, 2008
  15. Jeff KingJan 29, 2008
  16. Junio C HamanoJan 29, 2008
  17. Junio C HamanoJan 29, 2008
  18. Optimize rename detection for a huge diffJunio C Hamano, Jan 30, 2008
  19. Luke LuJan 30, 2008
  20. Luke LuJan 30, 2008
  21. Junio C HamanoFeb 13, 2008
  22. David KastrupFeb 13, 2008
  23. Junio C HamanoFeb 13, 2008
  24. Junio C HamanoFeb 14, 2008

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.