Explorar el Código

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>
Dominic Battre hace 1 año
padre
commit
272e6ab3cb
Se han modificado 1 ficheros con 65 adiciones y 0 borrados
  1. 65 0
      git_completion.sh

+ 65 - 0
git_completion.sh

@@ -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
+}