From: Junio C Hamano Date: Thu, 7 Mar 2019 00:59:53 +0000 (+0900) Subject: Merge branch 'dl/complete-submodule-absorbgitdirs' X-Git-Tag: v2.22.0-rc0~177 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/26e3ddcd7530dbb5f7748970ff16120e47d58f31?hp=-c Merge branch 'dl/complete-submodule-absorbgitdirs' Command-line completion (in contrib/) learned to tab-complete the "git submodule absorbgitdirs" subcommand. * dl/complete-submodule-absorbgitdirs: completion: complete git submodule absorbgitdirs --- 26e3ddcd7530dbb5f7748970ff16120e47d58f31 diff --combined contrib/completion/git-completion.bash index 499e56f83d,ed41ddeb8d..de56879960 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@@ -438,7 -438,7 +438,7 @@@ __gitcomp_nl ( # Callers must take care of providing only paths that match the current path # to be completed and adding any prefix path components, if necessary. # 1: List of newline-separated matching paths, complete with all prefix -# path componens. +# path components. __gitcomp_file_direct () { local IFS=$'\n' @@@ -855,7 -855,7 +855,7 @@@ __git_compute_merge_strategies ( __git_complete_revlist_file () { - local pfx ls ref cur_="$cur" + local dequoted_word pfx ls ref cur_="$cur" case "$cur_" in *..?*:*) return @@@ -863,18 -863,14 +863,18 @@@ ?*:*) ref="${cur_%%:*}" cur_="${cur_#*:}" - case "$cur_" in + + __git_dequote "$cur_" + + case "$dequoted_word" in ?*/*) - pfx="${cur_%/*}" - cur_="${cur_##*/}" + pfx="${dequoted_word%/*}" + cur_="${dequoted_word##*/}" ls="$ref:$pfx" pfx="$pfx/" ;; *) + cur_="$dequoted_word" ls="$ref" ;; esac @@@ -884,10 -880,21 +884,10 @@@ *) pfx="$ref:$pfx" ;; esac - __gitcomp_nl "$(__git ls-tree "$ls" \ - | sed '/^100... blob /{ - s,^.* ,, - s,$, , - } - /^120000 blob /{ - s,^.* ,, - s,$, , - } - /^040000 tree /{ - s,^.* ,, - s,$,/, - } - s/^.* //')" \ - "$pfx" "$cur_" "" + __gitcomp_file "$(__git ls-tree "$ls" \ + | sed 's/^.* // + s/$//')" \ + "$pfx" "$cur_" ;; *...*) pfx="${cur_%...*}..." @@@ -2573,7 -2580,7 +2573,7 @@@ _git_submodule ( { __git_has_doubledash && return - local subcommands="add status init deinit update summary foreach sync" + local subcommands="add status init deinit update summary foreach sync absorbgitdirs" local subcommand="$(__git_find_on_cmdline "$subcommands")" if [ -z "$subcommand" ]; then case "$cur" in @@@ -2986,7 -2993,7 +2986,7 @@@ if [[ -n ${ZSH_VERSION-} ]] & local IFS=$'\n' compset -P '*[=:]' - compadd -Q -f -- ${=1} && _ret=0 + compadd -f -- ${=1} && _ret=0 } __gitcomp_file () @@@ -2995,7 -3002,7 +2995,7 @@@ local IFS=$'\n' compset -P '*[=:]' - compadd -Q -p "${2-}" -f -- ${=1} && _ret=0 + compadd -p "${2-}" -f -- ${=1} && _ret=0 } _git ()