Mercurial > hg
view contrib/sample.hgrc @ 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 | 5f01fd602542 |
children | 216d3d85372b |
line wrap: on
line source
### --- User interface [ui] ### show changed files and be a bit more verbose if True # verbose = True ### username data to appear in comits ### it usually takes the form: Joe User <joe.user@host.com> # username = Joe User <j.user@example.com> ### --- Extensions [extensions] ### each extension has its own 'extension_name=path' line ### the default python library path is used when path is left blank ### the hgext dir is used when 'hgext.extension_name=' is written ### acl - Access control lists ### hg help acl # hgext.acl = ### bisect - binary search changesets to detect bugs ### hg help bisect # hgext.hbisect = ### bugzilla - update bugzilla bugs when changesets mention them ### hg help bugzilla # hgext.bugzilla = ### extdiff - Use external diff application instead of builtin one # hgext.extdiff = ### gpg - GPG checks and signing ### hg help gpg # hgext.gpg = ### graphlog - ASCII graph log ### hg help glog # hgext.graphlog = ### hgk - GUI repository browser ### hg help view # hgext.hgk = ### mq - Mercurial patch queues ### hg help mq # hgext.mq = ### notify - Template driven e-mail notifications ### hg help notify # hgext.notify = ### patchbomb - send changesets as a series of patch emails ### hg help email # hgext.patchbomb = ### churn - create a graph showing who changed the most lines ### hg help churn # hgext.churn = /home/user/hg/hg/contrib/churn.py ### eol - automatic management of line endings # hgext.eol = ### --- hgk additional configuration [hgk] ### set executable path # path = /home/user/hg/hg/contrib/hgk ### --- Hook to Mercurial actions - See hgrc man page for avaliable hooks [hooks] ### Example notify hooks (load hgext.notify extension before use) # incoming.notify = python:hgext.notify.hook # changegroup.notify = python:hgext.notify.hook ### Email configuration for the notify and patchbomb extensions [email] ### Your email address # from = user@example.com ### Method to send email - smtp or /usr/sbin/sendmail or other program name # method = smtp ### smtp server to send email to [smtp] # host = mail # port = 25 # tls = false # username = user # password = blivet # local_hostname = myhost ### --- Email notification hook for server [notify] ### multiple sources can be specified as a whitespace or comma separated list # sources = serve push pull bundle ### set this to False when you're ready for mail to start sending # test = True ### path to config file with names of subscribers # config = /path/to/subscription/file