Bash autocompletion for 'git new-branch' and 'git reparent-branch'

This CL introduces bash autocompletion for some specific git commands
contributed by depot_tools (git new-branch and git reparent-branch).

Change-Id: I8208ef7d7d974765c468d01fa94c4ed334b01bb3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4859465
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Dominic Battre <battre@chromium.org>
changes/65/4859465/3
Dominic Battre 2 years ago committed by LUCI CQ
parent f2e3352a0e
commit 272e6ab3cb

@ -0,0 +1,65 @@
# 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
}
Loading…
Cancel
Save