From: "Øystein Walle" <oystwa@gmail.com>
To: zsh-workers@zsh.org
Cc: m0viefreak <m0viefreak.cm@googlemail.com>
Subject: [PATCH v2 09/14] _git: support completing remote branches without <remote>/ prefix
Date: Sun, 22 Sep 2013 12:48:23 +0200 [thread overview]
Message-ID: <026c333dd802bc8ed890acfdf008d5de8c97eb23.1379846744.git.oystwa@gmail.com> (raw)
In-Reply-To: <cover.1379846744.git.oystwa@gmail.com>
In-Reply-To: <cover.1379846744.git.oystwa@gmail.com>
From: m0viefreak <m0viefreak.cm@googlemail.com>
this is used in git 1.8's
git checkout <branch>
as a shorthand for
git checkout -b <branch> --track <remote>/<branch>
in case <branch> exists on exactly one remote and is not a local branch
---
Completion/Unix/Command/_git | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git
index 0d0cb02..9d07453 100644
--- a/Completion/Unix/Command/_git
+++ b/Completion/Unix/Command/_git
@@ -440,22 +440,27 @@ _git-checkout () {
if (( CURRENT == 1 )) && [[ -z $opt_args[(I)--] ]]; then
# TODO: Allow A...B
local branch_arg='branches::__git_revisions' \
+ remote_branch_noprefix_arg='remote branches::__git_remote_branch_names_noprefix' \
tree_ish_arg='tree-ishs::__git_tree_ishs' \
file_arg='modified-files::__git_modified_files'
if [[ -n ${opt_args[(I)-b|-B|--orphan]} ]]; then
+ remote_branch_noprefix_arg=
tree_ish_arg=
file_arg=
elif [[ -n $opt_args[(I)--track] ]]; then
branch_arg='remote-branches::__git_remote_branch_names'
+ remote_branch_noprefix_arg=
tree_ish_arg=
file_arg=
elif [[ -n ${opt_args[(I)--ours|--theirs|-m|--conflict|--patch]} ]]; then
branch_arg=
+ remote_branch_noprefix_arg=
fi
_alternative \
$branch_arg \
+ $remote_branch_noprefix_arg \
$tree_ish_arg \
$file_arg && ret=0
elif [[ -n ${opt_args[(I)-b|-B|-t|--track|--orphan]} ]]; then
@@ -5371,6 +5376,17 @@ __git_remote_branch_names () {
_wanted remote-branch-names expl 'remote branch name' compadd $* - $branch_names
}
+(( $+functions[__git_remote_branch_names_noprefix] )) ||
+__git_remote_branch_names_noprefix () {
+ local expl
+ declare -a heads
+
+ branch_names=(${${${(f)"$(_call_program remote-branch-refs-noprefix git for-each-ref --format='"%(refname)"' refs/remotes 2>/dev/null)"}##*/}:#HEAD})
+ __git_command_successful $pipestatus || return 1
+
+ _wanted remote-branch-names-noprefix expl 'remote branch name' compadd $* - $branch_names
+}
+
(( $+functions[__git_commits] )) ||
__git_commits () {
# TODO: deal with things that __git_heads and __git_tags has in common (i.e.,
--
1.8.2.2
next prev parent reply other threads:[~2013-09-22 10:49 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-22 10:48 [PATCH v2 00/14] Improvements to the Git completion functions Øystein Walle
2013-09-22 10:48 ` [PATCH v2 01/14] _git: fix a wrong variable in __git_config_values Øystein Walle
2013-09-22 10:48 ` [PATCH v2 02/14] _git: fix usage of ->int: for some entries in _git-config Øystein Walle
2013-09-22 10:48 ` [PATCH v2 03/14] _git: make git submodule <cmd> completion work Øystein Walle
2013-09-22 10:48 ` [PATCH v2 04/14] _git: correctly use __git_guard_number in some cases Øystein Walle
2013-09-22 10:48 ` [PATCH v2 05/14] _git: completion updates to match latest git v1.8.3 Øystein Walle
2013-09-22 10:48 ` [PATCH v2 06/14] _git: completion updates to match latest git v1.8.3 part 2 Øystein Walle
2013-09-22 10:48 ` [PATCH v2 07/14] _git: add new configuration options to match latest git v1.8.3 Øystein Walle
2013-09-22 10:48 ` [PATCH v2 08/14] _git: reword _git-config TODO Øystein Walle
2013-09-22 10:48 ` Øystein Walle [this message]
2013-09-22 10:48 ` [PATCH v2 10/14] _git: fix some typos in description texts Øystein Walle
2013-09-22 10:48 ` [PATCH v2 11/14] _git: remove TODOs of actually documented options Øystein Walle
2013-09-22 10:48 ` [PATCH v2 12/14] _git: correct some "undocumented" options Øystein Walle
2013-09-22 10:48 ` [PATCH v2 13/14] _git: change completion text for consistency Øystein Walle
2013-09-22 10:48 ` [PATCH v2 14/14] _git: git rm: make git rm --cached work as intended Øystein Walle
2013-09-22 12:09 ` [PATCH v2 00/14] Improvements to the Git completion functions Frank Terbeck
2013-09-22 12:31 ` Frank Terbeck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=026c333dd802bc8ed890acfdf008d5de8c97eb23.1379846744.git.oystwa@gmail.com \
--to=oystwa@gmail.com \
--cc=m0viefreak.cm@googlemail.com \
--cc=zsh-workers@zsh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).