]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'th/quiet-lazy-fetch-from-promisor'
authorJunio C Hamano <gitster@pobox.com>
Thu, 6 Jun 2024 19:49:23 +0000 (12:49 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 6 Jun 2024 19:49:24 +0000 (12:49 -0700)
The promisor.quiet configuration knob can be set to true to make
lazy fetching from promisor remotes silent.

* th/quiet-lazy-fetch-from-promisor:
  promisor-remote: add promisor.quiet configuration option

1  2 
Documentation/config.txt
promisor-remote.c
t/t0410-partial-clone.sh

Simple merge
index b414922c446c4203dc2194bf78ee1f7dfa475bf0,384cbfea0231ca1344fddceb49dba7c7ab27ad85..2ca7c2ae48637b0f0ff8565625824aea89b80132
@@@ -23,16 -22,8 +23,17 @@@ static int fetch_objects(struct reposit
        struct child_process child = CHILD_PROCESS_INIT;
        int i;
        FILE *child_in;
+       int quiet;
  
 +      if (git_env_bool(NO_LAZY_FETCH_ENVIRONMENT, 0)) {
 +              static int warning_shown;
 +              if (!warning_shown) {
 +                      warning_shown = 1;
 +                      warning(_("lazy fetching disabled; some objects may not be available"));
 +              }
 +              return -1;
 +      }
 +
        child.git_cmd = 1;
        child.in = -1;
        if (repo != the_repository)
index 7797391c03f04a20b18818cee530072355ccaba1,8d468eb170007666f6759eae0fab125b889c7709..2c30c86e7bff138154f8c0771fba078eaa9745a3
@@@ -689,25 -690,48 +690,67 @@@ test_expect_success 'lazy-fetch when ac
        ! grep "[?]$FILE_HASH" out
  '
  
 +test_expect_success 'push should not fetch new commit objects' '
 +      rm -rf server client &&
 +      test_create_repo server &&
 +      test_config -C server uploadpack.allowfilter 1 &&
 +      test_config -C server uploadpack.allowanysha1inwant 1 &&
 +      test_commit -C server server1 &&
 +
 +      git clone --filter=blob:none "file://$(pwd)/server" client &&
 +      test_commit -C client client1 &&
 +
 +      test_commit -C server server2 &&
 +      COMMIT=$(git -C server rev-parse server2) &&
 +
 +      test_must_fail git -C client push 2>err &&
 +      grep "fetch first" err &&
 +      git -C client rev-list --objects --missing=print "$COMMIT" >objects &&
 +      grep "^[?]$COMMIT" objects
 +'
 +
+ test_expect_success 'setup for promisor.quiet tests' '
+       rm -rf server &&
+       test_create_repo server &&
+       test_commit -C server foo &&
+       git -C server rm foo.t &&
+       git -C server commit -m remove &&
+       git -C server config uploadpack.allowanysha1inwant 1 &&
+       git -C server config uploadpack.allowfilter 1
+ '
+ test_expect_success TTY 'promisor.quiet=false shows progress messages' '
+       rm -rf repo &&
+       git clone --filter=blob:none "file://$(pwd)/server" repo &&
+       git -C repo config promisor.quiet "false" &&
+       test_terminal git -C repo cat-file -p foo:foo.t 2>err &&
+       # Ensure that progress messages are written
+       grep "Receiving objects" err
+ '
+ test_expect_success TTY 'promisor.quiet=true does not show progress messages' '
+       rm -rf repo &&
+       git clone --filter=blob:none "file://$(pwd)/server" repo &&
+       git -C repo config promisor.quiet "true" &&
+       test_terminal git -C repo cat-file -p foo:foo.t 2>err &&
+       # Ensure that no progress messages are written
+       ! grep "Receiving objects" err
+ '
+ test_expect_success TTY 'promisor.quiet=unconfigured shows progress messages' '
+       rm -rf repo &&
+       git clone --filter=blob:none "file://$(pwd)/server" repo &&
+       test_terminal git -C repo cat-file -p foo:foo.t 2>err &&
+       # Ensure that progress messages are written
+       grep "Receiving objects" err
+ '
  . "$TEST_DIRECTORY"/lib-httpd.sh
  start_httpd