【问题标题】:How (is it possible) to create an hg command alias that runs multiple commands?如何(有可能)创建一个运行多个命令的 hg 命令别名?
【发布时间】:2011-02-23 22:33:22
【问题描述】:

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

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

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

【问题讨论】:

    标签: mercurial


    【解决方案1】:

    像这样使用 shell 别名样式:

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

    不过,我个人只是为这些人创建一个 bash 别名,这样我就可以完全跳过 hg 部分。

    【讨论】:

    • 有没有办法在 Windows 上做到这一点?
    • 在 cygwin 下我怀疑同样会起作用,但否则你最好写一个 giveup.bat (或 cmd 或任何 powershell 使用)。
    • 可以通过别名调用powershell或cmd。例如。我在 powershell 中使用以下别名:amend = !powershell -NoProfile -Command hg ci -m $(cat .hg\last-message.txt)
    • cygwin 或(我的偏好)msys 使用 Mercurial。
    • 分叉很有用!我发现自己输入hg up -C && hg purge 的频率太高了。
    【解决方案2】:

    我无法对上一个答案发表评论,但对于希望在 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
    

    【讨论】:

      猜你喜欢
      • 2017-07-04
      • 1970-01-01
      • 2019-05-13
      • 2013-04-23
      • 1970-01-01
      • 2022-01-24
      • 2021-07-13
      • 2013-01-16
      • 1970-01-01
      相关资源
      最近更新 更多