|
|
@ -21,6 +21,11 @@ |
|
|
|
# 2) Added the following line to your .bashrc: |
|
|
|
# 2) Added the following line to your .bashrc: |
|
|
|
# source ~/.git-completion.sh |
|
|
|
# source ~/.git-completion.sh |
|
|
|
# |
|
|
|
# |
|
|
|
|
|
|
|
# Or, add the following lines to your .zshrc: |
|
|
|
|
|
|
|
# autoload bashcompinit |
|
|
|
|
|
|
|
# bashcompinit |
|
|
|
|
|
|
|
# source ~/.git-completion.sh |
|
|
|
|
|
|
|
# |
|
|
|
# 3) Consider changing your PS1 to also show the current branch: |
|
|
|
# 3) Consider changing your PS1 to also show the current branch: |
|
|
|
# PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ ' |
|
|
|
# PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ ' |
|
|
|
# |
|
|
|
# |
|
|
@ -138,11 +143,12 @@ __git_ps1_show_upstream () |
|
|
|
# get the upstream from the "git-svn-id: ..." in a commit message |
|
|
|
# get the upstream from the "git-svn-id: ..." in a commit message |
|
|
|
# (git-svn uses essentially the same procedure internally) |
|
|
|
# (git-svn uses essentially the same procedure internally) |
|
|
|
local svn_upstream=($(git log --first-parent -1 \ |
|
|
|
local svn_upstream=($(git log --first-parent -1 \ |
|
|
|
--grep="^git-svn-id: \(${svn_url_pattern:2}\)" 2>/dev/null)) |
|
|
|
--grep="^git-svn-id: \(${svn_url_pattern#??}\)" 2>/dev/null)) |
|
|
|
if [[ 0 -ne ${#svn_upstream[@]} ]]; then |
|
|
|
if [[ 0 -ne ${#svn_upstream[@]} ]]; then |
|
|
|
svn_upstream=${svn_upstream[ ${#svn_upstream[@]} - 2 ]} |
|
|
|
svn_upstream=${svn_upstream[ ${#svn_upstream[@]} - 2 ]} |
|
|
|
svn_upstream=${svn_upstream%@*} |
|
|
|
svn_upstream=${svn_upstream%@*} |
|
|
|
for ((n=1; "$n" <= "${#svn_remote[@]}"; ++n)); do |
|
|
|
local n_stop="${#svn_remote[@]}" |
|
|
|
|
|
|
|
for ((n=1; n <= n_stop; ++n)); do |
|
|
|
svn_upstream=${svn_upstream#${svn_remote[$n]}} |
|
|
|
svn_upstream=${svn_upstream#${svn_remote[$n]}} |
|
|
|
done |
|
|
|
done |
|
|
|
|
|
|
|
|
|
|
@ -2339,6 +2345,11 @@ _git () |
|
|
|
{ |
|
|
|
{ |
|
|
|
local i c=1 command __git_dir |
|
|
|
local i c=1 command __git_dir |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [[ -n $ZSH_VERSION ]]; then |
|
|
|
|
|
|
|
emulate -L bash |
|
|
|
|
|
|
|
setopt KSH_TYPESET |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
while [ $c -lt $COMP_CWORD ]; do |
|
|
|
while [ $c -lt $COMP_CWORD ]; do |
|
|
|
i="${COMP_WORDS[c]}" |
|
|
|
i="${COMP_WORDS[c]}" |
|
|
|
case "$i" in |
|
|
|
case "$i" in |
|
|
@ -2372,17 +2383,22 @@ _git () |
|
|
|
fi |
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
local completion_func="_git_${command//-/_}" |
|
|
|
local completion_func="_git_${command//-/_}" |
|
|
|
declare -F $completion_func >/dev/null && $completion_func && return |
|
|
|
declare -f $completion_func >/dev/null && $completion_func && return |
|
|
|
|
|
|
|
|
|
|
|
local expansion=$(__git_aliased_command "$command") |
|
|
|
local expansion=$(__git_aliased_command "$command") |
|
|
|
if [ -n "$expansion" ]; then |
|
|
|
if [ -n "$expansion" ]; then |
|
|
|
completion_func="_git_${expansion//-/_}" |
|
|
|
completion_func="_git_${expansion//-/_}" |
|
|
|
declare -F $completion_func >/dev/null && $completion_func |
|
|
|
declare -f $completion_func >/dev/null && $completion_func |
|
|
|
fi |
|
|
|
fi |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
_gitk () |
|
|
|
_gitk () |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
if [[ -n $ZSH_VERSION ]]; then |
|
|
|
|
|
|
|
emulate -L bash |
|
|
|
|
|
|
|
setopt KSH_TYPESET |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
__git_has_doubledash && return |
|
|
|
__git_has_doubledash && return |
|
|
|
|
|
|
|
|
|
|
|
local cur="${COMP_WORDS[COMP_CWORD]}" |
|
|
|
local cur="${COMP_WORDS[COMP_CWORD]}" |
|
|
@ -2417,3 +2433,29 @@ if [ Cygwin = "$(uname -o 2>/dev/null)" ]; then |
|
|
|
complete -o bashdefault -o default -o nospace -F _git git.exe 2>/dev/null \ |
|
|
|
complete -o bashdefault -o default -o nospace -F _git git.exe 2>/dev/null \ |
|
|
|
|| complete -o default -o nospace -F _git git.exe |
|
|
|
|| complete -o default -o nospace -F _git git.exe |
|
|
|
fi |
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [[ -n $ZSH_VERSION ]]; then |
|
|
|
|
|
|
|
shopt () { |
|
|
|
|
|
|
|
local option |
|
|
|
|
|
|
|
if [ $# -ne 2 ]; then |
|
|
|
|
|
|
|
echo "USAGE: $0 (-q|-s|-u) <option>" >&2 |
|
|
|
|
|
|
|
return 1 |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
case "$2" in |
|
|
|
|
|
|
|
nullglob) |
|
|
|
|
|
|
|
option="$2" |
|
|
|
|
|
|
|
;; |
|
|
|
|
|
|
|
*) |
|
|
|
|
|
|
|
echo "$0: invalid option: $2" >&2 |
|
|
|
|
|
|
|
return 1 |
|
|
|
|
|
|
|
esac |
|
|
|
|
|
|
|
case "$1" in |
|
|
|
|
|
|
|
-q) setopt | grep -q "$option" ;; |
|
|
|
|
|
|
|
-u) unsetopt "$option" ;; |
|
|
|
|
|
|
|
-s) setopt "$option" ;; |
|
|
|
|
|
|
|
*) |
|
|
|
|
|
|
|
echo "$0: invalid flag: $1" >&2 |
|
|
|
|
|
|
|
return 1 |
|
|
|
|
|
|
|
esac |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
fi |
|
|
|