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 الموجود في مجلد المستودع الخاص بعميلتي هكذا

[extensions]
hgext.notify= 

[hooks]
changegroup.notify = python:hgext.notify.hook

[email]
from = what@gmail.com

[smtp]
host = smtp.gmail.com
username = what@gmail.com
password = ohyea
port = 587
tls = true

[web]
baseurl = http://1.1.1.1/repo_name

[notify]
sources = serve push pull bundle

# set this to False when you're ready for mail to start sending
test = False

config = /home/myhome/something/subscription.conf

template = \ndetails:   {baseurl}{webroot}/rev/{node|short}\nchangeset:{rev}:node|short}\nuser:      {author}\ndate:      {date|date}\ndescription:\n{desc}\n

maxdiff = 300

يبدو أن /home/myhome/something/subscription.conf الخاص بي

[reposubs]
# key is glob pattern, value is comma-separated list of subscriber emails
* = sometestemail@gmail.com

قمت بالحفظ وتظهر النتيجة كما هو موضح أدناه، إذا لاحظت أنني لا أرى أي رسالة إعلام على الإطلاق

pushing to http://1.1.1.1/repo_name
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 2 changesets with 7376 changes to 7376 files

[تحديث:]

لقد وجدت أنه لا يوجد مجلد hgext في نظامي.لذلك قمت يدويًا بتنزيل المصدر المطابق لإصدار hg الخاص بي وقمت بتحديث hgrc الخاص بي على النحو التالي، وما زال لا يعمل.أي مساعدة من فضلك.

[extensions]
notify= /path/to/notify.py

[التحديث 2:]

شكرا Ry4an - لقد حاولت ذلك، ولكن لم يحالفني الحظ.

في خادم الويب الخاص بي

تحت/var/www و/var/www/hg قمت بإنشاء ملفات .hgrc ، فقط لست متأكدًا

[trusted]
users=user_name

اسم المستخدم هذا هو اسم المستخدم في عميلي حيث أحاول الدفع إلى الريبو.

على موكلي

في ملف .hg/hgrc في الريبو الخاص بي، أضفت قسمًا موثوقًا به

[trusted]
users=user_name

الإجراء أعلاه لم يساعد

النهج الثاني

على موكلي،

تحت الريبو الخاص بي .hg، فعلت ذلك

chown www-data:www-data hgrc

وعندما حاولت الدفع وصلتني رسالة أثناء الدفع تقول

sending capabilities command
capabilities: changegroupsubset stream lookup pushkey unbundle=HG10GZ,HG10BZ,HG10UN branchmap
sending heads command
searching for changes
common changesets up to 6ef19c49143a
sending branchmap command
ignoring untrusted configuration option hooks.changegroup.notify = python:hgext.notify.hook

لا يظهر أمر التجاهل هذا أثناء النهج الأول، إلا بعد أن أقوم بتغيير ملكية hgrc، ينبثق هذا.

هل كانت مفيدة؟

المحلول

من المحتمل أن تكون هذه مشكلة ثقة، ولكن دعونا نتطرق إلى بعض الأمور الأخرى أولاً:

أ) قم بتبديل حمل التمديد إلى:

[extensions]
notify=

لم يعد الجزء hgext ضروريًا، ولكنه لا يضر.يعد إعطاء المسار الكامل للامتداد أكثر هشاشة في حالة التحديثات المستقبلية.الخام notify= يعد بناء الجملة كافيًا للملحقات التي تأتي مع Mercurial ويتم الإشعار بذلك دائمًا.

ب) تبديل test = false ل test = true سيساعدك هذا على تصحيح هذا الأمر - فهو يرسل البريد الإلكتروني إلى Stdout، وهو أمر مفيد.

حسنًا، لقد انتهينا من هذين الأمرين، فلننظر إلى الثقة.تم بناء نظام الثقة الخاص بشركة Mercurial على فكرة أنه لا ينبغي لأي شخص أن يكون قادرًا على جعلك تقوم بتشغيل التعليمات البرمجية.تخيل لو كان الريبو الخاص بك .hg/hgrc يحتوي الملف على قسم فيه مثل:

[hooks]
pre-push = rm -rf ~

عندما دفعت إليه فإنه سيحذف الدليل الرئيسي الخاص بي.هذا من شأنه أن يزعجني.لتجنب حدوث ذلك، لن يقوم Mercurial إلا بتحميل/تشغيل ملفات hgrc التي يثق بها، وأنت تخبره بما يثق به [trusted] أقسام في لك hgrc.عندما تقوم بالضغط على ssh، فإنك تقوم بتسجيل الدخول بشكل فعال إلى الجهاز البعيد وهو خاص بك ~/.hgrc ربما يشير هذا إلى ملفات hgrc الأخرى التي ترغب في تنفيذها.

HTTP خاص بالرغم من ذلك.على الرغم من أنك قد تقوم بالمصادقة، فمن المحتمل أنك لا تقوم بتشغيل Mercurial على النظام البعيد مثلك.من المحتمل أن يكون هذا ما يحبه بعض المستخدمين غير المستخدمين شبكة الاتصالات العالمية البيانات, شبكة الاتصالات العالمية, أباتشي, ، أو لا احد اعتمادًا على كيفية تكوين خادم الويب الخاص بك، لذلك...تحتاج إلى إجراء هذا الريبو .hg/hgrc' owned (or group-owned) by an user (or group) that the webserver user trusts. To achieve that you can eitherchwownthe.hg/hgrcfile over to the web server user, or find the web server's home directory (often/فار/www) and create a.hgrcfile in there with a[موثوق به]block saying that the web server user trusts whomever it is that owns the repo'sملف .hg/hgrc.

إذا كنت على حق بشأن ما يحدث، فستكون العلامة المنذرة في سجل أخطاء خادم الويب الخاص بك حيث سترى الكثير من الرسائل مثل "عدم الثقة في /path/to/repo/.hg/hgrc المملوكة لبعض المستخدمين".

ليرة تركية؛دكتور: تأكد من أن مستخدم خادم الويب الخاص بك يثق (بمعنى hgrc) بمالك ملف .hg/hgrc هذا هو تحديد الخطاف.

نصائح أخرى

نجح هذا الأمر بالنسبة لي عند الاتصال بخادم Exchange:

Genacodicetagpre

ضع ما سبق في ملف hgrc في مستودعك.

على سبيل المثالC: \ repositories \ test.hg \ hgrc

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top