2013-04-06 5 views
0

서버의 중앙 저장소에 mercural-server를 사용하고 있으며 Windows 개발자는 TortoiseHg를 클라이언트로 사용합니다. 개발자 중 한 명은 저장소를 복제 할 수 없습니다. hg 응답은 "abort :"와 함께 메시지없이 수행합니다.hg 클론을 수행하는 중에 메시지가 표시되지 않고 중단됩니다.

SSH 인증이 성공적으로 통과되었습니다. 다른 컴퓨터에서 동일한 키를 사용하면 OK이며 저장소를 복제하고 변경할 수 있습니다. 내가 그 개발자의 컴퓨터에 HG --traceback 복제 < ...>을 실행하면

내가 얻을 :

Traceback (most recent call last): 
File "mercurial\dispatch.pyo", line 88, in _runcatch 
File "mercurial\dispatch.pyo", line 743, in _dispatch 
File "mercurial\dispatch.pyo", line 514, in runcommand 
File "mercurial\dispatch.pyo", line 833, in _runcommand 
File "mercurial\dispatch.pyo", line 804, in checkargs 
File "mercurial\dispatch.pyo", line 740, in <lambda> 
File "mercurial\util.pyo", line 475, in check 
File "mercurial\commands.pyo", line 1234, in clone 
File "mercurial\hg.pyo", line 267, in clone 
File "mercurial\hg.pyo", line 121, in peer 
File "mercurial\hg.pyo", line 101, in _peerorrepo 
File "mercurial\sshpeer.pyo", line 59, in __init__ 
File "mercurial\sshpeer.pyo", line 73, in validate_repo 
File "mercurial\util.pyo", line 137, in popen3 
File "subprocess.pyo", line 679, in __init__ 
File "subprocess.pyo", line 896, in _execute_child 
WindowsError: [Error 2] 
abort: 

대상 폴더에 쓸 수 있습니다. TortoiseHg (TortoiseHg 2.7.1 (Mercurial 2.5.2 포함))의 동일한 버전이 다른 Windows 컴퓨터 및 같은 저장소에서 제대로 작동하므로 문제의 원인이 될 수 있는지조차 알지 못합니다.

답변

1

이 경우 소스 - hg clone https://www.mercurial-scm.org/repo/hg으로 가야합니다. sshpeer.py 줄 73과 그 주변의 컨텍스트를 살펴보면 ssh 호출을 실행할 때 오류가 발생하는 것 같습니다.

가장 큰 원인은 다음과 같습니다

  1. 개발자는 어딘가 hgrc에 엉망 업 ui.ssh 항목이 있습니다. 개발자는 적절한 ssh를 바이너리를 사용할 필요없이 ui.ssh 섹션을 지정했을 수 있습니다

    [ui] 
    ssh = ssh -C 
    
  2. :

    [ui] 
    ssh = "ssh -C" 
    

    대신 :처럼 아마도 그들은이 지정했습니다. 기본적으로 TortoiseHg는 PuTTY (바이너리를 설치)를 사용하지만, 다른 것을 사용한다고하면 Mercurial이 준수합니다.

위의 경우 ssh 명령을 표시 할을 수정 수은 소스를 복제, 도움이되지 않습니다 (sshpeer ~ 라인 73)을 확인하고 복제하려고 한 후, 순수 모드로 설치합니다. 이것은 정확히 무엇이 호출되는지 알려줄 것입니다.

hg clone https://www.mercurial-scm.org/repo/hg 
cd hg 
<path\to\python>\python setup.py --pure install 
cd <other directory> 
<path\to\python>\Scripts\hg.bat clone <repo> 

또한, 적절한 bug tracker에서 버그 리포트를 제기하시기 바랍니다.

+0

이것이 얼마나 도움이되는지는 모르지만 실제로는 파이썬이 하위 프로세스를 만들려고 할 때 예외가 발생합니다. Windows에서 오류 2는 "파일을 찾을 수 없음"입니다. 이것은 당신이 옳았다는 것을 암시합니다 - ssh 바이너리는 존재하지 않습니다. – icabod

+0

답변 해 주셔서 감사합니다. 적어도 문제의 원인을 알고 있습니다. 나는 이것을 대답으로 표시하지만 개발자 컴퓨터에 액세스하자 마자 확인해 보겠습니다. 그것은 tortoiseg의 잘못이 있다면, 나는 그들의 버그 추적기에 버그를 열 것입니다 –