[WIP PATCH 4/4] Teach checkout-index to recursively checkout submodules
From: Jens Lehmann <hidden>
Date: 2016-06-15 22:48:35
Subsystem:
documentation, the rest · Maintainers:
Jonathan Corbet, Linus Torvalds
Change the default behavior of "git checkout-index" to check out submodules too. This can be prevented by using the new "--ignore-submodules" option. Signed-off-by: Jens Lehmann <redacted> --- Documentation/git-checkout-index.txt | 9 ++++++++- builtin/checkout-index.c | 6 ++++-- 2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/Documentation/git-checkout-index.txt b/Documentation/git-checkout-index.txt
index d6aa6e1..dbd6625 100644
--- a/Documentation/git-checkout-index.txt
+++ b/Documentation/git-checkout-index.txt@@ -11,7 +11,7 @@ SYNOPSIS [verse] 'git checkout-index' [-u] [-q] [-a] [-f] [-n] [--prefix=<string>] [--stage=<number>|all] - [--temp] + [--temp] [--ignore-submodules] [-z] [--stdin] [--] [<file>]\*
@@ -68,6 +68,13 @@ OPTIONS Only meaningful with `--stdin`; paths are separated with NUL character instead of LF. +--ignore-submodules:: + Since version 1.8.0 the default behavior is to checkout populated + submodules recursively. When this option is used, the work trees of + submodules will not be updated, only the hash recorded in the + superproject will be changed (this was the default behavior until + 1.8.0). + \--:: Do not interpret any more arguments as options.
diff --git a/builtin/checkout-index.c b/builtin/checkout-index.c
index c35bad3..1e16d0d 100644
--- a/builtin/checkout-index.c
+++ b/builtin/checkout-index.c@@ -213,7 +213,7 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix) int all = 0; int read_from_stdin = 0; int prefix_length; - int force = 0, quiet = 0, not_new = 0; + int force = 0, quiet = 0, not_new = 0, ignore_submodules = 0; struct option builtin_checkout_index_options[] = { OPT_BOOLEAN('a', "all", &all, "checks out all files in the index"),
@@ -238,6 +238,8 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix) OPT_CALLBACK(0, "stage", NULL, NULL, "copy out the files from named stage", option_parse_stage), + OPT_BOOLEAN(0, "ignore-submodules", &ignore_submodules, + "don't update submodule work trees"), OPT_END() };
@@ -254,7 +256,7 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix) state.force = force; state.quiet = quiet; state.not_new = not_new; - state.ignore_submodules = 1; + state.ignore_submodules = ignore_submodules; if (state.base_dir_len || to_tempfile) { /* when --prefix is specified we do not
--
1.7.1.rc0.248.g09203