Update plugins/git:

- move aliases into plugins/git/git-aliases.plugin.zsh
  - move git prompt info into plugins/git/git-prompt-old.plugin.zsh
  - add revamped git prompt info into plugins/git/git-prompt.plugin.zsh
  - plugins/git/git.plugin.zsh now just sources the above files

Added themes/ashleydev.theme.zsh that takes advantage of the new git prompt info
This commit is contained in:
Ashley Dev 2011-06-02 11:22:39 -07:00
commit fcbca579ae
5 changed files with 96 additions and 76 deletions

View file

@ -0,0 +1,60 @@
# Aliases
alias g='git' ; compdef g=git
alias ga='git add' ; compdef _git ga=git-add
alias gaa='git add --all' ; compdef _git gaa=git-add
alias gs='git status' ; compdef _git gs=git-status
alias gst='git status' ; compdef _git gst=git-status
# for `gsts "<message>"`
alias gsts='git stash save' ; compdef _git gsts=git-stash
alias gstp='git stash pop' ; compdef _git gstp=git-stash
alias gstl='git stash list' ; compdef _git gstl=git-stash
alias gstll='git stash show -p --stat' ; compdef _git gstll=git-stash
alias gl='git pull' ; compdef _git gl=git-pull
alias gup='git fetch && git rebase' ; compdef _git gup=git-fetch
alias gf='git fetch' ; compdef _git gf=git-fetch
alias gp='git push' ; compdef _git gp=git-push
alias gd='git diff --no-ext-diff -b' ; compdef _git gd=git-diff
alias gdd='git diff --no-ext-diff' ; compdef _git gdd=git-diff
gdv() { git-diff -w "$@" | view - } ; compdef _git gdv=git-diff
alias gc='git commit -v' ; compdef _git gc=git-commit
alias gca='git commit -v -a' ; compdef _git gca=git-commit
alias gco='git checkout' ; compdef _git gco=git-checkout
alias gb='git branch' ; compdef _git gb=git-branch
alias gba='git branch -a' ; compdef _git gba=git-branch
alias gcount='git shortlog -sn' ; compdef gcount=git
alias gcp='git cherry-pick' ; compdef _git gcp=git-cherry-pick
alias gm='git merge' ; compdef _git gm=git-merge
alias glg='git log --stat --max-count=5'; compdef _git glg=git-log
# Git history (pretty)
local pretty_format_oneline='--pretty=format:"%C(yellow)%h %C(green)%cd %C(cyan)%an %C(bold cyan)%d%C(reset) %s" --date=short'
local pretty_format_medium='--pretty=format:"%C(yellow)commit %H %C(bold cyan)%d%C(reset)
%C(cyan)Author: %an <%ae>%C(reset)
%C(green)Date: %cd%C(reset)
%+s
%+b"'
alias gh="git log --graph $pretty_format_oneline" ; compdef _git gh=git-log
alias ghh="git log --graph $pretty_format_medium" ; compdef _git gh=git-log
alias ghhh="git log --graph --stat $pretty_format_medium" ; compdef _git gh=git-log
alias ghhhh="git log --graph --stat -p --full-diff $pretty_format_medium"; compdef _git gh=git-log
# Git and svn mix
alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk'
compdef _git git-svn-dcommit-push=git
#
# Will return the current branch name
# Usage example: git pull origin $(current_branch)
#
function current_branch() {
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
echo ${ref#refs/heads/}
}
# these aliases take advantage of the previous function
alias ggpull='git pull origin $(current_branch)'
compdef _git ggpull=git
alias ggpush='git push origin $(current_branch)'
compdef _git ggpush=git
alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)'
compdef _git ggpnp=git

View file

