Use "hg identify" with a template parameter to generate revision identifiers (branch, bookmarks, tags) because this is faster, more complete, and more customizable. When DISABLE_UNTRACKED_FILES_DIRTY=true, avoid "hg status" entirely; otherwise, stop once the first untracked file is found. This should be much faster on really large repositories.
3.4 KiB
Mercurial plugin
This plugin adds some handy aliases for using Mercurial as well as a few utility and prompt functions that can be used in a theme.
To use it, add mercurial to the plugins array in your zshrc file:
plugins=(... mercurial)
Aliases
| Alias | Command |
|---|---|
hga |
hg add |
hgc |
hg commit |
hgca |
hg commit --amend |
hgci |
hg commit --interactive |
hgb |
hg branch |
hgba |
hg branches |
hgbk |
hg bookmarks |
hgco |
hg checkout |
hgd |
hg diff |
hged |
hg diffmerge |
hgp |
hg push |
hgs |
hg status |
hgsl |
hg log --limit 20 --template "<template>" |
hgun |
hg resolve --list |
hgi |
hg incoming |
hgl |
hg pull -u |
hglr |
hg pull --rebase |
hgo |
hg outgoing |
hglg |
hg log --stat -v |
hglgp |
hg log --stat -p -v |
Prompt usage
-
Switch to a theme which uses
hg_prompt_info -
Or customize the
$PROMPTvariable of your current theme to contain current folder mercurial repo info. This can be done by putting a custom version of the theme in$ZSH_CUSTOMor by changing$PROMPTin.zshrcafter loading the theme.For example, for the
robbyrusselltheme you need to modify$PROMPTvar by adding$(hg_prompt_info)after$(git_prompt_info), so it looks like this:PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)$(hg_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
You can define the below variables to customize the prompt, after Oh-My-Zsh is source. The prompt will be generated in this order:
- PREFIX variable.
- IDENTIFY variable, which is used with "hg identify --template":
- Branch name, if not "default".
- Bookmarks, if any. The active bookmark will have '*' appended.
- Tags, if any.
- Either the DIRTY or CLEAN variables.
- SUFFIX variable.
Spaces are only needed to separate non-empty parts, but no space will be inserted before DIRTY or CLEAN.
ZSH_THEME_HG_PROMPT_PREFIX="%{$fg[magenta]%}hg:(%{$fg[red]%}"
ZSH_THEME_HG_PROMPT_IDENTIFY='{separate(" ",ifeq(branch,"default","",branch),"{activebookmark}*",tags)}'
# See "hg help templates"; the default is $ZSH_THEME_HG_PROMPT_IDENTIFY_DEFAULT.
ZSH_THEME_HG_PROMPT_DIRTY="%{$fg[magenta]%}) %{$fg_bold[yellow]%}✗"
ZSH_THEME_HG_PROMPT_CLEAN="%{$fg[magenta]%})"
ZSH_THEME_HG_PROMPT_SUFFIX="%{$reset_color%}"
Display repo branch and directory status in prompt
This is the same as git plugin does. Note: additional changes to .zshrc, or using a theme designed
to use hg_prompt_info, are required in order for this to work.
Maintainers
- ptrv: original creator
- oshybystyi