Windows上的Mercurial 1.5分页

时间:2010-03-04 10:46:03

标签: mercurial

我正在尝试设置用于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

Issue1677 - [PATCH] pager for "hg help" output on windows

2 个答案:

答案 0 :(得分:0)

您是否在~/.hgrcmercurial.ini文件中启用了pager extension

  [extensions]
  pager =

这是你的mercurial安装,但你仍然需要启用它。

答案 1 :(得分:0)

我修改了寻呼机扩展程序以使用临时文件存储命令输出,可以在CodePlexBitbucket找到生成的扩展名。