如何将 bash 脚本直接嵌入到 Mercurial 别名中
How to embed bash script directly inside a Mercurial alias
我有一个 Mercurial 别名,可以将指定的分支推送到中央仓库:
[alias]
pushbranch = push -b
这工作正常,但 90% 的时间我想推送当前分支,我目前是这样做的:
$ hg pushbranch `hg branch`
虽然我可以像这样更新 .hgrc
中的别名:
[alias]
pushbranch = push -b `hg branch`
但这失败了:
pushing to branch`
abort: unknown branch '`hg'!
我发现 this answer 本质上是用 Git 做的,但那里使用的机制也不适用于 Mercurial,我做到了:
[alias]
pushbranch = push -b '!sh hg branch'
并得到:
pushing to ssh://hg@bitbucket.org/myteam/reponame
abort: unknown branch '!hg branch'!
有什么建议吗?
在 Mercurial 中,别名必须以感叹号开头才能调用 shell。在这样的别名中,$HG
可用于调用 Mercurial。例如:
[alias]
pushbranch = !$HG push -b `$HG branch`
我有一个 Mercurial 别名,可以将指定的分支推送到中央仓库:
[alias]
pushbranch = push -b
这工作正常,但 90% 的时间我想推送当前分支,我目前是这样做的:
$ hg pushbranch `hg branch`
虽然我可以像这样更新 .hgrc
中的别名:
[alias]
pushbranch = push -b `hg branch`
但这失败了:
pushing to branch`
abort: unknown branch '`hg'!
我发现 this answer 本质上是用 Git 做的,但那里使用的机制也不适用于 Mercurial,我做到了:
[alias]
pushbranch = push -b '!sh hg branch'
并得到:
pushing to ssh://hg@bitbucket.org/myteam/reponame
abort: unknown branch '!hg branch'!
有什么建议吗?
在 Mercurial 中,别名必须以感叹号开头才能调用 shell。在这样的别名中,$HG
可用于调用 Mercurial。例如:
[alias]
pushbranch = !$HG push -b `$HG branch`