我在让Mercurial认出我的编辑器时遇到了问题。我有一个文件,c:\windows\notepad.exe
并在命令提示符下输入“notepad”。我可以通过使用“-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"
答案 0 :(得分:5)
editor = notepad
不起作用表明您的环境有问题。由于从命令行运行记事本工作,我想知道你的python安装可能是问题。你的回溯让我觉得你正在运行hg 1.5,这是你发布时最新的。虽然我不相信它应该有所作为,但更新到1.5.4并不会有什么坏处。
您正在从C:驱动器运行Notepad ++ Portable。通常会将PortableApps安装到可移动驱动器上。你确定hg应该看看C:?我理解有时,对于没有特权的用户来说,在本地安装它们会很方便。 Notepad ++ Portable不会对hg起到特别好的作用。你需要让npp完全关闭并从hg中生成它,否则提交将无效。如果可以,我会尝试运行Notepad++的完整版本。这是我使用的:
[ui]
editor = "C:\Program Files\Notepad++\notepad++.exe" -multiInst -nosession
-multiInst
告诉npp只为hg打开一个新实例。这样它就不会干扰你已经打开的任何npp窗口。这不适用于PortableApps版本
-nosession
告诉npp不要打开以前打开的任何文件,加快启动时间并减少混乱。当我写一个提交消息时,我想专注于我的消息,而不是被一堆不相关的标签分散注意力。
答案 1 :(得分:0)
当您在Mercurial.ini文件中设置editor =
时,您是在[ui]
部分内进行的,对吗?
这样做之后可能会提供hg debugconfig
的输出?