2013-05-18 1 views
1

Windows XP에 TortoiseHg가 설치되어 있습니다. 대부분 hg 명령을 명령 줄에서 사용할 수 있지만 내 편집기를 시작하지 못하기 때문에 hg commit (-m 옵션없이)을 사용할 수 없습니다. 나 자신은 명령 줄에서 심지어 notepad.exe하거나 notepad를 입력하면 [UI] 에디터 = notepad.exe를Windows에서의 Mercurial에서 어떻게 (모든) 편집기를 올바르게 설정합니까? (커밋 안함)

:

> hg commit 
/c: /c: is a directory 
abort: edit failed: notepad.exe exited with status 126 
mercurial.ini에서

나는 편집기로 설정 :이 일어나는 것이다 다음 메모장 잘 작동합니다. 편집기 변수를 다른 변수 (예 : foobar)로 변경하면 Mercurial이 변수를 읽고 동일한 결과 (foobar exited with status 126)로 foobar을 실행하려고 시도하는 것으로 확인됩니다.

또한 TortoiseHg GUI의 일부를 사용하는 데 문제가 있습니다. "수정시보기"와 같은 컨텍스트 메뉴 옵션은 클릭 할 때 작동하지 않습니다. 아마도 그들은 편집장을 시작하려하지만 실패하고있는 것 같습니다.

이 문제는 Mercurial을 사용하는 데 약 2 년 반 동안 지속되었으며, 나는 편집기 변수를 다른 방식으로 설정하거나 다른 프로그램으로 설정하려고 생각한 모든 것을 시도했습니다. 현재 TortoiseHg 버전 2.8 ("Mercurial-2.6, Python-2.7.3, PyQt-4.9.6, Qt-4.8.4"사용).

관련 질문 :
Using other editor with TortoiseHg
How do I specify a different editor for Mercurial on Windows?
Mercurial Editor: "abort: The system cannot find the file specified"

답변

0

는 얼마 드디어 문제를 실현하기 전에이 질문을했다. Mercurial 및 TortoiseHg는 명령 인터프리터에 내 Editor 변수의 값을 실행하며이 해석기는 COMSPEC 환경 변수에 의해 지정되는 중 하나입니다.

분명히 내 인생에서 나는이 변수를 msys 쉘 C:\msys\bin\sh.exe으로 설정했다. (아마도 내가 묻는 질문과 다르지 않은 문제를 해결하려고 시도했을 뻔했을 것이다.) 재미있는 오류는 msys 셸이 /c notepad.exe 같은 것을 인수로 보내 졌기 때문에 발생했습니다.

Mercurial에서도 COMSPEC을 사용하기로 결정한 경우 /c 스위치가 전달되는 이유는 알 수 없습니다 (cmd.exe). 또한, TortoiseHg에서 설정을 편집 할 때, 나는 약간의 오해의 여지가있다. 나의 수은 설정 파일에있는 Shell 값이 지정되지 않은 채로 남아 있다면, 윈도우에서 기본값은 cmd.exe이 될 것이다. Shell의이 값은 'Open Terminal'컨텍스트 메뉴와 같은 다른 용도로 사용됩니다.

관련 문제