Mercurial Editor: «abort: система не может найти указанный файл» - PullRequest
3 голосов
/ 16 марта 2010

У меня проблема с тем, чтобы Mercurial узнал мой редактор. У меня есть файл, c:\windows\notepad.exe и набрав «блокнот» в командной строке работает. Я могу зафиксировать, используя аргумент "-m", чтобы указать название коммита. Но простое «hg commit» вызывает ошибку.

Вызов "hg --traceback commit" вызывает:

Traceback (most recent call last):
  File "mercurial\dispatch.pyc", line 47, in _runcatch
  File "mercurial\dispatch.pyc", line 466, in _dispatch
  File "mercurial\dispatch.pyc", line 336, in runcommand
  File "mercurial\dispatch.pyc", line 517, in _runcommand
  File "mercurial\dispatch.pyc", line 471, in checkargs
  File "mercurial\dispatch.pyc", line 465, in <lambda>
  File "mercurial\util.pyc", line 401, in check
  File "mercurial\commands.pyc", line 708, in commit
  File "mercurial\cmdutil.pyc", line 1150, in commit
  File "mercurial\commands.pyc", line 706, in commitfunc
  File "mercurial\localrepo.pyc", line 836, in commit
  File "mercurial\cmdutil.pyc", line 1155, in commiteditor
  File "mercurial\cmdutil.pyc", line 1184, in commitforceeditor
  File "mercurial\ui.pyc", line 361, in edit
  File "mercurial\util.pyc", line 383, in system
  File "subprocess.pyc", line 470, in call
  File "subprocess.pyc", line 621, in __init__
  File "subprocess.pyc", line 830, in _execute_child
WindowsError: [Error 2] The system cannot find the file specified
abort: The system cannot find the file specified

Я попытался установить переменную среды HGEDITOR, установить "visual =" и "editor =" в файле Mercurial.ini. Я пробовал полный путь, а также только команду. Я также попытался скопировать файл notepad.exe как в текущую папку, так и в папку Mercurial.

В идеале я хотел бы использовать редактор в этом месте "C:\PortableApps\Notepad++Portable\Notepad++Portable.exe", но на этом этапе я был бы рад любому редактору!

Вывод HG debugconfig:

c:\wamp\www\SiteAB.com\web>hg debugconfig
bundle.mainreporoot=c:\wamp\www\SiteAB.com\web
ui.username=killroy
ui.shell=true
ui.verbose=true
ui.visual="C:\PortableApps\Notepad++Portable\Notepad++Portable.exe"
ui.editor="C:\PortableApps\Notepad++Portable\Notepad++Portable.exe"

Ответы [ 2 ]

5 голосов
/ 23 июня 2010

То, что editor = notepad не сработало, говорит о том, что что-то не так с вашей средой. Поскольку запуск блокнота из командной строки работает, мне интересно, возможно, проблема в установке Python. Ваша обратная трассировка заставляет меня думать, что вы используете hg 1.5, которая была текущей, когда вы отправляли. Хотя я не верю, что это должно иметь значение, обновление до 1.5.4 не помешает.

Вы используете Notepad ++ Portable со своего диска C :. Обычно устанавливаются PortableApps на съемный диск. Вы уверены, что HG должен смотреть на C:? Я понимаю, что иногда непривилегированным пользователям может быть удобно устанавливать их локально. Notepad ++ Portable не будет особенно хорошо играть с hg. Вам нужно будет полностью закрыть npp и порождать его из hg, иначе фиксация не будет работать. Если вы можете, я бы попробовал вместо этого запустить полную версию Notepad ++ . Вот что я использую:

* +1007 *

-multiInst говорит npp открыть новый экземпляр только для hg. Таким образом, он не будет мешать любым окнам npp, которые у вас уже открыты. Это не работает с версией PortableApps.
-nosession говорит npp не открывать ранее открытые файлы, что ускоряет время запуска и уменьшает беспорядок. Когда я пишу сообщение коммита, я хочу сосредоточиться на своем сообщении и не отвлекаться на кучу не связанных вкладок.

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

Когда вы устанавливаете editor = в файле Mercurial.ini, вы делаете это в разделе [ui], верно?

После этого, возможно, выведите hg debugconfig?

...