README @ 95281c1ac8a0

Fix the typo in the help text.

fixes issue 1
author Steve Losh <>
date Tue, 14 Jul 2009 07:12:19 -0400
parents 955f4488f637
children 257f4349747c
-*- markdown -*-


hg-prompt adds an 'hg prompt' command to Mercurial for viewing repository information.  It's designed to be used in a shell prompt.


Clone the repository:

    $ hg clone

Edit the `[extensions]` section in your `~/.hgrc` file:

    prompt = (path to)/hg-prompt/

Using the Command

The `hg prompt` command takes a single string as an argument and outputs it.  Here's a simple (and useless) example:

    $ hg prompt "test"

Keywords in curly braces can be used to output repository information:

    $ hg prompt "currently on {branch}"
    currently on default

Keywords also have an extended form:

    {optional text{branch}more optional text}

This form will output the text and the expanded keyword **only** if the keyword successfully expands.  This can be useful for displaying extra text only if it's applicable:

    $ hg prompt "currently on {branch} and at {bookmark}"
    currently on branch default and at 
    $ hg prompt "currently on {branch} {and at {bookmark}}"
    currently on branch default 
    $ hg bookmark my-book
    $ hg prompt "currently on {branch} {and at {bookmark}}"
    currently on branch default and at my-book

Available Keywords

There are only a few keywords at the moment (mostly the ones I want for myself).  If you have any suggestions for more please let me know.

* **bookmark:** the current bookmark
* **branch:** the current branch
* **status:**  `!` if the repository has any changed/added/removed files, otherwise `?` if it has any untracked (but not ignored) files, otherwise nothing

Putting it in a Bash Prompt

To put it in your bash prompt, edit your `~/.bashrc` file to include something like this:

    hg_ps1() {
        hg prompt "{ on {branch}}{ at {bookmark}}{status}" 2> /dev/null
    export PS1='\u at \h in \w$(hg_ps1) $ '

`source ~/.bashrc` after to test it out.  Make sure you're in a Mercurial repository or you won't see anything.

Questions, Comments, Suggestions

The code was kind of thrown together in one night after I got tired of chaining three or four hg runs together to get what I wanted.  I'm sure it's not perfect, so if you've got a way to improve it please add an issue and let me know.