2011-12-21 1 views
1

GoDaddy 공유 호스팅 계정에 Mercurial을 설치했는데 모두 정상적으로 작동하는 것 같습니다. 내 로컬 컴퓨터에 복제 할 수 있으며 심지어 밀어 넣을 준비가되었을 때 hg outgoing으로 올바른 대답을 얻을 수 있습니다.GoDaddy 푸시의 Mercurial (hg)가 원격지에서 살해 됨

그러나 실제로 내가 hg push (SSH를 초과 함)을 수행하면 몇 분 동안 "변경 사항 검색 중"에서 멈추어 remote: killed!으로 사망합니다.

로컬 또는 리모컨에서 Mercurial과 관련된 다른 문제가 없습니다.

어떤 문제가 발생했는지, 더 많은 정보를 얻는 방법에 대해 알고 싶습니다.

+0

GoDaddy에는 프로세스 또는 무언가에 대한 CPU 제한이 있습니까? 좀 더 많은 단서를 얻기 위해 --verbose와 --debug를 실행 해 보았습니까? –

+0

폴 (Paul), 프로세스가 제한되는지는 잘 모르겠습니다. 어떻게 알게 될지 모르겠습니다. 'hg --verbose push '를 실행하면 "3 changesets found"라는 추가 정보를 얻을 수 있지만 "remote : killed!" 다시. –

+0

'hg --debug push '를 시도했을 때 "bundling : _filename_"항목이 길어지고 "broken pipe"다음에 "remote : killed!"라는 메시지가 표시됩니다. 어쩌면 변경 집합이 연결에 너무 큽니까? –

답변

3

나는 조금 검색 및 GoDaddy와의 프로세스가 20 CPU 초를 소비 한 후 사망했다 방법을 설명합니다 2007 년부터 a blog post을 발견했다. Mercurial이 remote: killed!이라고 말하면 보통 정확히 말하면 원격 프로세스가 예기치 않게 종료되었습니다.

FTP를 사용하여 파일을 업로드하고 서버에서 커밋 한 것을 확인했지만 더 좋은 방법이 있습니다. Mercurial bundle을 사용하십시오. 이러한 "번들"은 일반적으로 푸시 또는 풀 작업에서 Mercurial이 네트워크를 통해 보내는 내용을 포함하는 압축 파일입니다.

그래서 당신은 당신의 로컬 저장소에

[email protected]$ hg bundle outgoing.hg 

을 실행할 수 있으며, 의욕은 outgoing.hg에 보내는 변경 집합을 저장합니다. 그런 다음 FTP 또는 다른 방법을 사용하여이 파일을 서버에 업로드 할 수 있습니다. 서버에있는 경우 변경 세트를 저장소에서 리포지토리로 가져 오려면

[email protected]$ hg pull outgoing.hg 

을 사용할 수 있습니다.

FTP를 통한 장점은 원하는만큼 많은 변경 집합을 업로드 할 수 있다는 것입니다. 번들은 변경 집합에 대한 모든 메타 데이터를 보유합니다 (날짜 및 메시지 작성자, 작성자, 정보 병합 ...).) 그래서 번들을 업로드하고 적용하면 히스토리를 정확하게 전송할 수 있습니다.

+0

와우, 멋지다. 고맙습니다! hg 번들에 대해 들어 보지 못했습니다. 내 문제는 훨씬 작은 changesets에서 다루고 있지만 이제는 해결 될 것 같습니다. 그러나 나중에 유용 할 것입니다. –

0

완전히 다른 메커니즘 인 http (s) : // 또는 ssh : // URL을 사용하고 있다고 말하지 않습니다. 나는 당신이 http (s) : //를 사용하고 있다고 가정하고 대답하고 있지만 그렇지 않다면 ssh : // :

기본적으로 push하려면 ssl이 필요합니다. 당신은 SSL이 호스팅 계정에 구성되어 있지 않은 경우에 해당 요구 사항을 완화 구성 옵션을 사용하여 서버를 실행해야합니다 : 또한

[web] 
push_ssl = False 

을 기본 hgweb에 의해 사람에서 푸시를 허용하지 않습니다. 당신이 인증 설정하지 않은 경우에는 같은 항목이 필요합니다 :

[web] 
allow_push = * 

을하고 사용 인증 당신은 같은 것을해야 설정이있는 경우 : 그 갈

[web] 
allow_push = you,me,them 

당신의 hgweb.conf 또는 hogrc에서 repo 또는 서버를 실행하는 사용자 (아파치 또는 wwwuser 또는 사용자 대신에 없음).

더 많은 관련 설정은 여기에서 찾을 수 있습니다 :

http://www.selenic.com/mercurial/hgrc.5.html

+0

그는 ssh를 통해 행해졌다고 지정했습니다.'ssh over ssh' – zerkms

+0

예, 이것은 ssh를 넘어서서, 그 답을 제공해 줄 수 있습니까? 고맙습니다. –

+0

왜 그것이 downvoted 이유는 모르겠지만, Ry4an은 여기에 가장 유능한 수은 답변자 중 하나입니다. +1, – zerkms

관련 문제