doc/hgrc.5.txt
branchstable
changeset 14275 2a6ee654655e
parent 13904 5065e120636d
child 14276 7f16ff9e45b4
--- a/doc/hgrc.5.txt	Sun May 01 13:07:00 2011 +0200
+++ b/doc/hgrc.5.txt	Mon May 09 10:46:54 2011 +0200
@@ -200,6 +200,26 @@
    existing commands, which will then override the original
    definitions. This is almost always a bad idea!
 
+An alias can start with an exclamation point (``!``) to make it a
+shell alias. A shell alias is executed with the shell and will let you
+run arbitrary commands. As an example, ::
+
+   echo = !echo
+
+will let you do ``hg echo foo`` to have ``foo`` printed in your
+terminal. A better example might be::
+
+   purge = !$HG status --no-status --unknown -0 | xargs -0 rm
+
+which will make ``hg purge`` delete all unknown files in the
+repository in the same manner as the purge extension.
+
+Shell aliases are executed in an environment where ``$HG`` expand to
+the path of the Mercurial that was used to execute the alias. This is
+useful when you want to call further Mercurial commands in a shell
+alias, as was done above for the purge alias. In addition,
+``$HG_ARGS`` expand to the arguments given to Mercurial. In the ``hg
+echo foo`` call above, ``$HG_ARGS`` would expand to ``echo foo``.
 
 ``auth``
 """"""""