diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index de036e44d..c429e337d 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -1,3 +1,4 @@ + # Mercurial alias hgc='hg commit' alias hgb='hg branch' @@ -8,50 +9,24 @@ alias hgd='hg diff' alias hged='hg diffmerge' # pull and update alias hgi='hg incoming' -alias hgic='hg incoming | grep "changeset" | wc -l' alias hgl='hg pull -u' alias hglr='hg pull --rebase' alias hgo='hg outgoing' -alias hgoc='hg outgoing | grep 'changeset' | wc -l' alias hgp='hg push' alias hgs='hg status' # this is the 'git commit --amend' equivalent alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip' -function in_hg() { - if [[ -d .hg ]] || $(hg summary > /dev/null 2>&1); then - echo 1 +function hg_current_branch() { + if [ -d .hg ]; then + echo hg:$(hg branch) fi } -function hg_get_branch_name() { - if [ $(in_hg) ]; then - echo $(hg branch) - fi +function hgic() { + hg incoming "$@" | grep "changeset" | wc -l } -function hg_prompt_info { - if [ $(in_hg) ]; then - _DISPLAY=$(hg_get_branch_name) - echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_HG_PROMPT_PREFIX\ -$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_HG_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(hg_dirty)$ZSH_PROMPT_BASE_COLOR" - unset _DISPLAY - fi -} - -function hg_dirty_choose { - if [ $(in_hg) ]; then - hg status 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]' - if [ $pipestatus[-1] -eq 0 ]; then - # Grep exits with 0 when "One or more lines were selected", return "dirty". - echo $1 - else - # Otherwise, no lines were found, or an error occurred. Return clean. - echo $2 - fi - fi -} - -function hg_dirty { - hg_dirty_choose $ZSH_THEME_HG_PROMPT_DIRTY $ZSH_THEME_HG_PROMPT_CLEAN +function hgoc() { + hg outgoing "$@" | grep "changeset" | wc -l }