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