Mercurial не отправляет электронные письма с помощью changenotify
-
28-10-2019 - |
Вопрос
Я создал центральный http-репозиторий Mercurial и стараюсь отправлять электронные письма при каждом нажатии. Я следую инструкциям на странице меркурия и http://morecode.wordpress.com/2007/08/03/setting-up-mercurial-to-e-mail-on-a-commit/ .
Push работает нормально, но я не вижу никаких уведомлений. Пожалуйста, помогите мне.
Мой .hg / hgrc в моей папке репозитория моего клиента выглядит так
GenracodicetagpreМой /home/myhome/something/subscription.conf выглядит как
GenracodicetagpreЯ сохраняю, и мой результат выглядит, как показано ниже. Если вы заметили, что я вообще не вижу никаких уведомлений
Genracodicetagpre[Обновление:]
Я обнаружил, что в моей системе нет папки hgext. Поэтому я вручную загрузил источник, соответствующий моей версии hg, и обновил свой hgrc, как показано ниже, но он все равно не работает. Любая помощь, пожалуйста.
Genracodicetagpre[Обновление 2:]
Спасибо, Ry4an - я попробовал, все равно не повезло.
На моем веб-сервере
В разделах / var / www и / var / www / hg Я создал файлы .hgrc, просто не зная, какой из них является моим корневым каталогом, поэтому я сделал в обоих местах с содержимым
Genracodicetagpreэто имя пользователя - это имя пользователя в моем клиенте, откуда я пытаюсь отправить репо.
на моем клиенте
в .hg / hgrc моего репо я добавил доверенный раздел
GenracodicetagpreОписанная выше процедура не помогла
Второй подход
на моем клиенте
под моим репо .hg, я сделал
Genracodicetagpreи когда я попытался нажать, я получил какое-то сообщение, когда нажимал, говоря
GenracodicetagpreЭта команда игнорирования не появляется при первом подходе, она появляется только после того, как я меняю владельца hgrc.
Решение
Скорее всего, это проблема с доверием, но давайте сначала коснемся нескольких вещей:
A) Переключите нагрузку расширения на:
Genracodicetagpre Часть hgext больше не нужна, но не повредит. Предоставление полного пути к расширению более уязвимо в случае будущих обновлений. Необработанного синтаксиса notify=
достаточно для расширений, которые поставляются с Mercurial, а notify всегда поддерживает.
Б) Измените код test = false
на test = true
, это поможет вам отладить это - он отправляет электронное письмо в Stdout, что очень удобно.
Хорошо, эти двое готовы, давайте посмотрим на доверие. Система доверия Mercurial построена на идее, что не каждый должен иметь возможность заставить вас запускать код. Представьте, что в файле .hg/hgrc
вашего репозитория есть такой раздел, как:
Когда я нажимаю на него, мой домашний каталог удаляется. Это меня сожжёт. Чтобы этого не произошло, Mercurial будет загружать / запускать только те файлы hgrc, которым он доверяет, а вы сообщаете ему, чему доверять, с помощью разделов [trusted]
в вашем hgrc. Когда вы нажимаете ssh, вы фактически входите на удаленный компьютер, и это ваш собственный кодовый код, который, вероятно, указывает, какие другие файлы hgrc вы хотите выполнить.
HTTP - это особенность. Даже если вы выполняете аутентификацию, вы, вероятно, не запускаете Mercurial в удаленной системе от имени себя. Скорее всего, это какой-то непользовательский пользователь, например www-data , www , apache или noone , в зависимости от того, как ваш веб-сервер настроен, поэтому ... вам необходимо создать файл ~/.hgrc
chwown.hg/hgrc' owned (or group-owned) by an user (or group) that the webserver user trusts. To achieve that you can either
.hg / hgrcthe
/ var / wwwfile over to the web server user, or find the web server's home directory (often
.hgrc) and create a
для этого репозитория.
Если я прав в том, что происходит, то контрольный знак будет в журнале ошибок вашего веб-сервера, где вы увидите много сообщений вроде "Не доверяю /path/to/repo/.hg/hgrc, принадлежащему некоторому пользователю. ".
TL; DR: Убедитесь, что пользователь вашего веб-сервера доверяет (в смысле hgrc) владельцу кода file in there with a
, указывающего ловушку.
Другие советы
У меня это сработало при общении с сервером Exchange:
родовое словоПоместите указанное выше в файл hgrc в вашем репозитории.
напримерC: \ репозитории \ test.hg \ hgrc