我正在尝试设置用于Mercurial的寻呼机,但输出为空,即使我在[pager]
部分或PAGER
环境变量中指定了命令。
我注意到提供的命令是使用cmd.exe
启动的。这是空输出的原因,如果是,那么正确的语法是什么?
环境:Mercurial 1.5,Mercurial 1.4.3
hgrc:
[extensions]
pager =
[pager]
pager = d:\tools\less\less.exe
示例命令行(来自Process Explorer):
hg diff
c:\windows\system32\cmd.exe /c "d:\tools\less\less.exe 2> NUL:"
d:\tools\less\less.exe
更新
在pager.py中,替换:
sys.stderr = sys.stdout = util.popen(p, "wb")
与
sys.stderr = sys.stdout = subprocess.Popen(p, stdin = subprocess.PIPE, shell=False).stdin
我设法获得了hg状态和差异所需的输出。
但是,我确定它是错误的(或者至少是不完整的),而且我无法控制寻呼机应用程序(less.exe):输出显示在cmd.exe窗口中,我可以看到较少的提示(:)但任何进一步的输入都输入cmd.exe。看起来寻呼机应用程序在后台仍处于活动状态:在cmd.exe窗口中输入exit后,我可以控制寻呼机应用程序, 我可以正常终止它。
此外,我选择的寻呼机应用程序没有任何区别(更多的是表现相同)。
更新2
答案 0 :(得分:0)
答案 1 :(得分:0)