diff options
| author | Felipe Contreras <felipe.contreras@gmail.com> | 2016-05-19 23:27:30 -0500 | 
|---|---|---|
| committer | Felipe Contreras <felipe.contreras@gmail.com> | 2016-05-19 23:27:30 -0500 | 
| commit | eec3dc607c40b33a828938e396a459e70d8b01ed (patch) | |
| tree | 26d30003353d88ea98059914a013b096720b0900 | |
| parent | 169cd8b6ca803721071795c6a207aa97265c8528 (diff) | |
| download | zsh-eec3dc607c40b33a828938e396a459e70d8b01ed.tar.gz zsh-eec3dc607c40b33a828938e396a459e70d8b01ed.tar.bz2 zsh-eec3dc607c40b33a828938e396a459e70d8b01ed.zip | |
gitfast: update to upstream v2.8
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
| -rw-r--r-- | plugins/gitfast/git-completion.bash | 119 | ||||
| -rw-r--r-- | plugins/gitfast/git-prompt.sh | 13 | 
2 files changed, 80 insertions, 52 deletions
| diff --git a/plugins/gitfast/git-completion.bash b/plugins/gitfast/git-completion.bash index 5944c824a..e3918c87e 100644 --- a/plugins/gitfast/git-completion.bash +++ b/plugins/gitfast/git-completion.bash @@ -10,6 +10,7 @@  #    *) local and remote tag names  #    *) .git/remotes file names  #    *) git 'subcommands' +#    *) git email aliases for git-send-email  #    *) tree paths within 'ref:path/to/file' expressions  #    *) file paths within current working directory and index  #    *) common --long-options @@ -663,10 +664,11 @@ __git_list_porcelain_commands ()  		check-mailmap)    : plumbing;;  		check-ref-format) : plumbing;;  		checkout-index)   : plumbing;; +		column)           : internal helper;;  		commit-tree)      : plumbing;;  		count-objects)    : infrequent;; -		credential-cache) : credentials helper;; -		credential-store) : credentials helper;; +		credential)       : credentials;; +		credential-*)     : credentials helper;;  		cvsexportcommit)  : export;;  		cvsimport)        : import;;  		cvsserver)        : daemon;; @@ -735,35 +737,28 @@ __git_list_porcelain_commands ()  __git_porcelain_commands=  __git_compute_porcelain_commands ()  { -	__git_compute_all_commands  	test -n "$__git_porcelain_commands" ||  	__git_porcelain_commands=$(__git_list_porcelain_commands)  } -__git_pretty_aliases () +# Lists all set config variables starting with the given section prefix, +# with the prefix removed. +__git_get_config_variables ()  { -	local i IFS=$'\n' -	for i in $(git --git-dir="$(__gitdir)" config --get-regexp "pretty\..*" 2>/dev/null); do -		case "$i" in -		pretty.*) -			i="${i#pretty.}" -			echo "${i/ */}" -			;; -		esac +	local section="$1" i IFS=$'\n' +	for i in $(git --git-dir="$(__gitdir)" config --name-only --get-regexp "^$section\..*" 2>/dev/null); do +		echo "${i#$section.}"  	done  } +__git_pretty_aliases () +{ +	__git_get_config_variables "pretty" +} +  __git_aliases ()  { -	local i IFS=$'\n' -	for i in $(git --git-dir="$(__gitdir)" config --get-regexp "alias\..*" 2>/dev/null); do -		case "$i" in -		alias.*) -			i="${i#alias.}" -			echo "${i/ */}" -			;; -		esac -	done +	__git_get_config_variables "alias"  }  # __git_aliased_command requires 1 argument @@ -1114,7 +1109,7 @@ _git_commit ()  	case "$cur" in  	--cleanup=*) -		__gitcomp "default strip verbatim whitespace +		__gitcomp "default scissors strip verbatim whitespace  			" "" "${cur##--cleanup=}"  		return  		;; @@ -1174,7 +1169,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary  			--no-prefix --src-prefix= --dst-prefix=  			--inter-hunk-context=  			--patience --histogram --minimal -			--raw --word-diff +			--raw --word-diff --word-diff-regex=  			--dirstat --dirstat= --dirstat-by-file  			--dirstat-by-file= --cumulative  			--diff-algorithm= @@ -1317,6 +1312,7 @@ _git_grep ()  			--full-name --line-number  			--extended-regexp --basic-regexp --fixed-strings  			--perl-regexp +			--threads  			--files-with-matches --name-only  			--files-without-match  			--max-depth @@ -1448,7 +1444,7 @@ _git_log ()  		return  		;;  	--decorate=*) -		__gitcomp "long short" "" "${cur##--decorate=}" +		__gitcomp "full short no" "" "${cur##--decorate=}"  		return  		;;  	--*) @@ -1673,7 +1669,10 @@ _git_push ()  _git_rebase ()  {  	local dir="$(__gitdir)" -	if [ -d "$dir"/rebase-apply ] || [ -d "$dir"/rebase-merge ]; then +	if [ -f "$dir"/rebase-merge/interactive ]; then +		__gitcomp "--continue --skip --abort --edit-todo" +		return +	elif [ -d "$dir"/rebase-apply ] || [ -d "$dir"/rebase-merge ]; then  		__gitcomp "--continue --skip --abort"  		return  	fi @@ -1689,8 +1688,12 @@ _git_rebase ()  			--preserve-merges --stat --no-stat  			--committer-date-is-author-date --ignore-date  			--ignore-whitespace --whitespace= -			--autosquash --fork-point --no-fork-point -			--autostash +			--autosquash --no-autosquash +			--fork-point --no-fork-point +			--autostash --no-autostash +			--verify --no-verify +			--keep-empty --root --force-rebase --no-ff +			--exec  			"  		return @@ -1715,6 +1718,15 @@ __git_send_email_suppresscc_options="author self cc bodycc sob cccmd body all"  _git_send_email ()  { +	case "$prev" in +	--to|--cc|--bcc|--from) +		__gitcomp " +		$(git --git-dir="$(__gitdir)" send-email --dump-aliases 2>/dev/null) +		" +		return +		;; +	esac +  	case "$cur" in  	--confirm=*)  		__gitcomp " @@ -1739,6 +1751,12 @@ _git_send_email ()  			" "" "${cur##--thread=}"  		return  		;; +	--to=*|--cc=*|--bcc=*|--from=*) +		__gitcomp " +		$(git --git-dir="$(__gitdir)" send-email --dump-aliases 2>/dev/null) +		" "" "${cur#--*=}" +		return +		;;  	--*)  		__gitcomp "--annotate --bcc --cc --cc-cmd --chain-reply-to  			--compose --confirm= --dry-run --envelope-sender @@ -1780,15 +1798,7 @@ __git_config_get_set_variables ()  		c=$((--c))  	done -	git --git-dir="$(__gitdir)" config $config_file --list 2>/dev/null | -	while read -r line -	do -		case "$line" in -		*.*=*) -			echo "${line/=*/}" -			;; -		esac -	done +	git --git-dir="$(__gitdir)" config $config_file --name-only --list 2>/dev/null  }  _git_config () @@ -1803,7 +1813,7 @@ _git_config ()  		return  		;;  	branch.*.rebase) -		__gitcomp "false true" +		__gitcomp "false true preserve interactive"  		return  		;;  	remote.pushdefault) @@ -1893,6 +1903,7 @@ _git_config ()  			--get --get-all --get-regexp  			--add --unset --unset-all  			--remove-section --rename-section +			--name-only  			"  		return  		;; @@ -2049,6 +2060,7 @@ _git_config ()  		core.sparseCheckout  		core.symlinks  		core.trustctime +		core.untrackedCache  		core.warnAmbiguousRefs  		core.whitespace  		core.worktree @@ -2123,6 +2135,8 @@ _git_config ()  		http.noEPSV  		http.postBuffer  		http.proxy +		http.sslCipherList +		http.sslVersion  		http.sslCAInfo  		http.sslCAPath  		http.sslCert @@ -2260,12 +2274,7 @@ _git_remote ()  		__git_complete_remote_or_refspec  		;;  	update) -		local i c='' IFS=$'\n' -		for i in $(git --git-dir="$(__gitdir)" config --get-regexp "remotes\..*" 2>/dev/null); do -			i="${i#remotes.}" -			c="$c ${i/ */}" -		done -		__gitcomp "$c" +		__gitcomp "$(__git_get_config_variables "remotes")"  		;;  	*)  		;; @@ -2292,6 +2301,11 @@ _git_reset ()  _git_revert ()  { +	local dir="$(__gitdir)" +	if [ -f "$dir"/REVERT_HEAD ]; then +		__gitcomp "--continue --quit --abort" +		return +	fi  	case "$cur" in  	--*)  		__gitcomp "--edit --mainline --no-edit --no-commit --signoff" @@ -2360,7 +2374,7 @@ _git_show_branch ()  	case "$cur" in  	--*)  		__gitcomp " -			--all --remotes --topo-order --current --more= +			--all --remotes --topo-order --date-order --current --more=  			--list --independent --merge-base --no-name  			--color --no-color  			--sha1-name --sparse --topics --reflog @@ -2373,7 +2387,7 @@ _git_show_branch ()  _git_stash ()  { -	local save_opts='--keep-index --no-keep-index --quiet --patch' +	local save_opts='--all --keep-index --no-keep-index --quiet --patch --include-untracked'  	local subcommands='save list show apply clear drop pop create branch'  	local subcommand="$(__git_find_on_cmdline "$subcommands")"  	if [ -z "$subcommand" ]; then @@ -2395,9 +2409,20 @@ _git_stash ()  		apply,--*|pop,--*)  			__gitcomp "--index --quiet"  			;; -		show,--*|drop,--*|branch,--*) +		drop,--*) +			__gitcomp "--quiet" +			;; +		show,--*|branch,--*) +			;; +		branch,*) +			if [ $cword -eq 3 ]; then +				__gitcomp_nl "$(__git_refs)"; +			else +				__gitcomp_nl "$(git --git-dir="$(__gitdir)" stash list \ +						| sed -n -e 's/:.*//p')" +			fi  			;; -		show,*|apply,*|drop,*|pop,*|branch,*) +		show,*|apply,*|drop,*|pop,*)  			__gitcomp_nl "$(git --git-dir="$(__gitdir)" stash list \  					| sed -n -e 's/:.*//p')"  			;; diff --git a/plugins/gitfast/git-prompt.sh b/plugins/gitfast/git-prompt.sh index f18aedc73..64219e631 100644 --- a/plugins/gitfast/git-prompt.sh +++ b/plugins/gitfast/git-prompt.sh @@ -66,6 +66,10 @@  #     git           always compare HEAD to @{upstream}  #     svn           always compare HEAD to your SVN upstream  # +# You can change the separator between the branch name and the above +# state symbols by setting GIT_PS1_STATESEPARATOR. The default separator +# is SP. +#  # By default, __git_ps1 will compare HEAD to your SVN upstream if it can  # find one, or @{upstream} otherwise.  Once you have set  # GIT_PS1_SHOWUPSTREAM, you can override it on a per-repository basis by @@ -472,10 +476,9 @@ __git_ps1 ()  		if [ -n "${GIT_PS1_SHOWDIRTYSTATE-}" ] &&  		   [ "$(git config --bool bash.showDirtyState)" != "false" ]  		then -			git diff --no-ext-diff --quiet --exit-code || w="*" -			if [ -n "$short_sha" ]; then -				git diff-index --cached --quiet HEAD -- || i="+" -			else +			git diff --no-ext-diff --quiet || w="*" +			git diff --no-ext-diff --cached --quiet || i="+" +			if [ -z "$short_sha" ] && [ -z "$i" ]; then  				i="#"  			fi  		fi @@ -487,7 +490,7 @@ __git_ps1 ()  		if [ -n "${GIT_PS1_SHOWUNTRACKEDFILES-}" ] &&  		   [ "$(git config --bool bash.showUntrackedFiles)" != "false" ] && -		   git ls-files --others --exclude-standard --error-unmatch -- ':/*' >/dev/null 2>/dev/null +		   git ls-files --others --exclude-standard --directory --no-empty-directory --error-unmatch -- ':/*' >/dev/null 2>/dev/null  		then  			u="%${ZSH_VERSION+%}"  		fi | 
