Хук Mercurial из группы изменений передается неправильно HG_URL - PullRequest
0 голосов
/ 22 января 2011

Я установил простой хук группы изменений для своих репозиториев Mercurial, чтобы отправлять по электронной почте набор изменений заинтересованным пользователям. Я хотел бы использовать один скрипт для каждого репозитория, которым я управляю, и я также хотел бы определить репозиторий, из которого пришла группа изменений. Согласно документации Mercurial Hooks , переменная окружения HG_URL доступна для этой цели. Однако я не получаю то, что ожидаю от этой переменной:

ожидается:

https://repo01/hg/project

фактический:

remote:https::rnideffer

Почему это URL, и как мне получить то, что я ожидал, в хуке группы изменений?

1 Ответ

1 голос
/ 22 января 2011

Хук changegroup не всегда может сказать, какой удаленный URL используется.Из главы Hooks в Mercurial Book :

Когда это возможно, Mercurial сообщит ловушке местоположение «дальней стороны» действия, которое передает данные набора изменений между хранилищами.Это обеспечивается Mercurial в параметре Python с именем url или переменной среды с именем HG_URL.Нет комментариев

Эта информация не всегда известна.Если ловушка вызывается в репозитории, который обслуживается через http или ssh, Mercurial не может сказать, где находится удаленный репозиторий, но он может знать, откуда подключается клиент.В таких случаях URL-адрес принимает одну из следующих форм: Без комментариев

remote: ssh: 1.2.3.4 - удаленный ssh-клиент, по IP-адресу 1.2.3.4.Без комментариев

remote: http: 1.2.3.4 - удаленный http-клиент, по IP-адресу 1.2.3.4.Если клиент использует SSL, он будет иметь форму удаленного: https: 1.2.3.4.Без комментариев

Итак, вам говорят, что они проталкиваются через https с машины с именем rnideffer.

Рассматривали ли вы использование расширения уведомлений ?Он поставляется с Mercurial, делает в точности то, что вы описываете, и может быть снабжен префиксом URL, необходимым для преобразования имен репо в нужные вам URL.

...