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

[PATCH] delta-islands: respect progress flag

From
Jeff King <peff@peff.net>
Date
Jun 20, 2019, 08:58 UTC
Message-ID
<20190620085832.GA5039@sigill.intra.peff.net>

The delta island code always prints "Marked %d islands", even if progress has been suppressed with --no-progress or by sending stderr to a non-tty.

Let's pass a progress boolean to load_delta_islands(). We already do the same thing for the progress meter in resolve_tree_islands().

Signed-off-by: Jeff King <peff@peff.net>
---
Arguably this should be a real progress meter that counts up, but I'm
not sure what it should be counting. Refs we analyzed? Islands found?
Unless you have a ton of refs, it doesn't really matter, so I just
punted on that part for now and only fixed the egregious bug. :)
 builtin/pack-objects.c | 2 +-
 delta-islands.c        | 5 +++--
 delta-islands.h        | 2 +-
 3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index b2be8869c2..698c901523 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -3134,7 +3134,7 @@ static void get_object_list(int ac, const char **av)
 		return;
 
 	if (use_delta_islands)
-		load_delta_islands(the_repository);
+		load_delta_islands(the_repository, progress);
 
 	if (prepare_revision_walk(&revs))
 		die(_("revision walk setup failed"));
diff --git a/delta-islands.c b/delta-islands.c
index 2186bd0738..b959f6c380 100644
--- a/delta-islands.c
+++ b/delta-islands.c
@@ -454,7 +454,7 @@ static void deduplicate_islands(struct repository *r)
 	free(list);
 }
 
-void load_delta_islands(struct repository *r)
+void load_delta_islands(struct repository *r, int progress)
 {
 	island_marks = kh_init_sha1();
 	remote_islands = kh_init_str();
@@ -463,7 +463,8 @@ void load_delta_islands(struct repository *r)
 	for_each_ref(find_island_for_ref, NULL);
 	deduplicate_islands(r);
 
-	fprintf(stderr, _("Marked %d islands, done.\n"), island_counter);
+	if (progress)
+		fprintf(stderr, _("Marked %d islands, done.\n"), island_counter);
 }
 
 void propagate_island_marks(struct commit *commit)
diff --git a/delta-islands.h b/delta-islands.h
index 3ac8045d8c..eb0f952629 100644
--- a/delta-islands.h
+++ b/delta-islands.h
@@ -11,7 +11,7 @@ int in_same_island(const struct object_id *, const struct object_id *);
 void resolve_tree_islands(struct repository *r,
 			  int progress,
 			  struct packing_data *to_pack);
-void load_delta_islands(struct repository *r);
+void load_delta_islands(struct repository *r, int progress);
 void propagate_island_marks(struct commit *commit);
 int compute_pack_layers(struct packing_data *to_pack);
 
-- 
2.22.0.732.g5402924b4b
Next: Derrick Stolee
Message 1 of 2 in “delta-islands: respect progress flag”
  1. delta-islands: respect progress flagJeff King, Jun 20, 2019
  2. Derrick StoleeJun 20, 2019

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.