# Copyright (c) 2023 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # This adds completion to bash shells for git commands. It is # meant for developers and not needed for inclusion by any automated # processes that will, of course, specify the full command, not rely # on or benefit from tab-completion. # # Requires: # Installed git bash completion. # # Usage: # Add this to your .bashrc: # # # The next lines enable bash completion for git commands from # # depot_tools. # if [ -f "$HOME/bin/depot_tools/git_completion.sh" ]; then # . "$HOME/bin/depot_tools/git_completion.sh" # fi _git_new_branch () { case "$cur" in -*) __gitcomp_nl_append "--upstream_current" __gitcomp_nl_append "--upstream" __gitcomp_nl_append "--lkgr" __gitcomp_nl_append "--inject_current" ;; *) case "$prev,$cur" in --upstream,o*) # By default (only local branch heads are shown after --upstream, see # the case below. If, however, the user types "--upstream o", also # remote branches (origin/*) are shown. __git_complete_refs --cur="$cur" ;; --upstream,*) __gitcomp_nl "$(__git_heads '' $cur)" ;; esac esac } _git_reparent_branch () { case "$cur" in -*) __gitcomp_nl_append "--lkgr" __gitcomp_nl_append "--root" ;; o*) # By default (only local branch heads are shown after --upstream, see the # case below. If, however, the user types "--upstream o", also remote # branches (origin/*) are shown. __git_complete_refs --cur="$cur" ;; *) __gitcomp_nl "$(__git_heads '' $cur)" ;; esac }