2011-02-23 78 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