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

[PATCH] index-pack: make get_base_data() comment clearer

From
JTJonathan Tan <jonathantanmy@google.com>
Date
Oct 7, 2020, 20:16 UTC
Message-ID
<20201007201658.1322116-1-jonathantanmy@google.com>
In-Reply-To
<20201007184852.GB222564@coredump.intra.peff.net>

A comment mentions that we may free cached delta bases via find_unresolved_deltas(), but that function went away in f08cbf60fe (index-pack: make quantum of work smaller, 2020-09-08). Since we need to rewrite that comment anyway, make the entire comment clearer.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
---
OK - here it is, with "reconstruct" instead of "uncompress". This
replaces patch 3 of Peff's patch set.
---
 builtin/index-pack.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)
diff --git a/builtin/index-pack.c b/builtin/index-pack.c
index 8acd078aa0..53e8a1a022 100644
--- a/builtin/index-pack.c
+++ b/builtin/index-pack.c
@@ -894,18 +894,15 @@ static void sha1_object(const void *data, struct object_entry *obj_entry,
 }
 
 /*
- * Walk from current node up
- * to top parent if necessary to deflate the node. In normal
- * situation, its parent node would be already deflated, so it just
- * needs to apply delta.
+ * Ensure that this node has been reconstructed and return its contents.
  *
- * In the worst case scenario, parent node is no longer deflated because
- * we're running out of delta_base_cache_limit; we need to re-deflate
- * parents, possibly up to the top base.
- *
- * All deflated objects here are subject to be freed if we exceed
- * delta_base_cache_limit, just like in find_unresolved_deltas(), we
- * just need to make sure the last node is not freed.
+ * In the typical and best case, this node would already be reconstructed
+ * (through the invocation to resolve_delta() in threaded_second_pass()) and it
+ * would not be pruned. However, if pruning of this node was necessary due to
+ * reaching delta_base_cache_limit, this function will find the closest
+ * ancestor with reconstructed data that has not been pruned (or if there is
+ * none, the ultimate base object), and reconstruct each node in the delta
+ * chain in order to generate the reconstructed data for this node.
  */
 static void *get_base_data(struct base_data *c)
 {
-- 
2.28.0.806.g8561365e88-goog
Previous: Jeff KingNext: Junio C Hamano
Message 18 of 21 in “[ANNOUNCE] Git v2.29.0-rc0”
  1. Junio C HamanoOct 5, 2020
  2. Bryan TurnerOct 5, 2020
  3. Randall S. BeckerOct 5, 2020
  4. Martin ÅgrenOct 6, 2020
  5. Junio C HamanoOct 6, 2020
  6. Ævar Arnfjörð BjarmasonOct 7, 2020
  7. Jeff KingOct 7, 2020
  8. Jeff KingOct 7, 2020
  9. Junio C HamanoOct 7, 2020
  10. 0/3 jt/threaded-inex-pack leftoversJeff King, Oct 7, 2020
  11. 1/3 index-pack: restore "resolving deltas" progress meterJeff King, Oct 7, 2020
  12. Junio C HamanoOct 7, 2020
  13. 2/3 index-pack: drop type_cas mutexJeff King, Oct 7, 2020
  14. Jonathan TanOct 7, 2020
  15. 3/3 index-pack: stop mentioning find_unresolved_deltas()Jeff King, Oct 7, 2020
  16. Jonathan TanOct 7, 2020
  17. Jeff KingOct 7, 2020
  18. index-pack: make get_base_data() comment clearerJonathan Tan, Oct 7, 2020
  19. Junio C HamanoOct 7, 2020
  20. Philippe BlainOct 7, 2020
  21. Randall S. BeckerOct 9, 2020

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.