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

[PATCH v2 1/1] commit-graph: use start_delayed_progress()

From
Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>
Date
Nov 5, 2019, 20:14 UTC
Message-ID
<78bd6bc2c02f1daf13938a738d8eae56b5f6b74c.1572984842.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.450.v2.git.1572984842.gitgitgadget@gmail.com>
From: Derrick Stolee <dstolee@microsoft.com>

When writing a commit-graph, we show progress along several commit walks. When we use start_delayed_progress(), the progress line will only appear if that step takes a decent amount of time.

However, one place was missed: computing generation numbers. This is normally a very fast operation as all commits have been parsed in a previous step. But, this is showing up for all users no matter how few commits are being added.

Now that we changed this method, very fast commands show no progess at all. This means we need to stop testing for seeing these progress lines in the test suite.

Reported-by: ryenus <ryenus@gmail.com>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
---
 commit-graph.c          |  2 +-
 t/t5318-commit-graph.sh |  6 ------
 t/t6500-gc.sh           | 14 --------------
 3 files changed, 1 insertion(+), 21 deletions(-)
diff --git a/commit-graph.c b/commit-graph.c
index 0aea7b2ae5..071e1c6e9b 100644
--- a/commit-graph.c
+++ b/commit-graph.c
@@ -1103,7 +1103,7 @@ static void compute_generation_numbers(struct write_commit_graph_context *ctx)
 	struct commit_list *list = NULL;
 
 	if (ctx->report_progress)
-		ctx->progress = start_progress(
+		ctx->progress = start_delayed_progress(
 					_("Computing commit graph generation numbers"),
 					ctx->commits.nr);
 	for (i = 0; i < ctx->commits.nr; i++) {
diff --git a/t/t5318-commit-graph.sh b/t/t5318-commit-graph.sh
index d42b3efe39..8759ff0f3a 100755
--- a/t/t5318-commit-graph.sh
+++ b/t/t5318-commit-graph.sh
@@ -130,12 +130,6 @@ test_expect_success 'commit-graph write progress off for redirected stderr' '
 	test_line_count = 0 err
 '
 
-test_expect_success 'commit-graph write force progress on for stderr' '
-	cd "$TRASH_DIRECTORY/full" &&
-	git commit-graph write --progress 2>err &&
-	test_file_not_empty err
-'
-
 test_expect_success 'commit-graph write with the --no-progress option' '
 	cd "$TRASH_DIRECTORY/full" &&
 	git commit-graph write --no-progress 2>err &&
diff --git a/t/t6500-gc.sh b/t/t6500-gc.sh
index c0f04dc6b0..23faa5345f 100755
--- a/t/t6500-gc.sh
+++ b/t/t6500-gc.sh
@@ -102,20 +102,6 @@ test_expect_success 'auto gc with too many loose objects does not attempt to cre
 	test_line_count = 2 new # There is one new pack and its .idx
 '
 
-test_expect_success 'gc --no-quiet' '
-	git -c gc.writeCommitGraph=true gc --no-quiet >stdout 2>stderr &&
-	test_must_be_empty stdout &&
-	test_line_count = 1 stderr &&
-	test_i18ngrep "Computing commit graph generation numbers" stderr
-'
-
-test_expect_success TTY 'with TTY: gc --no-quiet' '
-	test_terminal git -c gc.writeCommitGraph=true gc --no-quiet >stdout 2>stderr &&
-	test_must_be_empty stdout &&
-	test_i18ngrep "Enumerating objects" stderr &&
-	test_i18ngrep "Computing commit graph generation numbers" stderr
-'
-
 test_expect_success 'gc --quiet' '
 	git -c gc.writeCommitGraph=true gc --quiet >stdout 2>stderr &&
 	test_must_be_empty stdout &&
-- 
gitgitgadget
Previous: Derrick Stolee via GitGitGadgetNext: Jeff King
Message 5 of 32 in “commit-graph: use start_delayed_progress()”
  1. 0/1 commit-graph: use start_delayed_progress()Derrick Stolee via GitGitGadget, Nov 5, 2019
  2. 1/1 commit-graph: use start_delayed_progress()Derrick Stolee via GitGitGadget, Nov 5, 2019
  3. Derrick StoleeNov 5, 2019
  4. 0/1 commit-graph: use start_delayed_progress()Derrick Stolee via GitGitGadget, Nov 5, 2019
  5. 1/1 commit-graph: use start_delayed_progress()Derrick Stolee via GitGitGadget, Nov 5, 2019
  6. Jeff KingNov 6, 2019
  7. Derrick StoleeNov 6, 2019
  8. Jeff KingNov 7, 2019
  9. Derrick StoleeNov 7, 2019
  10. Junio C HamanoNov 7, 2019
  11. Jeff KingNov 7, 2019
  12. Junio C HamanoNov 7, 2019
  13. 0/2 commit-graph: use start_delayed_progress()Derrick Stolee via GitGitGadget, Nov 7, 2019
  14. 1/2 progress: create GIT_PROGRESS_DELAYDerrick Stolee via GitGitGadget, Nov 7, 2019
  15. Jeff KingNov 7, 2019
  16. SZEDER GáborNov 11, 2019
  17. 2/2 commit-graph: use start_delayed_progress()Derrick Stolee via GitGitGadget, Nov 7, 2019
  18. Jeff KingNov 7, 2019
  19. SZEDER GáborNov 21, 2019
  20. 0/2 commit-graph: use start_delayed_progress()Derrick Stolee via GitGitGadget, Nov 21, 2019
  21. 2/2 commit-graph: use start_delayed_progress()Derrick Stolee via GitGitGadget, Nov 21, 2019
  22. Jeff KingNov 22, 2019
  23. Derrick StoleeNov 25, 2019
  24. 1/2 progress: create GIT_PROGRESS_DELAYDerrick Stolee via GitGitGadget, Nov 21, 2019
  25. Jeff KingNov 22, 2019
  26. 0/2 commit-graph: use start_delayed_progress()Derrick Stolee via GitGitGadget, Nov 25, 2019
  27. 1/2 progress: create GIT_PROGRESS_DELAYDerrick Stolee via GitGitGadget, Nov 25, 2019
  28. 2/2 commit-graph: use start_delayed_progress()Derrick Stolee via GitGitGadget, Nov 25, 2019
  29. Jeff KingNov 26, 2019
  30. Derrick StoleeNov 26, 2019
  31. Junio C HamanoNov 30, 2019
  32. SZEDER GáborDec 1, 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.