2011-02-23 99 views
27

我想在我的hgrc文件中定义一个调用多个命令的Mercurial命令别名。例如,我想这样做如下:如何(有可能)创建运行多个命令的hg命令别名?

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

这将允许我这样称呼hg syncprod,并让它调用获取,然后一推。无法确定此功能是否存在。 (我猜这意味着没有。)

回答

28

使用的shell别名风格是这样的:

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

虽然,我个人只希望为那些一个bash别名,这样我就可以完全跳过hg部分。

+3

有没有办法在Windows上做到这一点? – 2011-02-24 03:17:22

+1

在cygwin下,我怀疑同样会起作用,但除此之外,也许你最好写一个giveup.bat(或cmd或其他powershell使用的)。 – 2011-02-24 05:01:08

+3

您可以从别名中调用powershell或cmd。例如。我在PowerShell中使用以下别名: 'revised =!powershell -NoProfile -Command hg ci -m $(cat .hg \ last-message.txt)' – 2012-04-07 23:11:34

7

我无法对之前的回答发表评论,但对于希望在Windows上执行此操作的其他人,以下语法适用于我,无需使用PowerShell或cygwin。

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

另外,这个版本将会进行净化无论复归是否成功:

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

它可以串在一起的两个以上的命令,例如:

shebase = !hg shelve && hg rebase && hg unshelve