fetch-pack: test support excluding large blobs
Created tests to verify fetch-pack and upload-pack support for excluding large blobs using --filter=blobs:limit=<n> parameter. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
bc2d0c3396
commit
0b6069fe0a
@ -755,4 +755,31 @@ test_expect_success 'fetching deepen' '
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'filtering by size' '
|
||||
rm -rf server client &&
|
||||
test_create_repo server &&
|
||||
test_commit -C server one &&
|
||||
test_config -C server uploadpack.allowfilter 1 &&
|
||||
|
||||
test_create_repo client &&
|
||||
git -C client fetch-pack --filter=blob:limit=0 ../server HEAD &&
|
||||
|
||||
# Ensure that object is not inadvertently fetched
|
||||
test_must_fail git -C client cat-file -e $(git hash-object server/one.t)
|
||||
'
|
||||
|
||||
test_expect_success 'filtering by size has no effect if support for it is not advertised' '
|
||||
rm -rf server client &&
|
||||
test_create_repo server &&
|
||||
test_commit -C server one &&
|
||||
|
||||
test_create_repo client &&
|
||||
git -C client fetch-pack --filter=blob:limit=0 ../server HEAD 2> err &&
|
||||
|
||||
# Ensure that object is fetched
|
||||
git -C client cat-file -e $(git hash-object server/one.t) &&
|
||||
|
||||
test_i18ngrep "filtering not recognized by server" err
|
||||
'
|
||||
|
||||
test_done
|
||||
|
@ -139,10 +139,15 @@ static void create_pack_file(void)
|
||||
if (use_include_tag)
|
||||
argv_array_push(&pack_objects.args, "--include-tag");
|
||||
if (filter_options.filter_spec) {
|
||||
struct strbuf buf = STRBUF_INIT;
|
||||
sq_quote_buf(&buf, filter_options.filter_spec);
|
||||
argv_array_pushf(&pack_objects.args, "--filter=%s", buf.buf);
|
||||
strbuf_release(&buf);
|
||||
if (pack_objects.use_shell) {
|
||||
struct strbuf buf = STRBUF_INIT;
|
||||
sq_quote_buf(&buf, filter_options.filter_spec);
|
||||
argv_array_pushf(&pack_objects.args, "--filter=%s", buf.buf);
|
||||
strbuf_release(&buf);
|
||||
} else {
|
||||
argv_array_pushf(&pack_objects.args, "--filter=%s",
|
||||
filter_options.filter_spec);
|
||||
}
|
||||
}
|
||||
|
||||
pack_objects.in = -1;
|
||||
|
Loading…
Reference in New Issue
Block a user