view tests/test-dispatch.out @ 11989:f853873fc66d

aliases: provide more flexible ways to work with shell alias arguments This patch changes the functionality of shell aliases to add more powerful options for working with shell alias arguments. First: the alias name + arguments to a shell alias are set as an HG_ARGS environment variable, delimited by spaces. This matches the behavior of hooks. Second: any occurrences of "$@" (without quotes) are replaced with the arguments, separated by spaces. This happens *before* the alias gets to the shell. Third: any positive numeric variables ("$1", "$2", etc) are replaced with the appropriate argument, indexed from 1. "$0" is replaced with the name of the alias. Any "extra" numeric variables are replaced with an empty string. This happens *before* the alias gets to the shell. These changes allow for more flexible shell aliases: [alias] echo = !echo $@ count = !hg log -r "$@" --template='.' | wc -c | sed -e 's/ //g' qqueuemv = !mv "`hg root`/.hg/patches-$1" "`hg root`/.hg/patches-$2" In action: $ hg echo foo foo $ hg count 'branch(default)' 901 $ hg count 'branch(stable) and keyword(fixes)' 102 $ hg qqueuemv myfeature somefeature
author Steve Losh <steve@stevelosh.com>
date Wed, 18 Aug 2010 18:56:44 -0400
parents 423ece53380e
children 21984c1c83d4
line wrap: on
line source

adding a
# missing arg
hg cat: invalid arguments
hg cat [OPTION]... FILE...

output the current or given revision of files

    Print the specified files as they were at the given revision. If no
    revision is given, the parent of the working directory is used, or tip if
    no revision is checked out.

    Output may be to a file, in which case the name of the file is given using
    a format string. The formatting rules are the same as for the export
    command, with the following additions:

    "%s"  basename of file being printed
    "%d"  dirname of file being printed, or '.' if in repository root
    "%p"  root-relative path name of file being printed

    Returns 0 on success.

options:

 -o --output FORMAT        print output to file with formatted name
 -r --rev REV              print the given revision
    --decode               apply any matching decode filter
 -I --include PATTERN [+]  include names matching the given patterns
 -X --exclude PATTERN [+]  exclude names matching the given patterns

[+] marked option can be specified multiple times

use "hg -v help cat" to show global options
% [defaults]
a
a: No such file in rev 000000000000
% working directory removed
abort: error getting current working directory: ...
% no repo
abort: There is no Mercurial repository here (.hg not found)!