Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How (is it possible) to create an hg command alias that runs multiple commands?

Tags:

mercurial

I would like to define a Mercurial command alias in my hgrc file that invokes multiple commands. For example I would like to do something like the following:

[alias]
giveup = revert --all --no-backup; purge
syncprod = fetch production; push production

This would allow me to call hg syncprod and have it invoke a fetch and then a push. Haven't been able to determine if this capability exists. (I'm guessing that means no.)

like image 785
Jim Bolla Avatar asked Feb 23 '11 22:02

Jim Bolla


2 Answers

Use the shell alias style like this:

giveup = !$HG revert --all --no-backup ; $HG purge

Though, personally I'd just create a bash alias for those so I could skip the hg part altogether.

like image 60
Ry4an Brase Avatar answered Nov 12 '22 00:11

Ry4an Brase


I'm unable to comment on the previous answer, but for anyone else looking to do this on Windows, the following syntax worked for me, without having to use PowerShell or cygwin.

giveup = !hg revert --all --no-backup && hg purge

Alternatively, this version will execute the purge regardless of whether the revert was successful:

giveup = !hg revert --all --no-backup & hg purge

It is possible to string together more than two commands, for instance:

shebase = !hg shelve && hg rebase && hg unshelve
like image 32
Kim Avatar answered Nov 11 '22 22:11

Kim