view tests/test-alias @ 11524:24965bb270b7

dispatch: add shell aliases This patch adds git-style "shell aliases" to Mercurial. Any alias with a definition beginning with a '!' will be treated as a shell alias. For example: [alias] echo = !echo qempty = !hg qrefresh -X "`hg root`" ; echo Emptied patch "`hg qtop`" $ hg echo foo foo $ hg qempty Emptied patch foo $
author Steve Losh <steve@stevelosh.com>
date Wed, 07 Jul 2010 18:49:43 -0400
parents 9e250c145c38
children c5e555e064d0
line wrap: on
line source

#!/bin/sh

cat >> $HGRCPATH <<EOF
[alias]
myinit = init
cleanstatus = status -c
unknown = bargle
ambiguous = s
recursive = recursive
nodefinition =
mylog = log
lognull = log -r null
shortlog = log --template '{rev} {node|short} | {date|isodate}\n'
dln = lognull --debug
nousage = rollback
put = export -r 0 -o "\$FOO/%R.diff"
echo = !echo

[defaults]
mylog = -q
lognull = -q
log = -v
EOF

echo '% basic'
hg myinit alias

echo '% unknown'
hg unknown
hg help unknown

echo '% ambiguous'
hg ambiguous
hg help ambiguous

echo '% recursive'
hg recursive
hg help recursive

echo '% no definition'
hg nodef
hg help nodef

cd alias

echo '% no usage'
hg nousage

echo foo > foo
hg ci -Amfoo

echo '% with opts'
hg cleanst

echo '% with opts and whitespace'
hg shortlog

echo '% interaction with defaults'
hg mylog
hg lognull

echo '% properly recursive'
hg dln

echo '% path expanding'
FOO=`pwd` hg put
cat 0.diff

echo '% shell aliases'
hg echo foo