Mercurial 1.5 пейджер на Windows - PullRequest
2 голосов
/ 04 марта 2010

Я пытаюсь установить пейджер, используемый для 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

UPDATE

В pager.py, заменив:

sys.stderr = sys.stdout = util.popen(p, "wb")

с

sys.stderr = sys.stdout = subprocess.Popen(p, stdin = subprocess.PIPE, shell=False).stdin

Мне удалось получить желаемый вывод для статуса hg и diff.

НО, я уверен, что это неправильно (или, по крайней мере, не полностью), и я не могу контролировать приложение пейджера (less.exe): вывод отображается в окне cmd.exe, я вижу менее быстрое (:) но любой дальнейший ввод подается в cmd.exe. Кажется, что приложение пейджера все еще активно в фоновом режиме: после ввода exit в окне cmd.exe я могу контролировать приложение пейджера, и я могу прекратить это как обычно.

Кроме того, не имеет значения, что я выбираю в качестве пейджерного приложения (больше ведет себя так же).

ОБНОВЛЕНИЕ 2

Issue1677 - Пейджер [PATCH] для вывода «hg help» в windows

Ответы [ 2 ]

0 голосов
/ 21 мая 2010

Я изменил расширение пейджера, чтобы использовать временный файл для хранения вывода команд, результирующее расширение можно найти в CodePlex и Bitbucket .

0 голосов
/ 04 марта 2010

Вы включили расширение на пейджер в файле ~/.hgrc или mercurial.ini?

  [extensions]
  pager =

Он поставляется с вашей установкой Mercurial, но вам все равно нужно его включить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...