2013-06-04 12 views
0

훅 나가는 MQ에 중단하지만, 다음과 같은 오류 제공 :HG 내가 <code>hg pull -u</code>을 실행하기 위해 노력하고있어

: 내 .hgrc이 훅을, 내가 문제를 일으키는 같은데요되는 포함

searching for changes 
/bin/sh: !: not found 
abort: preoutgoing.mq-no-push hook exited with status 1 

을 내가 기대하고 어느 로컬 또는 원격 저장소 (hg qappliedhg qseries 반환 아무것도)에는 MQ 패치가 없기 때문에

preoutgoing.mq-no-push = ! hg qtop > /dev/null 2>&1 

hg incoming 나에게 변화의 목록을 제공합니다.

쉬운 수정

내 .hgrc 파일의이 부분을 주석했다. 그런 다음 가져올 수는 있지만 병합시 저장소에 여러 헤드가 있다는 것을 발견했습니다. 오류의 원인은 무엇입니까? 그렇다면보다 정확한 오류 메시지가 좋을 것입니다. 그렇지 않은 경우 누구에게 더 나은 해결 방법이 있습니까?

답변

0

그것은 내 /bin/sh 다르게 !을 정의하는 JSH 것으로 밝혀졌습니다.

prechangegroup.mq-no-pull = bash -c "! hg qtop > /dev/null 2>&1" 
preoutgoing.mq-no-push = bash -c "! hg qtop > /dev/null 2>&1" 
0

오류 메시지가 정확합니다. 문제는 mq-no-push 후크 후크가 무엇인지 모르는 1. Mercuial의 상태로 종료 그래서 당신에게 그것의 반환 코드 이외의 아무것도 말할 수 없다는 것입니다. 푸시 할 수없는 이유에 대해 의미있는 메시지를 제공하는 것은 후크 자체에 달려 있습니다. 당신이 중단 라인 전에 출력을 보면

, 당신은 문제가 쉘 /bin/sh 후크가 실제로 작동하지 않는 것을 의미하고 나 후크가 아니라고 생각하게 명령 !을 찾을 수 있다는 것을 알 수 있습니다 형식이 올바르게 지정되었습니다. 해결책이 무엇인지 알기 위해 Linux/Unix/MacOSX 셸에 대해 충분히 알지 못합니다. 나는 mq extension 페이지에서 보니 당신이 가지고있는 구성은 쉘에서 잘못 설정 뭔가가있는 경우 주어진 예제가 너무 궁금 동일합니다.

+0

내가 그 aswell을 궁금해 :이 해결하기 위해 나는 다음과 같이 명시 적으로 떠들썩한 파티를 호출하는 내 .hgrc 파일에 명령을 변경했습니다. '/ 빈/sh' 내가 괜찮을 것이라고 생각'/ sbin에/sh',에 대한 링크입니다하지만 지금은 좀 더 자세히 살펴 있음은 JSH 밝혀, 그리고'정의!'다르게. 올바른 경로에 나를 넣어 주셔서 감사합니다, 실제 해결 방법에 대한 아래 내 대답을 참조하십시오 – craq

관련 문제