This options requires subtree-aware upload-pack. It simply pass the subtree from command line (or from $GIT_DIR/config) to upload-pack. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- builtin/fetch-pack.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c index dbd8b7b..7460ecc 100644 --- a/builtin/fetch-pack.c +++ b/builtin/fetch-pack.c @@ -237,6 +237,8 @@ static int find_common(int fd[2], unsigned char *result_sha1, for_each_ref(rev_list_insert_ref, NULL); fetching = 0; + if (core_subtree) + packet_buf_write(&req_buf, "subtree %s\n", core_subtree); for ( ; refs ; refs = refs->next) { unsigned char *remote = refs->old_sha1; const char *remote_hex; @@ -692,6 +694,8 @@ static struct ref *do_fetch_pack(int fd[2], if (is_repository_shallow() && !server_supports("shallow")) die("Server does not support shallow clients"); + if (core_subtree && !server_supports("subtree")) + die("Server does not support subtree"); if (server_supports("multi_ack_detailed")) { if (args.verbose) fprintf(stderr, "Server supports multi_ack_detailed\n"); @@ -860,6 +864,10 @@ int cmd_fetch_pack(int argc, const char **argv, const char *prefix) pack_lockfile_ptr = &pack_lockfile; continue; } + if (!prefixcmp(arg, "--subtree=")) { + core_subtree = arg + 10; + continue; + } usage(fetch_pack_usage); } dest = (char *)arg; -- 1.7.1.rc1.69.g24c2f7 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html