@ -1,11 +1,21 @@
# get the name of the branch we are on # Renders the name of the current branch.
function git_prompt_info() { function git_prompt_info() {
ref=$(git symbolic-ref HEAD 2> /dev/null) || return local branch=$(git_current_branch)
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX" if [[ -n "$branch" ]]; then
echo "${ZSH_THEME_GIT_PROMPT_PREFIX}${branch}$(parse_git_dirty)${ZSH_THEME_GIT_PROMPT_SUFFIX}"
fi
} }
# Checks if working tree is dirty # Gets the current branch.
parse_git_dirty() { function git_current_branch() {
local ref=$(git symbolic-ref HEAD 2> /dev/null)
if [[ -n "$ref" ]]; then
echo "${ref#refs/heads/}"
fi
}
# Checks if the working tree is dirty.
function parse_git_dirty() {
if [[ -n $(git status -s 2> /dev/null) ]]; then if [[ -n $(git status -s 2> /dev/null) ]]; then
echo "$ZSH_THEME_GIT_PROMPT_DIRTY" echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
else else
@ -13,25 +23,31 @@ parse_git_dirty() {
fi fi
} }
# Checks if there are commits ahead from remote # Checks if there are commits ahead from remote.
function git_prompt_ahead() { function git_prompt_ahead() {
if $(echo "$(git log origin/$(current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then if $(echo "$(git log origin/$(git_current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then
echo "$ZSH_THEME_GIT_PROMPT_AHEAD" echo "$ZSH_THEME_GIT_PROMPT_AHEAD"
fi fi
} }
# Formats prompt string for current git commit short SHA # Formats the prompt string for current git commit short SHA.
function git_prompt_short_sha() { function git_prompt_short_sha() {
SHA=$(git rev-parse --short HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER" local sha=$(git rev-parse --short HEAD 2> /dev/null)
if [[ -n "$sha" ]]; then
echo "${ZSH_THEME_GIT_PROMPT_SHA_BEFORE}${sha}${ZSH_THEME_GIT_PROMPT_SHA_AFTER}"
fi
} }
# Formats prompt string for current git commit long SHA # Formats the prompt string for current git commit long SHA.
function git_prompt_long_sha() { function git_prompt_long_sha() {
SHA=$(git rev-parse HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER" local sha=$(git rev-parse HEAD 2> /dev/null)
if [[ -n "$sha" ]]; then
echo "${ZSH_THEME_GIT_PROMPT_SHA_BEFORE}${sha}${ZSH_THEME_GIT_PROMPT_SHA_AFTER}"
fi
} }
# Get the status of the working tree # Gets the status of the working tree.
git_prompt_status() { function git_prompt_status() {
local indicators line untracked added modified renamed deleted local indicators line untracked added modified renamed deleted
while IFS=$'\n' read line; do while IFS=$'\n' read line; do
if [[ "$line" =~ '^\?\? ' ]]; then if [[ "$line" =~ '^\?\? ' ]]; then

View file

@ -146,7 +146,7 @@
# r="$_Cr_$r$R" # r="$_Cr_$r$R"
# fi # fi
# #
# local _prompt="$b$r$s$i$p" # local _prompt="$b$r$i$s$p"
# # add ( ) around _prompt: # # add ( ) around _prompt:
# if [ $f = 'yes' ]; then # if [ $f = 'yes' ]; then
# _prompt="($_prompt)" # _prompt="($_prompt)"
@ -538,7 +538,6 @@ _git_prompt__dirty_state ()
if [[ "$line" = \?\?* ]]; then if [[ "$line" = \?\?* ]]; then
GIT_PROMPT_DIRTY_STATE_WORKTREE_UNTRACKED='yes' GIT_PROMPT_DIRTY_STATE_WORKTREE_UNTRACKED='yes'
GIT_PROMPT_DIRTY_STATE_WORKTREE_DIRTY='yes'
fi fi
if [[ "$line" = \ M* ]]; then if [[ "$line" = \ M* ]]; then
GIT_PROMPT_DIRTY_STATE_WORKTREE_MODIFIED='yes' GIT_PROMPT_DIRTY_STATE_WORKTREE_MODIFIED='yes'
@ -577,6 +576,8 @@ PERIOD=15
periodic_functions+="_git_prompt_info" periodic_functions+="_git_prompt_info"
_git_prompt_info () { $GIT_PROMPT_INFO_FUNC } _git_prompt_info () { $GIT_PROMPT_INFO_FUNC }
_git_prompt_info
_git_prompt__precmd_update_git_vars() _git_prompt__precmd_update_git_vars()
{ {
if [[ $ZSH_VERSION = *\ 4.2* ]]; then if [[ $ZSH_VERSION = *\ 4.2* ]]; then

View file

@ -1,60 +1,3 @@
# Aliases source $ZSH/plugins/git/git-aliases.plugin.zsh
alias g='git' ; compdef g=git source $ZSH/plugins/git/git-prompt-old.plugin.zsh
alias ga='git add' ; compdef _git ga=git-add source $ZSH/plugins/git/git-prompt.plugin.zsh
alias gaa='git add --all' ; compdef _git gaa=git-add
alias gs='git status' ; compdef _git gs=git-status
alias gst='git status' ; compdef _git gst=git-status
# for `gsts "<message>"`
alias gsts='git stash save' ; compdef _git gsts=git-stash
alias gstp='git stash pop' ; compdef _git gstp=git-stash
alias gstl='git stash list' ; compdef _git gstl=git-stash
alias gstll='git stash show -p --stat' ; compdef _git gstll=git-stash
alias gl='git pull' ; compdef _git gl=git-pull
alias gup='git fetch && git rebase' ; compdef _git gup=git-fetch
alias gf='git fetch' ; compdef _git gf=git-fetch
alias gp='git push' ; compdef _git gp=git-push
alias gd='git diff --no-ext-diff -b' ; compdef _git gd=git-diff
alias gdd='git diff --no-ext-diff' ; compdef _git gdd=git-diff
gdv() { git-diff -w "$@" | view - } ; compdef _git gdv=git-diff
alias gc='git commit -v' ; compdef _git gc=git-commit
alias gca='git commit -v -a' ; compdef _git gca=git-commit
alias gco='git checkout' ; compdef _git gco=git-checkout
alias gb='git branch' ; compdef _git gb=git-branch
alias gba='git branch -a' ; compdef _git gba=git-branch
alias gcount='git shortlog -sn' ; compdef gcount=git
alias gcp='git cherry-pick' ; compdef _git gcp=git-cherry-pick
alias gm='git merge' ; compdef _git gm=git-merge
alias glg='git log --stat --max-count=5'; compdef _git glg=git-log
# Git history (pretty)
local pretty_format_oneline='--pretty=format:"%C(yellow)%h %C(green)%cd %C(cyan)%an %C(bold cyan)%d%C(reset) %s" --date=short'
local pretty_format_medium='--pretty=format:"%C(yellow)commit %H %C(bold cyan)%d%C(reset)
%C(cyan)Author: %an <%ae>%C(reset)
%C(green)Date: %cd%C(reset)
%+s
%+b"'
alias gh="git log --graph $pretty_format_oneline" ; compdef _git gh=git-log
alias ghh="git log --graph $pretty_format_medium" ; compdef _git gh=git-log
alias ghhh="git log --graph --stat $pretty_format_medium" ; compdef _git gh=git-log
alias ghhhh="git log --graph --stat -p --full-diff $pretty_format_medium"; compdef _git gh=git-log
# Git and svn mix
alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk'
compdef _git git-svn-dcommit-push=git
#
# Will return the current branch name
# Usage example: git pull origin $(current_branch)
#
function current_branch() {
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
echo ${ref#refs/heads/}
}
# these aliases take advantage of the previous function
alias ggpull='git pull origin $(current_branch)'
compdef _git ggpull=git
alias ggpush='git push origin $(current_branch)'
compdef _git ggpush=git
alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)'
compdef _git ggpnp=git

View file

@ -109,7 +109,7 @@ update__GIT_PROMPT_INFO ()
r="$_Cr_$r$R" r="$_Cr_$r$R"
fi fi
local _prompt="$b$r$s$i$p" local _prompt="$b$r$i$s$p"
# add ( ) around _prompt: # add ( ) around _prompt:
if [ "$f" = 'yes' ]; then if [ "$f" = 'yes' ]; then
_prompt="($_prompt)" _prompt="($_prompt)"