diff options
Diffstat (limited to 'plugins/mercurial')
| -rw-r--r-- | plugins/mercurial/README.md | 96 | ||||
| -rw-r--r-- | plugins/mercurial/mercurial.plugin.zsh | 13 | 
2 files changed, 57 insertions, 52 deletions
diff --git a/plugins/mercurial/README.md b/plugins/mercurial/README.md index f42212d68..80ea2de31 100644 --- a/plugins/mercurial/README.md +++ b/plugins/mercurial/README.md @@ -1,60 +1,66 @@  # Mercurial plugin -### Usage -Update .zshrc: -1. Add name to the list of plugins, e.g. `plugins=(... mercurial ...)` -   (that is pretty obvious). -2. Switch to a theme which uses `hg_prompt_info`. +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. -   Or, customize the `$PROMPT` variable 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_CUSTOM` or by changing `$PROMPT` in `.zshrc` after loading the theme. +To use it, add `mercurial` to the plugins array in your zshrc file: -   The `robbyrussell` theme is used by default, so you need to modify `$PROMPT` var by adding `$(hg_prompt_info)` after `$(git_prompt_info)`, so it looks like this: +```zsh +plugins=(... mercurial) +``` -   ```zsh -   PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)$(hg_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' -   ``` +## Aliases -3. Initialize additional vars used in plugin. So in short put next in **.zshrc**: +| Alias  | Command                                                                                                     | +|--------|-------------------------------------------------------------------------------------------------------------| +| `hga`  | `hg add`                                                                                                    | +| `hgc`  | `hg commit`                                                                                                 | +| `hgca` | `hg commit --amend`                                                                                         | +| `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 "{node|short} | {date|isodatesec} | {author|user}: {desc|strip|firstline}\n"` | +| `hgun` | `hg resolve --list`                                                                                         | +| `hgi`  | `hg incoming`                                                                                               | +| `hgl`  | `hg pull -u`                                                                                                | +| `hglr` | `hg pull --rebase`                                                                                          | +| `hgo`  | `hg outgoing`                                                                                               | -   ``` -   ZSH_THEME_HG_PROMPT_PREFIX="%{$fg_bold[magenta]%}hg:(%{$fg[red]%}" -   ZSH_THEME_HG_PROMPT_SUFFIX="%{$reset_color%}" -   ZSH_THEME_HG_PROMPT_DIRTY="%{$fg[magenta]%}) %{$fg[yellow]%}✗%{$reset_color%}" -   ZSH_THEME_HG_PROMPT_CLEAN="%{$fg[magenta]%})" -   ``` +## Prompt usage -### What's inside? -#### Adds handy aliases: -###### general -* `hgc` - `hg commit` -* `hgb` - `hg branch` -* `hgba` - `hg branches` -* `hgbk` - `hg bookmarks` -* `hgco` - `hg checkout` -* `hgd`  - `hg diff` -* `hged` - `hg diffmerge` +- Switch to a theme which uses `hg_prompt_info` -###### pull and update -* `hgi` - `hg incoming` -* `hgl` - `hg pull -u` -* `hglr` - `hg pull --rebase` -* `hgo` - `hg outgoing` -* `hgp` - `hg push` -* `hgs` - `hg status` -* `hgsl` - `hg log --limit 20 --template "{node|short} | {date|isodatesec} | {author|user}: {desc|strip|firstline}\n"` +- Or customize the `$PROMPT` variable 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_CUSTOM` or by changing `$PROMPT` in +  `.zshrc` after loading the theme. -###### this is the 'git commit --amend' equivalent -* `hgca` - `hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip` +  For example, for the `robbyrussell` theme you need to modify `$PROMPT` var by adding `$(hg_prompt_info)` +  after `$(git_prompt_info)`, so it looks like this: -###### list unresolved files (since hg does not list unmerged files in the status command) -* `hgun` - `hg resolve --list` +  ```zsh +  PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)$(hg_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' +  ``` -#### Displays repo branch and directory status in prompt -This is the same as git plugin does. +You can also redefine additional vars used in the plugin (after Oh My Zsh is sourced): -**Note**: Additional changes to **.zshrc**, or using a theme designed to use `hg_prompt_info`, are required in order for this to work. +```zsh +ZSH_THEME_HG_PROMPT_PREFIX="%{$fg_bold[magenta]%}hg:(%{$fg[red]%}" +ZSH_THEME_HG_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_HG_PROMPT_DIRTY="%{$fg[magenta]%}) %{$fg[yellow]%}✗%{$reset_color%}" +ZSH_THEME_HG_PROMPT_CLEAN="%{$fg[magenta]%})" +``` -### Mantainers -[ptrv](https://github.com/ptrv) - original creator +### Display repo branch and directory status in prompt -[oshybystyi](https://github.com/oshybystyi) - created this README and know how most of code works +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. + +## Mantainers + +- [ptrv](https://github.com/ptrv): original creator +- [oshybystyi](https://github.com/oshybystyi) diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index 58bc571a0..f13430476 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -1,23 +1,22 @@ -# Mercurial +# aliases  alias hga='hg add'  alias hgc='hg commit' +alias hgca='hg commit --amend'  alias hgb='hg branch'  alias hgba='hg branches'  alias hgbk='hg bookmarks'  alias hgco='hg checkout'  alias hgd='hg diff'  alias hged='hg diffmerge' +alias hgp='hg push' +alias hgs='hg status' +alias hgsl='hg log --limit 20 --template "{node|short} | {date|isodatesec} | {author|user}: {desc|strip|firstline}\n"' +alias hgun='hg resolve --list'  # pull and update  alias hgi='hg incoming'  alias hgl='hg pull -u'  alias hglr='hg pull --rebase'  alias hgo='hg outgoing' -alias hgp='hg push' -alias hgs='hg status' -alias hgsl='hg log --limit 20 --template "{node|short} | {date|isodatesec} | {author|user}: {desc|strip|firstline}\n" ' -alias hgca='hg commit --amend' -# list unresolved files (since hg does not list unmerged files in the status command) -alias hgun='hg resolve --list'  function in_hg() {    if [[ -d .hg ]] || $(hg summary > /dev/null 2>&1); then  | 
