mirror of
https://github.com/git/git
synced 2024-11-04 16:17:49 +00:00
Merge branch 'th/quiet-lazy-fetch-from-promisor'
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
This commit is contained in:
commit
d11b0c75ec
4 changed files with 51 additions and 0 deletions
|
@ -488,6 +488,8 @@ include::config/pager.txt[]
|
|||
|
||||
include::config/pretty.txt[]
|
||||
|
||||
include::config/promisor.txt[]
|
||||
|
||||
include::config/protocol.txt[]
|
||||
|
||||
include::config/pull.txt[]
|
||||
|
|
3
Documentation/config/promisor.txt
Normal file
3
Documentation/config/promisor.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
promisor.quiet::
|
||||
If set to "true" assume `--quiet` when fetching additional
|
||||
objects for a partial clone.
|
|
@ -23,6 +23,7 @@ static int fetch_objects(struct repository *repo,
|
|||
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;
|
||||
|
@ -41,6 +42,8 @@ static int fetch_objects(struct repository *repo,
|
|||
"fetch", remote_name, "--no-tags",
|
||||
"--no-write-fetch-head", "--recurse-submodules=no",
|
||||
"--filter=blob:none", "--stdin", NULL);
|
||||
if (!git_config_get_bool("promisor.quiet", &quiet) && quiet)
|
||||
strvec_push(&child.args, "--quiet");
|
||||
if (start_command(&child))
|
||||
die(_("promisor-remote: unable to fork off fetch subprocess"));
|
||||
child_in = xfdopen(child.in, "w");
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
test_description='partial clone'
|
||||
|
||||
. ./test-lib.sh
|
||||
. "$TEST_DIRECTORY"/lib-terminal.sh
|
||||
|
||||
# missing promisor objects cause repacks which write bitmaps to fail
|
||||
GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP=0
|
||||
|
@ -708,6 +709,48 @@ test_expect_success 'push should not fetch new 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
|
||||
|
||||
|
|
Loading…
Reference in a new issue