diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-05-01 14:14:41 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-05-01 14:14:41 +0900 |
commit | b439747bc1074f6f325987d6f2b1a38119d3b863 (patch) | |
tree | 7c3c97bb0a282760f2864492b687d505ebbfcbaf | |
parent | Git 2.13-rc1 (diff) | |
parent | completion: optionally disable checkout DWIM (diff) | |
download | tgif-b439747bc1074f6f325987d6f2b1a38119d3b863.tar.xz |
Merge branch 'jk/complete-checkout-sans-dwim-remote'
Completion for "git checkout <branch>" that auto-creates the branch
out of a remote tracking branch can now be disabled, as this
completion often gets in the way when completing to checkout an
existing local branch that happens to share the same prefix with
bunch of remote tracking branches.
* jk/complete-checkout-sans-dwim-remote:
completion: optionally disable checkout DWIM
-rw-r--r-- | contrib/completion/git-completion.bash | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index b617019075..af658995d5 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -28,6 +28,14 @@ # completion style. For example '!f() { : git commit ; ... }; f' will # tell the completion to use commit completion. This also works with aliases # of form "!sh -c '...'". For example, "!sh -c ': git commit ; ... '". +# +# You can set the following environment variables to influence the behavior of +# the completion routines: +# +# GIT_COMPLETION_CHECKOUT_NO_GUESS +# +# When set to "1", do not include "DWIM" suggestions in git-checkout +# completion (e.g., completing "foo" when "origin/foo" exists). case "$COMP_WORDBREAKS" in *:*) : great ;; @@ -1249,7 +1257,8 @@ _git_checkout () # check if --track, --no-track, or --no-guess was specified # if so, disable DWIM mode local flags="--track --no-track --no-guess" track_opt="--track" - if [ -n "$(__git_find_on_cmdline "$flags")" ]; then + if [ "$GIT_COMPLETION_CHECKOUT_NO_GUESS" = "1" ] || + [ -n "$(__git_find_on_cmdline "$flags")" ]; then track_opt='' fi __git_complete_refs $track_opt |