On Wed, Feb 14, 2018 at 7:53 PM, SZEDER Gábor <szeder.dev@xxxxxxxxx> wrote: > On Fri, Feb 9, 2018 at 12:01 PM, Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> wrote: >> The new completable options are: >> >> --directory >> --exclude >> --gpg-sign >> --include >> --keep-cr >> --keep-non-patch >> --message-id >> --no-keep-cr >> --patch-format >> --quiet >> --reject >> --resolvemsg= >> >> In-progress options like --continue will be part of --git-completion-helper >> then filtered out by _git_am() unless the operation is in progress. This >> helps keep marking of these operations in just one place. >> >> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> >> --- >> contrib/completion/git-completion.bash | 11 ++++------- >> parse-options.h | 4 ++-- >> rerere.h | 3 ++- >> 3 files changed, 8 insertions(+), 10 deletions(-) >> >> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash >> index 1e0bd835fe..eba482eb9c 100644 >> --- a/contrib/completion/git-completion.bash >> +++ b/contrib/completion/git-completion.bash >> @@ -1105,12 +1105,13 @@ __git_count_arguments () >> } >> >> __git_whitespacelist="nowarn warn error error-all fix" >> +__git_am_inprogress_options="--skip --continue --resolved --abort" >> >> _git_am () >> { >> __git_find_repo_path >> if [ -d "$__git_repo_path"/rebase-apply ]; then >> - __gitcomp "--skip --continue --resolved --abort" >> + __gitcomp "$__git_am_inprogress_options" >> return >> fi >> case "$cur" in >> @@ -1119,12 +1120,8 @@ _git_am () >> return >> ;; >> --*) >> - __gitcomp " >> - --3way --committer-date-is-author-date --ignore-date >> - --ignore-whitespace --ignore-space-change >> - --interactive --keep --no-utf8 --signoff --utf8 >> - --whitespace= --scissors >> - " >> + __gitcomp_builtin am "--no-utf8" \ >> + "$__git_am_inprogress_options" >> return >> esac >> } >> diff --git a/parse-options.h b/parse-options.h >> index 3c32401736..009cd863e5 100644 >> --- a/parse-options.h >> +++ b/parse-options.h >> @@ -144,8 +144,8 @@ struct option { >> #define OPT_STRING_LIST(s, l, v, a, h) \ >> { OPTION_CALLBACK, (s), (l), (v), (a), \ >> (h), 0, &parse_opt_string_list } >> -#define OPT_UYN(s, l, v, h) { OPTION_CALLBACK, (s), (l), (v), NULL, \ >> - (h), PARSE_OPT_NOARG, &parse_opt_tertiary } >> +#define OPT_UYN(s, l, v, h, f) { OPTION_CALLBACK, (s), (l), (v), NULL, \ >> + (h), PARSE_OPT_NOARG|(f), &parse_opt_tertiary } >> #define OPT_DATE(s, l, v, h) \ >> { OPTION_CALLBACK, (s), (l), (v), N_("time"),(h), 0, \ >> parse_opt_approxidate_cb } > > Shouldn't this hunk go into a commit of its own? Or at least it would > deserve a mention in the commit message. It's not a standalone change. It is used by the OPT_RERERE_AUTOUPDATE below, which in turn is used by git-add. Together, --rerere-autoupdate is removed from the completion list of git-add (and also a few more commands). Now that you mention it, the only command that completes --rerere-autoupdate is git-merge. Since this is "auto" I don't think people want to type manually. Maybe I should separate these changes _and_ remove --rerere-autoupdate from _git_merge() too? At least that it will be consistent that way. >> diff --git a/rerere.h b/rerere.h >> index c2961feaaa..5e5a312e4c 100644 >> --- a/rerere.h >> +++ b/rerere.h >> @@ -37,6 +37,7 @@ extern void rerere_clear(struct string_list *); >> extern void rerere_gc(struct string_list *); >> >> #define OPT_RERERE_AUTOUPDATE(v) OPT_UYN(0, "rerere-autoupdate", (v), \ >> - N_("update the index with reused conflict resolution if possible")) >> + N_("update the index with reused conflict resolution if possible"), \ >> + PARSE_OPT_NOCOMPLETE) >> >> #endif >> -- >> 2.16.1.207.gedba492059 >> -- Duy