2011-01-22 4 views
0

Mercurial 저장소가 관심있는 사용자에게 변경 사항을 이메일로 보내도록 간단한 변경 그룹 후크를 설정했습니다. 나는 내가 관리하는 모든 저장소에 대해 하나의 스크립트를 사용하고 싶다. 그리고 나는 또한 변경 그룹이 나온 저장소를 식별하고 싶다. Mercurial Hooks 설명서에 따르면 환경 변수 HG_URL을이 용도로 사용할 수 있습니다. 예상Mercurial 변경 그룹 후크가 잘못 전달되었습니다. HG_URL

:

https://repo01/hg/project 

실제 그러나, 나는이 변수에서 기대하고있는 무슨을 얻고 있지 않다

remote:https::rnideffer 

왜이 URL이고, 나는 어떻게받을 수 있나요 내가 changegroup 후크에 기대?

답변

1

changegroup 후크가 항상 사용중인 원격 URL을 말할 수있는 것은 아닙니다. Hooks chapter of the Mercurial Book에서 :

가능하면, 의욕이 후크를 변경 집합을 저장소 사이의 데이터 전송 활동의 "반대편"의 위치를 ​​알 것이다. 이것은 이며, Mercurial은 Python 매개 변수 url 또는 환경 변수 HG_URL을 제공합니다. 댓글이 없습니다

이 정보는 항상 알려진 것은 아닙니다. http 또는 ssh를 통해 제공되는 저장소 에서 후크가 호출 된 경우 Mercurial은 원격 저장소의 위치를 ​​알 수 없지만 클라이언트가 연결되어있는 곳이 인지 알 수 있습니다. 이러한 경우, URL은 다음 형식 중 하나를 수행하지 않습니다 :

원격 코멘트 : SSH : 1.2.3.4 - 원격 ssh 클라이언트, 을 IP 주소 1.2.3.4에서. No comments

원격 : http : 1.2.3.4 - 원격 http 클라이언트, IP 주소는 1.2.3.4입니다. 클라이언트가 SSL을 사용하는 경우 원격 : https : 1.2.3.4 형식의 이됩니다. 아니 덧글

그래서 그들은 rnideffer라는 컴퓨터에서 https를 통해 밀고 있다고 들었습니다.

notify extension을 사용해 보셨습니까? 그것은 수은과 함께 제공되며 당신이 묘사하고있는 것과 거의 동일합니다. 원하는 URL에 repo 이름을 바꾸기 위해 필요한 URL 접두사를 제공 할 수 있습니다.

+0

위대한 설명. 나는 PWD 환경 변수가 아파치에 의해 전달되고 디스크 요구 사항에 사용할 수있는 저장소의 절대 경로를 포함한다는 것을 발견했다. 나는 모든 변경 사항을 푸시하지 않고 모든 푸시 gropu에 대한 이메일을 원하기 때문에 알림 대신 변경 그룹 훅을 사용하고 있습니다. – purecharger

+0

NotifyExtension도 changegroups를 사용하지만 도움이 되니 기쁩니다. 그것은 'changegroup'과 'changeset'를 모두 지원합니다. 이 http://mercurial.selenic.com/wiki/NotifyExtension의 'hooks'섹션을 참조하십시오. –

관련 문제