mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-12 21:39:48 +01:00
Merge pull request #2736 from felipec/fc/gitfast
gitfast: update to upstream v1.9.2
This commit is contained in:
commit
dac07b2652
3 changed files with 67 additions and 26 deletions
|
@ -30,10 +30,10 @@ if [ -z "$script" ]; then
|
|||
local -a locations
|
||||
local e
|
||||
locations=(
|
||||
$(dirname ${funcsourcetrace[1]%:*})/git-completion.bash
|
||||
'/etc/bash_completion.d/git' # fedora, old debian
|
||||
'/usr/share/bash-completion/completions/git' # arch, ubuntu, new debian
|
||||
'/usr/share/bash-completion/git' # gentoo
|
||||
$(dirname ${funcsourcetrace[1]%:*})/git-completion.bash
|
||||
)
|
||||
for e in $locations; do
|
||||
test -f $e && script="$e" && break
|
||||
|
@ -76,6 +76,14 @@ __gitcomp_nl ()
|
|||
compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
|
||||
}
|
||||
|
||||
__gitcomp_nl_append ()
|
||||
{
|
||||
emulate -L zsh
|
||||
|
||||
local IFS=$'\n'
|
||||
compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
|
||||
}
|
||||
|
||||
__gitcomp_file ()
|
||||
{
|
||||
emulate -L zsh
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
#!bash
|
||||
#
|
||||
# bash/zsh completion support for core Git.
|
||||
#
|
||||
# Copyright (C) 2006,2007 Shawn O. Pearce <spearce@spearce.org>
|
||||
|
@ -180,9 +178,9 @@ _get_comp_words_by_ref ()
|
|||
}
|
||||
fi
|
||||
|
||||
__gitcompadd ()
|
||||
__gitcompappend ()
|
||||
{
|
||||
local i=0
|
||||
local i=${#COMPREPLY[@]}
|
||||
for x in $1; do
|
||||
if [[ "$x" == "$3"* ]]; then
|
||||
COMPREPLY[i++]="$2$x$4"
|
||||
|
@ -190,6 +188,12 @@ __gitcompadd ()
|
|||
done
|
||||
}
|
||||
|
||||
__gitcompadd ()
|
||||
{
|
||||
COMPREPLY=()
|
||||
__gitcompappend "$@"
|
||||
}
|
||||
|
||||
# Generates completion reply, appending a space to possible completion words,
|
||||
# if necessary.
|
||||
# It accepts 1 to 4 arguments:
|
||||
|
@ -220,6 +224,14 @@ __gitcomp ()
|
|||
esac
|
||||
}
|
||||
|
||||
# Variation of __gitcomp_nl () that appends to the existing list of
|
||||
# completion candidates, COMPREPLY.
|
||||
__gitcomp_nl_append ()
|
||||
{
|
||||
local IFS=$'\n'
|
||||
__gitcompappend "$1" "${2-}" "${3-$cur}" "${4- }"
|
||||
}
|
||||
|
||||
# Generates completion reply from newline-separated possible completion words
|
||||
# by appending a space to all of them.
|
||||
# It accepts 1 to 4 arguments:
|
||||
|
@ -231,8 +243,8 @@ __gitcomp ()
|
|||
# appended.
|
||||
__gitcomp_nl ()
|
||||
{
|
||||
local IFS=$'\n'
|
||||
__gitcompadd "$1" "${2-}" "${3-$cur}" "${4- }"
|
||||
COMPREPLY=()
|
||||
__gitcomp_nl_append "$@"
|
||||
}
|
||||
|
||||
# Generates completion reply with compgen from newline-separated possible
|
||||
|
@ -673,7 +685,6 @@ __git_list_porcelain_commands ()
|
|||
index-pack) : plumbing;;
|
||||
init-db) : deprecated;;
|
||||
local-fetch) : plumbing;;
|
||||
lost-found) : infrequent;;
|
||||
ls-files) : plumbing;;
|
||||
ls-remote) : plumbing;;
|
||||
ls-tree) : plumbing;;
|
||||
|
@ -687,14 +698,12 @@ __git_list_porcelain_commands ()
|
|||
pack-refs) : plumbing;;
|
||||
parse-remote) : plumbing;;
|
||||
patch-id) : plumbing;;
|
||||
peek-remote) : plumbing;;
|
||||
prune) : plumbing;;
|
||||
prune-packed) : plumbing;;
|
||||
quiltimport) : import;;
|
||||
read-tree) : plumbing;;
|
||||
receive-pack) : plumbing;;
|
||||
remote-*) : transport;;
|
||||
repo-config) : deprecated;;
|
||||
rerere) : plumbing;;
|
||||
rev-list) : plumbing;;
|
||||
rev-parse) : plumbing;;
|
||||
|
@ -707,7 +716,6 @@ __git_list_porcelain_commands ()
|
|||
ssh-*) : transport;;
|
||||
stripspace) : plumbing;;
|
||||
symbolic-ref) : plumbing;;
|
||||
tar-tree) : deprecated;;
|
||||
unpack-file) : plumbing;;
|
||||
unpack-objects) : plumbing;;
|
||||
update-index) : plumbing;;
|
||||
|
@ -901,7 +909,7 @@ _git_add ()
|
|||
esac
|
||||
|
||||
# XXX should we check for --update and --all options ?
|
||||
__git_complete_index_file "--others --modified"
|
||||
__git_complete_index_file "--others --modified --directory --no-empty-directory"
|
||||
}
|
||||
|
||||
_git_archive ()
|
||||
|
@ -1063,7 +1071,7 @@ _git_clean ()
|
|||
esac
|
||||
|
||||
# XXX should we check for -x option ?
|
||||
__git_complete_index_file "--others"
|
||||
__git_complete_index_file "--others --directory"
|
||||
}
|
||||
|
||||
_git_clone ()
|
||||
|
@ -1188,7 +1196,7 @@ _git_diff ()
|
|||
__git_complete_revlist_file
|
||||
}
|
||||
|
||||
__git_mergetools_common="diffuse ecmerge emerge kdiff3 meld opendiff
|
||||
__git_mergetools_common="diffuse diffmerge ecmerge emerge kdiff3 meld opendiff
|
||||
tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc3 codecompare
|
||||
"
|
||||
|
||||
|
@ -1491,6 +1499,12 @@ _git_mergetool ()
|
|||
|
||||
_git_merge_base ()
|
||||
{
|
||||
case "$cur" in
|
||||
--*)
|
||||
__gitcomp "--octopus --independent --is-ancestor --fork-point"
|
||||
return
|
||||
;;
|
||||
esac
|
||||
__gitcomp_nl "$(__git_refs)"
|
||||
}
|
||||
|
||||
|
@ -1623,7 +1637,7 @@ _git_rebase ()
|
|||
--preserve-merges --stat --no-stat
|
||||
--committer-date-is-author-date --ignore-date
|
||||
--ignore-whitespace --whitespace=
|
||||
--autosquash
|
||||
--autosquash --fork-point --no-fork-point
|
||||
"
|
||||
|
||||
return
|
||||
|
@ -1833,6 +1847,7 @@ _git_config ()
|
|||
branch.*)
|
||||
local pfx="${cur%.*}." cur_="${cur#*.}"
|
||||
__gitcomp_nl "$(__git_heads)" "$pfx" "$cur_" "."
|
||||
__gitcomp_nl_append $'autosetupmerge\nautosetuprebase\n' "$pfx" "$cur_"
|
||||
return
|
||||
;;
|
||||
guitool.*.*)
|
||||
|
@ -1875,6 +1890,7 @@ _git_config ()
|
|||
remote.*)
|
||||
local pfx="${cur%.*}." cur_="${cur#*.}"
|
||||
__gitcomp_nl "$(__git_remotes)" "$pfx" "$cur_" "."
|
||||
__gitcomp_nl_append "pushdefault" "$pfx" "$cur_"
|
||||
return
|
||||
;;
|
||||
url.*.*)
|
||||
|
@ -1997,6 +2013,7 @@ _git_config ()
|
|||
fetch.unpackLimit
|
||||
format.attach
|
||||
format.cc
|
||||
format.coverLetter
|
||||
format.headers
|
||||
format.numbered
|
||||
format.pretty
|
||||
|
@ -2580,7 +2597,7 @@ if [[ -n ${ZSH_VERSION-} ]]; then
|
|||
--*=*|*.) ;;
|
||||
*) c="$c " ;;
|
||||
esac
|
||||
array[$#array+1]="$c"
|
||||
array[${#array[@]}+1]="$c"
|
||||
done
|
||||
compset -P '*[=:]'
|
||||
compadd -Q -S '' -p "${2-}" -a -- array && _ret=0
|
||||
|
|
|
@ -60,6 +60,7 @@
|
|||
# of values:
|
||||
#
|
||||
# verbose show number of commits ahead/behind (+/-) upstream
|
||||
# name if verbose, then also show the upstream abbrev name
|
||||
# legacy don't use the '--count' option available in recent
|
||||
# versions of git-rev-list
|
||||
# git always compare HEAD to @{upstream}
|
||||
|
@ -84,13 +85,17 @@
|
|||
# the colored output of "git status -sb" and are available only when
|
||||
# using __git_ps1 for PROMPT_COMMAND or precmd.
|
||||
|
||||
# check whether printf supports -v
|
||||
__git_printf_supports_v=
|
||||
printf -v __git_printf_supports_v -- '%s' yes >/dev/null 2>&1
|
||||
|
||||
# stores the divergence from upstream in $p
|
||||
# used by GIT_PS1_SHOWUPSTREAM
|
||||
__git_ps1_show_upstream ()
|
||||
{
|
||||
local key value
|
||||
local svn_remote svn_url_pattern count n
|
||||
local upstream=git legacy="" verbose=""
|
||||
local upstream=git legacy="" verbose="" name=""
|
||||
|
||||
svn_remote=()
|
||||
# get some config options from git-config
|
||||
|
@ -106,7 +111,7 @@ __git_ps1_show_upstream ()
|
|||
;;
|
||||
svn-remote.*.url)
|
||||
svn_remote[$((${#svn_remote[@]} + 1))]="$value"
|
||||
svn_url_pattern+="\\|$value"
|
||||
svn_url_pattern="$svn_url_pattern\\|$value"
|
||||
upstream=svn+git # default upstream is SVN if available, else git
|
||||
;;
|
||||
esac
|
||||
|
@ -118,6 +123,7 @@ __git_ps1_show_upstream ()
|
|||
git|svn) upstream="$option" ;;
|
||||
verbose) verbose=1 ;;
|
||||
legacy) legacy=1 ;;
|
||||
name) name=1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
@ -200,6 +206,9 @@ __git_ps1_show_upstream ()
|
|||
*) # diverged from upstream
|
||||
p=" u+${count#* }-${count% *}" ;;
|
||||
esac
|
||||
if [[ -n "$count" && -n "$name" ]]; then
|
||||
p="$p $(git rev-parse --abbrev-ref "$upstream" 2>/dev/null)"
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
||||
|
@ -250,6 +259,13 @@ __git_ps1_colorize_gitstring ()
|
|||
r="$c_clear$r"
|
||||
}
|
||||
|
||||
eread ()
|
||||
{
|
||||
f="$1"
|
||||
shift
|
||||
test -r "$f" && read "$@" <"$f"
|
||||
}
|
||||
|
||||
# __git_ps1 accepts 0 or 1 arguments (i.e., format string)
|
||||
# when called from PS1 using command substitution
|
||||
# in this mode it prints text to add to bash PS1 prompt (includes branch name)
|
||||
|
@ -312,9 +328,9 @@ __git_ps1 ()
|
|||
local step=""
|
||||
local total=""
|
||||
if [ -d "$g/rebase-merge" ]; then
|
||||
read b 2>/dev/null <"$g/rebase-merge/head-name"
|
||||
read step 2>/dev/null <"$g/rebase-merge/msgnum"
|
||||
read total 2>/dev/null <"$g/rebase-merge/end"
|
||||
eread "$g/rebase-merge/head-name" b
|
||||
eread "$g/rebase-merge/msgnum" step
|
||||
eread "$g/rebase-merge/end" total
|
||||
if [ -f "$g/rebase-merge/interactive" ]; then
|
||||
r="|REBASE-i"
|
||||
else
|
||||
|
@ -322,10 +338,10 @@ __git_ps1 ()
|
|||
fi
|
||||
else
|
||||
if [ -d "$g/rebase-apply" ]; then
|
||||
read step 2>/dev/null <"$g/rebase-apply/next"
|
||||
read total 2>/dev/null <"$g/rebase-apply/last"
|
||||
eread "$g/rebase-apply/next" step
|
||||
eread "$g/rebase-apply/last" total
|
||||
if [ -f "$g/rebase-apply/rebasing" ]; then
|
||||
read b 2>/dev/null <"$g/rebase-apply/head-name"
|
||||
eread "$g/rebase-apply/head-name" b
|
||||
r="|REBASE"
|
||||
elif [ -f "$g/rebase-apply/applying" ]; then
|
||||
r="|AM"
|
||||
|
@ -349,7 +365,7 @@ __git_ps1 ()
|
|||
b="$(git symbolic-ref HEAD 2>/dev/null)"
|
||||
else
|
||||
local head=""
|
||||
if ! read head 2>/dev/null <"$g/HEAD"; then
|
||||
if ! eread "$g/HEAD" head; then
|
||||
if [ $pcmode = yes ]; then
|
||||
PS1="$ps1pc_start$ps1pc_end"
|
||||
fi
|
||||
|
@ -433,7 +449,7 @@ __git_ps1 ()
|
|||
local gitstring="$c${b##refs/heads/}${f:+$z$f}$r$p"
|
||||
|
||||
if [ $pcmode = yes ]; then
|
||||
if [[ -n ${ZSH_VERSION-} ]]; then
|
||||
if [ "${__git_printf_supports_v-}" != yes ]; then
|
||||
gitstring=$(printf -- "$printf_format" "$gitstring")
|
||||
else
|
||||
printf -v gitstring -- "$printf_format" "$gitstring"
|
||||
|
|
Loading…
Reference in a new issue