With all the preparation work, here comes --subtree. So clone away! Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- builtin/clone.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/builtin/clone.c b/builtin/clone.c index efb1e6f..43bc34b 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -23,6 +23,7 @@ #include "branch.h" #include "remote.h" #include "run-command.h" +#include "subtree.h" /* * Overall FIXMEs: @@ -78,6 +79,8 @@ static struct option builtin_clone_options[] = { "path to git-upload-pack on the remote"), OPT_STRING(0, "depth", &option_depth, "depth", "create a shallow clone of that depth"), + OPT_STRING(0, "subtree", &core_subtree, "subtree", + "subtree clone"), OPT_END() }; @@ -515,6 +518,8 @@ int cmd_clone(int argc, const char **argv, const char *prefix) strbuf_reset(&value); if (path && !is_bundle) { + if (core_subtree) + die("Local subtree clone does not work (now)"); refs = clone_local(path, git_dir); mapped_refs = wanted_peer_refs(refs, refspec); } else { @@ -623,6 +628,11 @@ int cmd_clone(int argc, const char **argv, const char *prefix) transport_disconnect(transport); } + if (core_subtree) { + git_config_set("core.subtree", core_subtree); + subtree_import(); + } + if (!option_no_checkout) { struct lock_file *lock_file = xcalloc(1, sizeof(struct lock_file)); struct unpack_trees_options opts; -- 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