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

[PATCH v3 0/3] nd/index-pack-no-recurse

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Jan 14, 2012, 12:19 UTC
Message-ID
<1326543595-28300-1-git-send-email-pclouds@gmail.com>
In-Reply-To
<1326081546-29320-1-git-send-email-pclouds@gmail.com>

This round adds more explanation in commit message of 2/3 and comment before get_base_data() in 3/3. Changes in 3/3 does not really address Junio's concern regarding maintainability though.

It also fixes a regression in 3/3. In current code, get_base_data() goes up as far as the first deflated parent. v2 of this series always goes up to top parent. v3 fixes this.

Junio raised a point about depth-first vs breadth-first search in 1/3. I have not addressed that either, but it makes me wonder if we may benefit from using bfs in find_unresolved_deltas(), 2/3. If the delta chains form a fork-like figure (e.g. long delta chains sharing common base), then we may run out of cache doing dfs on one chain, by the time we get back on the common base, we would need to deflate them again.

Another observation is recursion in get_base_data() is unlikely to be called in real life. With 16M default delta base cache, git.git does not trigger it at all. Perhaps repos with large blobs have better chance..

Nguyễn Thái Ngọc Duy (3):
  Eliminate recursion in setting/clearing marks in commit list
  index-pack: eliminate recursion in find_unresolved_deltas
  index-pack: eliminate unlimited recursion in get_base_data()
 builtin/index-pack.c |  164 ++++++++++++++++++++++++++++++++++---------------
 commit.c             |   13 ++++-
 revision.c           |   45 +++++++++-----
 3 files changed, 154 insertions(+), 68 deletions(-)
-- 
1.7.8.36.g69ee2
Previous: Junio C HamanoNext: Nguyễn Thái Ngọc Duy
Message 6 of 21 in “Eliminate recursion in setting/clearing marks in commit list”
  1. 1/3 Eliminate recursion in setting/clearing marks in commit listNguyễn Thái Ngọc Duy, Dec 26, 2011
  2. 2/3 index-pack: eliminate recursion in find_unresolved_deltasNguyễn Thái Ngọc Duy, Dec 26, 2011
  3. 3/3 index-pack: eliminate unlimited recursion in get_delta_base()Nguyễn Thái Ngọc Duy, Dec 26, 2011
  4. 0/3 nd/index-pack-no-recurseNguyễn Thái Ngọc Duy, Jan 9, 2012
  5. Junio C HamanoJan 9, 2012
  6. 0/3 nd/index-pack-no-recurseNguyễn Thái Ngọc Duy, Jan 14, 2012
  7. 1/3 Eliminate recursion in setting/clearing marks in commit listNguyễn Thái Ngọc Duy, Jan 14, 2012
  8. Peter BaumannJan 14, 2012
  9. Nguyen Thai Ngoc DuyJan 15, 2012
  10. 2/3 index-pack: eliminate recursion in find_unresolved_deltasNguyễn Thái Ngọc Duy, Jan 14, 2012
  11. 3/3 index-pack: eliminate unlimited recursion in get_base_data()Nguyễn Thái Ngọc Duy, Jan 14, 2012
  12. 1/3 Eliminate recursion in setting/clearing marks in commit listNguyễn Thái Ngọc Duy, Jan 9, 2012
  13. Junio C HamanoJan 9, 2012
  14. 2/3 index-pack: eliminate recursion in find_unresolved_deltasNguyễn Thái Ngọc Duy, Jan 9, 2012
  15. Junio C HamanoJan 9, 2012
  16. Nguyen Thai Ngoc DuyJan 10, 2012
  17. Junio C HamanoJan 12, 2012
  18. 3/3 index-pack: eliminate unlimited recursion in get_delta_base()Nguyễn Thái Ngọc Duy, Jan 9, 2012
  19. Junio C HamanoJan 9, 2012
  20. Nguyen Thai Ngoc DuyJan 10, 2012
  21. Nguyen Thai Ngoc DuyJan 10, 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.