Signed-off-by: Xin Li <delphij@xxxxxxxxxx> Reviewed-by: Jonathan Nieder <jrnieder@xxxxxxxxx> --- builtin/clone.c | 2 +- t/t5601-clone.sh | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/builtin/clone.c b/builtin/clone.c index 50bde99618..822208a346 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -1215,7 +1215,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix) remote_head_points_at, &branch_top); if (filter_options.choice) - partial_clone_register("origin", &filter_options); + partial_clone_register(option_origin, &filter_options); if (is_local) clone_local(path, git_dir); diff --git a/t/t5601-clone.sh b/t/t5601-clone.sh index d6948cbdab..3595162c32 100755 --- a/t/t5601-clone.sh +++ b/t/t5601-clone.sh @@ -634,7 +634,7 @@ test_expect_success CASE_INSENSITIVE_FS 'colliding file detection' ' test_i18ngrep "the following paths have collided" icasefs/warning ' -partial_clone () { +partial_clone_server () { SERVER="$1" && URL="$2" && @@ -646,8 +646,14 @@ partial_clone () { test_commit -C "$SERVER" two && HASH2=$(git hash-object "$SERVER/two.t") && test_config -C "$SERVER" uploadpack.allowfilter 1 && - test_config -C "$SERVER" uploadpack.allowanysha1inwant 1 && + test_config -C "$SERVER" uploadpack.allowanysha1inwant 1 +} + +partial_clone () { + SERVER="$1" && + URL="$2" && + partial_clone_server "${SERVER}" "${URL}" && git clone --filter=blob:limit=0 "$URL" client && git -C client fsck && @@ -664,6 +670,11 @@ test_expect_success 'partial clone' ' partial_clone server "file://$(pwd)/server" ' +test_expect_success 'partial clone with -o' ' + partial_clone_server server "file://$(pwd)/server" && + git clone -o blah --filter=blob:limit=0 "${URL}" client +' + test_expect_success 'partial clone: warn if server does not support object filtering' ' rm -rf server client && test_create_repo server && -- 2.22.0.rc1.257.g3120a18244-goog