From: Johannes Schindelin Date: Mon, 6 Feb 2023 08:37:52 +0000 (+0100) Subject: Sync with 2.35.7 X-Git-Tag: v2.36.5~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=40843216c568d39ee4d10ee256dc76de4f54f0a0;p=thirdparty%2Fgit.git Sync with 2.35.7 * maint-2.35: Git 2.35.7 Git 2.34.7 http: support CURLOPT_PROTOCOLS_STR http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT Git 2.33.7 Git 2.32.6 Git 2.31.7 Git 2.30.8 apply: fix writing behind newly created symbolic links dir-iterator: prevent top-level symlinks without FOLLOW_SYMLINKS clone: delay picking a transport until after get_repo_path() t5619: demonstrate clone_local() with ambiguous transport --- 40843216c568d39ee4d10ee256dc76de4f54f0a0 diff --cc builtin/clone.c index 21e1ce5ac8,4541a55013..7d3a3ffb40 --- a/builtin/clone.c +++ b/builtin/clone.c @@@ -1175,20 -1133,12 +1171,24 @@@ int cmd_clone(int argc, const char **ar } if (option_local > 0 && !is_local) warning(_("--local is ignored")); + + transport = transport_get(remote, path ? path : remote->url[0]); + transport_set_verbosity(transport, option_verbosity, option_progress); + transport->family = family; transport->cloning = 1; + if (is_bundle) { + struct bundle_header header = BUNDLE_HEADER_INIT; + int fd = read_bundle_header(path, &header); + int has_filter = header.filter.choice != LOFC_DISABLED; + + if (fd > 0) + close(fd); + bundle_header_release(&header); + if (has_filter) + die(_("cannot clone from filtered bundle")); + } + transport_set_option(transport, TRANS_OPT_KEEP, "yes"); if (reject_shallow)