alias: fix shell alias documentation (issue3374) stable
authorPatrick Mezard <patrick@mezard.eu>
Tue, 24 Apr 2012 14:34:54 +0200
branchstable
changeset 16513 aa252059a98f
parent 16512 c58bdecdb800
child 16514 363e808de349
alias: fix shell alias documentation (issue3374) Described behaviour was the one before shell alias argument handling was reworked by f853873fc66d mid-2010.
mercurial/help/config.txt
--- a/mercurial/help/config.txt	Tue Apr 24 13:05:38 2012 +0200
+++ b/mercurial/help/config.txt	Tue Apr 24 14:34:54 2012 +0200
@@ -211,7 +211,7 @@
 shell alias. A shell alias is executed with the shell and will let you
 run arbitrary commands. As an example, ::
 
-   echo = !echo
+   echo = !echo $@
 
 will let you do ``hg echo foo`` to have ``foo`` printed in your
 terminal. A better example might be::
@@ -221,11 +221,17 @@
 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
+Positional arguments like ``$1``, ``$2``, etc. in the alias definition
+expand to the command arguments. Unmatched arguments are
+removed. ``$0`` expands to the alias name and ``$@`` expands to all
+arguments separated by a space. These expansions happen before the
+command is passed to the shell.
+
+Shell aliases are executed in an environment where ``$HG`` expands 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
+``$HG_ARGS`` expands to the arguments given to Mercurial. In the ``hg
 echo foo`` call above, ``$HG_ARGS`` would expand to ``echo foo``.
 
 .. note:: Some global configuration options such as ``-R`` are