Re: [PATCH v6 3/4] ls-files: pass through safe options for --recurse-submodules
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 30, 2016, 00:14 UTC
- Message-ID
- <xmqqy42ab5ww.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <1475185723-36871-4-git-send-email-bmwill@google.com>
Brandon Williams <bmwill@google.com> writes:
Show 35 quoted lines
> +static void compile_submodule_options(const struct dir_struct *dir, int show_tag)
> +{
> + if (line_terminator == '\0')
> + argv_array_push(&submodules_options, "-z");
> + if (show_tag)
> + argv_array_push(&submodules_options, "-t");
> + if (show_valid_bit)
> + argv_array_push(&submodules_options, "-v");
> + if (show_cached)
> + argv_array_push(&submodules_options, "--cached");
> + if (show_deleted)
> + argv_array_push(&submodules_options, "--deleted");
> + if (show_modified)
> + argv_array_push(&submodules_options, "--modified");
> + if (show_others)
> + argv_array_push(&submodules_options, "--others");
> + if (dir->flags & DIR_SHOW_IGNORED)
> + argv_array_push(&submodules_options, "--ignored");
> + if (show_stage)
> + argv_array_push(&submodules_options, "--stage");
> + if (show_killed)
> + argv_array_push(&submodules_options, "--killed");
> + if (dir->flags & DIR_SHOW_OTHER_DIRECTORIES)
> + argv_array_push(&submodules_options, "--directory");
> + if (!(dir->flags & DIR_SHOW_OTHER_DIRECTORIES))
> + argv_array_push(&submodules_options, "--empty-directory");
> + if (show_unmerged)
> + argv_array_push(&submodules_options, "--unmerged");
> + if (show_resolve_undo)
> + argv_array_push(&submodules_options, "--resolve-undo");
> + if (show_eol)
> + argv_array_push(&submodules_options, "--eol");
> + if (debug_mode)
> + argv_array_push(&submodules_options, "--debug");
> +}With this and 4/4 applied, the documentation still says "--cached" is the only supported option.
Does it really make sense to pass all of these? I understand "-z" and I suspect things like "-t" and "-v" that affect "how" things are shown may also happen to work, but I am not sure how much it makes sense for options that affect "what" things are shown.
What does it even mean to ask for say "--unmerged" to be shown, for example, from the superproject? Recurse into submodules whose cache entries in the index of the superproject are unmerged, or something else?
I am inclined to say that it is probably better to keep the "--cached only" as documented, at least on the "what are shown" side.
Thanks.