如何(是否可能)创建运行多个命令的hg命令别名?

Jim*_*lla 30 mercurial

我想在我的hgrc文件中定义一个调用多个命令的Mercurial命令别名.例如,我想做类似以下的事情:

[alias]
giveup = revert --all --no-backup; purge
syncprod = fetch production; push production
Run Code Online (Sandbox Code Playgroud)

这将允许我调用hg syncprod并让它调用fetch然后推送.无法确定是否存在此功能.(我猜这意味着没有.)

Ry4*_*ase 30

使用shell别名样式,如下所示:

giveup = !$HG revert --all --no-backup ; $HG purge
Run Code Online (Sandbox Code Playgroud)

虽然,我个人只是为那些创建了一个bash别名,所以我可以hg完全跳过这个部分.

  • 有没有办法在Windows上执行此操作? (4认同)
  • 您可以从别名中调用powershell或cmd.例如,我在powershell中使用以下别名:`amend =!powershell -NoProfile -Command hg ci -m $(cat .hg\last-message.txt)` (3认同)

Kim*_*Kim 8

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

giveup = !hg revert --all --no-backup && hg purge
Run Code Online (Sandbox Code Playgroud)

或者,无论恢复是否成功,此版本都将执行清除:

giveup = !hg revert --all --no-backup & hg purge
Run Code Online (Sandbox Code Playgroud)

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

shebase = !hg shelve && hg rebase && hg unshelve
Run Code Online (Sandbox Code Playgroud)