Merge branch 'mm/complete-rebase-autostash'
authorJunio C Hamano <gitster@pobox.com>
Wed, 14 Jan 2015 20:33:57 +0000 (12:33 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 14 Jan 2015 20:33:57 +0000 (12:33 -0800)
* mm/complete-rebase-autostash:
git-completion: add --autostash for 'git rebase'

1  2 
contrib/completion/git-completion.bash
index cd765795ae42edfdf21a054619b64d5c3800f4f6,93bfab696d521dd2588cdaf651fd760e4c8edafd..8cfee95f88006269e4227f98701b9af8587af0bd
  #
  # To use these routines:
  #
 -#    1) Copy this file to somewhere (e.g. ~/.git-completion.sh).
 +#    1) Copy this file to somewhere (e.g. ~/.git-completion.bash).
  #    2) Add the following line to your .bashrc/.zshrc:
 -#        source ~/.git-completion.sh
 +#        source ~/.git-completion.bash
  #    3) Consider changing your PS1 to also show the current branch,
  #       see git-prompt.sh for details.
 +#
 +# If you use complex aliases of form '!f() { ... }; f', you can use the null
 +# command ':' as the first command in the function body to declare the desired
 +# 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 ; ... '".
  
  case "$COMP_WORDBREAKS" in
  *:*) : great ;;
@@@ -281,12 -275,16 +281,12 @@@ __gitcomp_file (
  # argument, and using the options specified in the second argument.
  __git_ls_files_helper ()
  {
 -      (
 -              test -n "${CDPATH+set}" && unset CDPATH
 -              cd "$1"
 -              if [ "$2" == "--committable" ]; then
 -                      git diff-index --name-only --relative HEAD
 -              else
 -                      # NOTE: $2 is not quoted in order to support multiple options
 -                      git ls-files --exclude-standard $2
 -              fi
 -      ) 2>/dev/null
 +      if [ "$2" == "--committable" ]; then
 +              git -C "$1" diff-index --name-only --relative HEAD
 +      else
 +              # NOTE: $2 is not quoted in order to support multiple options
 +              git -C "$1" ls-files --exclude-standard $2
 +      fi 2>/dev/null
  }
  
  
@@@ -384,8 -382,7 +384,8 @@@ __git_refs (
                ;;
        *)
                echo "HEAD"
 -              git for-each-ref --format="%(refname:short)" -- "refs/remotes/$dir/" | sed -e "s#^$dir/##"
 +              git for-each-ref --format="%(refname:short)" -- \
 +                      "refs/remotes/$dir/" 2>/dev/null | sed -e "s#^$dir/##"
                ;;
        esac
  }
@@@ -519,7 -516,7 +519,7 @@@ __git_complete_index_file (
                ;;
        esac
  
 -      __gitcomp_file "$(__git_index_files "$1" "$pfx")" "$pfx" "$cur_"
 +      __gitcomp_file "$(__git_index_files "$1" ${pfx:+"$pfx"})" "$pfx" "$cur_"
  }
  
  __git_complete_file ()
@@@ -784,10 -781,6 +784,10 @@@ __git_aliased_command (
                -*)     : option ;;
                *=*)    : setting env ;;
                git)    : git itself ;;
 +              \(\))   : skip parens of shell function definition ;;
 +              {)      : skip start of shell helper function ;;
 +              :)      : skip null command ;;
 +              \'*)    : skip opening quote after sh -c ;;
                *)
                        echo "$word"
                        return
@@@ -1172,8 -1165,8 +1172,8 @@@ __git_diff_common_options="--stat --num
                        --full-index --binary --abbrev --diff-filter=
                        --find-copies-harder
                        --text --ignore-space-at-eol --ignore-space-change
 -                      --ignore-all-space --exit-code --quiet --ext-diff
 -                      --no-ext-diff
 +                      --ignore-all-space --ignore-blank-lines --exit-code
 +                      --quiet --ext-diff --no-ext-diff
                        --no-prefix --src-prefix= --dst-prefix=
                        --inter-hunk-context=
                        --patience --histogram --minimal
@@@ -1204,7 -1197,7 +1204,7 @@@ _git_diff (
  }
  
  __git_mergetools_common="diffuse diffmerge ecmerge emerge kdiff3 meld opendiff
 -                      tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc3 codecompare
 +                      tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc codecompare
  "
  
  _git_difftool ()
@@@ -1464,7 -1457,6 +1464,7 @@@ _git_log (
                        --abbrev-commit --abbrev=
                        --relative-date --date=
                        --pretty= --format= --oneline
 +                      --show-signature
                        --cherry-pick
                        --graph
                        --decorate --decorate=
@@@ -1619,33 -1611,12 +1619,33 @@@ _git_pull (
  
  __git_push_recurse_submodules="check on-demand"
  
 +__git_complete_force_with_lease ()
 +{
 +      local cur_=$1
 +
 +      case "$cur_" in
 +      --*=)
 +              ;;
 +      *:*)
 +              __gitcomp_nl "$(__git_refs)" "" "${cur_#*:}"
 +              ;;
 +      *)
 +              __gitcomp_nl "$(__git_refs)" "" "$cur_"
 +              ;;
 +      esac
 +}
 +
  _git_push ()
  {
        case "$prev" in
        --repo)
                __gitcomp_nl "$(__git_remotes)"
                return
 +              ;;
 +      --recurse-submodules)
 +              __gitcomp "$__git_push_recurse_submodules"
 +              return
 +              ;;
        esac
        case "$cur" in
        --repo=*)
                __gitcomp "$__git_push_recurse_submodules" "" "${cur##--recurse-submodules=}"
                return
                ;;
 +      --force-with-lease=*)
 +              __git_complete_force_with_lease "${cur##--force-with-lease=}"
 +              return
 +              ;;
        --*)
                __gitcomp "
                        --all --mirror --tags --dry-run --force --verbose
 +                      --quiet --prune --delete --follow-tags
                        --receive-pack= --repo= --set-upstream
 -                      --recurse-submodules=
 +                      --force-with-lease --force-with-lease= --recurse-submodules=
                "
                return
                ;;
@@@ -1693,6 -1659,7 +1693,7 @@@ _git_rebase (
                        --committer-date-is-author-date --ignore-date
                        --ignore-whitespace --whitespace=
                        --autosquash --fork-point --no-fork-point
+                       --autostash
                        "
  
                return
@@@ -1875,10 -1842,6 +1876,10 @@@ _git_config (
                __gitcomp "$__git_send_email_suppresscc_options"
                return
                ;;
 +      sendemail.transferencoding)
 +              __gitcomp "7bit 8bit quoted-printable base64"
 +              return
 +              ;;
        --get|--get-all|--unset|--unset-all)
                __gitcomp_nl "$(__git_config_get_set_variables)"
                return
@@@ -2346,7 -2309,6 +2347,7 @@@ _git_show (
                ;;
        --*)
                __gitcomp "--pretty= --format= --abbrev-commit --oneline
 +                      --show-signature
                        $__git_diff_common_options
                        "
                return
@@@ -2552,16 -2514,6 +2553,16 @@@ _git_tag (
                __gitcomp_nl "$(__git_refs)"
                ;;
        esac
 +
 +      case "$cur" in
 +      --*)
 +              __gitcomp "
 +                      --list --delete --verify --annotate --message --file
 +                      --sign --cleanup --local-user --force --column --sort
 +                      --contains --points-at
 +                      "
 +              ;;
 +      esac
  }
  
  _git_whatchanged ()