Subject: [PATCH v3 0/2] commit-graph: use start_delayed_progress()

From: "Derrick Stolee via GitGitGadget" <[email-masked]>
Date: Thu, 07 Nov 2019 17:46:56 +0000

Thanks, Ryenus, for reporting this problem.

Update in V3:

Based on our discussion, I've added the suggested GIT_PROGRESS_DELAY
environment variable. This allowed the existing tests to stick around with
one exception in the GC tests. The test remains, but we can no longer look
at the commit-graph output.

Derrick Stolee (2):
  progress: create GIT_PROGRESS_DELAY
  commit-graph: use start_delayed_progress()

 Documentation/git.txt   | 4 ++++
 commit-graph.c          | 2 +-
 progress.c              | 8 +++++++-
 t/t5318-commit-graph.sh | 4 ++--
 t/t6500-gc.sh           | 6 ++----
 5 files changed, 16 insertions(+), 8 deletions(-)

base-commit: da72936f544fec5a335e66432610e4cef4430991
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-450%2Fderrickstolee%2Fcommit-graph-progress-fix-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-450/derrickstolee/commit-graph-progress-fix-v3
Pull-Request: https://github.com/gitgitgadget/git/pull/450

Range-diff vs v2:

 -:  ---------- > 1:  656dba5afb progress: create GIT_PROGRESS_DELAY
 1:  78bd6bc2c0 ! 2:  3c0c9675e1 commit-graph: use start_delayed_progress()
     @@ -11,9 +11,13 @@
          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.
     +    The tests that check for the progress output have already been updated
     +    to use GIT_PROGRESS_DELAY=0 to force the expected output. However, there
     +    is one test in t6500-gc.sh that uses the test_terminal method. This
     +    mechanism does not preserve the GIT_PROGRESS_DELAY environment variable,
     +    so we need to modify check on the output. We still watch for the
     +    "Enumerating objects" progress but no longer look for "Computing
     +    commit graph generation numbers".
      
          Reported-by: ryenus <[email-masked]>
          Signed-off-by: Derrick Stolee <[email-masked]>
     @@ -31,44 +35,16 @@
       					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
     - --- a/t/t5318-commit-graph.sh
     - +++ b/t/t5318-commit-graph.sh
     -@@
     - 	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
       --- a/t/t6500-gc.sh
       +++ b/t/t6500-gc.sh
      @@
     - 	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_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_i18ngrep "Enumerating objects" stderr
     + '
     + 
       test_expect_success 'gc --quiet' '
     - 	git -c gc.writeCommitGraph=true gc --quiet >stdout 2>stderr &&
     - 	test_must_be_empty stdout &&

-- 
gitgitgadget