TortoiseHg控制台窗口如何实现输出排序及管道命令过滤?
TortoiseHg内置控制台管道命令使用方法
问题原因
TortoiseHg自带的Console窗口默认不会调用系统Shell解析输入内容,只会把输入的文本直接作为Mercurial命令参数解析,因此无法直接识别|管道符、>/<重定向符这类Shell语法,输入的带管道的命令会被整体传给hg进程,自然无法实现输出过滤、排序的效果。
可用方案
- 单次执行带管道的命令时,显式调用系统Shell解析整条语句
Windows环境下在命令前添加cmd /c前缀即可,示例:
如果需要使用grep等类Unix命令,对应调用你安装的兼容Shell即可,比如使用Git Bash环境时写法为:cmd /c hg branches | findstr /I inactive
注意带管道的完整命令需要放在引号内传递给bash -c "hg branches | grep -i inactive"-c参数。 - 一劳永逸修改默认控制台Shell
打开TortoiseHg设置页,找到控制台配置项,将默认命令解析程序从内置的hg直连模式改为系统cmd.exe或者你常用的Bash环境。修改后内置控制台的命令用法和外部系统终端完全一致,可直接使用管道、重定向语法,同时GUI操作触发的所有hg命令依然会按时间顺序统一展示在控制台日志中,不影响原有使用体验。
内容的提问来源于stack exchange,提问作者Russ Thils
相关产品推荐
相关产品推荐

