Mercurial не отправляет электронные письма с помощью changenotify

StackOverflow https://stackoverflow.com/questions/7368018

Вопрос

Я создал центральный 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 вашего репозитория есть такой раздел, как:

Genracodicetagpre

Когда я нажимаю на него, мой домашний каталог удаляется. Это меня сожжёт. Чтобы этого не произошло, Mercurial будет загружать / запускать только те файлы hgrc, которым он доверяет, а вы сообщаете ему, чему доверять, с помощью разделов [trusted] в вашем hgrc. Когда вы нажимаете ssh, вы фактически входите на удаленный компьютер, и это ваш собственный кодовый код, который, вероятно, указывает, какие другие файлы hgrc вы хотите выполнить.

HTTP - это особенность. Даже если вы выполняете аутентификацию, вы, вероятно, не запускаете Mercurial в удаленной системе от имени себя. Скорее всего, это какой-то непользовательский пользователь, например www-data , www , apache или noone , в зависимости от того, как ваш веб-сервер настроен, поэтому ... вам необходимо создать файл ~/.hgrcchwown.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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top