كيف يمكنني جعل التخريب (SVN) إرسال بريد إلكتروني على checkins?

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

سؤال

لقد وجدت دائما الإيداع (ارتكاب) رسائل مفيد جدا لتتبع أي عمل آخر يقوم به الناس في codebase / مستودع.كيف يمكنني إعداد إس إلى البريد الإلكتروني قائمة توزيع في كل من يرتكبها ؟

أنا على التوالي العملاء على ويندوز أباتشي التخريب الخادم على لينكس.الإجابات أدناه للحصول على مختلف المنصات من المرجح أن تكون مفيدة للآخرين على الرغم من.

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

المحلول

يمكنك استخدام بعد ارتكاب السنانير.هنا دليل.

هنا عينة روبي السيناريو الذي يرسل البريد الإلكتروني بعد كل يرتكبون: ارتكاب البريد الإلكتروني.rb

نصائح أخرى

إلقاء نظرة على مستقل التخريب يخطر أداة (ويندوز فقط!) يمكن أن تفعل البريد الإلكتروني على ارتكاب أيضا أكثر من ذلك بكثير!

سوف ترغب في التعرف على نفسك مع مستودع السنانير, خاصة بعد ارتكاب هوك.

1) تثبيت svnnotify على خادم إس باستخدام sudo apt-get

2) استخدام بعد ارتكاب هوك الخاص بك الريبو (قراءة في ما بعد ارتكاب هوكس على svn الموقع)

3) فتح بعد ارتكاب ربط الملف ولصق التعليمة البرمجية التالية إلى إرسال بريد إلكتروني باستخدام ملقم smtp.باستخدام smtp هو على التوالي إلى الأمام منذ كنت لا تحتاج إلى تكوين sendmail.

4) تأكد بعد \ (كسر خط) لم يكن لديك مساحة إضافية.

#!/bin/sh

REPOS="$1"
REV="$2"
TO="xyz@yah.com" # who will receive the notifications
FROM="hello@goog.com" # what will be in "FROM" fields


 /usr/bin/svnnotify \

--repos-path "$REPOS" \
--revision "$REV" \
--to $TO \
--from $FROM \
--reply-to $FROM \
--smtp "YOUR.SMTP.MAIL.COM" \
--subject-prefix "[svn commit]" \
--attach-diff -a \
--header 'Message generated on Subversion Check-in.' \
--footer 'OpenSource Team. ' \
--svnlook "/usr/local/bin/svnlook" \
--handler HTML::ColorDiff # make diff pretty

هناك مسألة ذات صلة هنا على بعد ارتكاب السنانير.وأنا شخصيا أفضل أن ترسل رسالة إلى شيء يمكنني الحصول على تغذية RSS من كرسالة بريد إلكتروني لكل يرتكبها الزائد البريد الوارد بسرعة كبيرة.

إعارة @مات ميلر في آر إس إس.

هناك أداة مفيدة يسمى WebSVN التي تقدم خدمة RSS من كل مستودع و فروع الفردية/فئة/المجلدات مع كامل ارتكاب الرسائل.كما انها كبيرة واجهة ويب بسرعة النظر في ملف وتاريخها يرتكب/ديفس دون الحاجة إلى تشغيل التحديث وفتح محرر الاختيار.

كما شخص آخر وقال: 'ما منصة'.على ويندوز لقد استعملت 'بلاط' ، وهو الهدية الترويجية سطر الأوامر SMTP الارسال للقيام بذلك ، جنبا إلى جنب مع مرحلة ما بعد ارتكاب آخر ملف دفعي.

بعد ارتكاب يبدو مثل هذا:(فقط مكالمات آخر ملف دفعي)

 call d:\subversion\repos\rts\hooks\mail %1 %2

والبريد.بات يشبه هذا:

copy d:\subversion\repos\RTS\hooks\Commitmsg.txt %temp%\commit.txt
copy d:\subversion\repos\RTS\hooks\subjbase.txt %temp%\subject.txt
svnlook info -r %2 %1 >> %temp%\commit.txt
echo Revision %2 >> %temp%\commit.txt
svnlook changed -r %2 %1 >> %temp%\commit.txt
svnlook author -r %2 %1 >> %temp%\subject.txt
c:\utils\blat %temp%\commit.txt -t <me@my.email.com> -sf %temp%\subject.txt -server ServerName -f "SVN Admin <svn@my.email.com>" -noh2

أكبر مسكتك في كتابة إس هوكس الذي قد يكون في الأساس لا يوجد بيئة انشاء- لا exe مسار لا temp المسار ، إلخ.على الرغم ربما تحسنت في الآونة الأخيرة إس يبني.

هل يمكن استخدام buildbot.انها أداة التي يمكن أن تتخذ الإجراء التعسفي كلما تحقق في حدوثه.إنه كامل المواصفات التكامل المستمر ولكن إذا كنت ترغب فقط في رسائل البريد الإلكتروني فإنه بالتأكيد يمكن التعامل مع ذلك.وقد الإضافات لمجموعة متنوعة من SCMs بما في ذلك SVN.

في "هوكس" دليل المحددة الخاصة بك التخريب فرع هناك 9 ملفات القالب للحصول على انك بدأته.

النقطة الرئيسية:التخريب سوف يتم تنفيذ أي من الملفات حتى يتم إعادة تسميته.على بعد ارتكاب.tmpl لتنفيذ تحت unix تسميته "بعد ارتكاب".تحت Windows تسميته إلى "ما بعد ارتكابها.الخفافيش" أو "post-commit.exe".التخريب سوف لا تنفيذ الملف إذا كان اسمه "ما بعد ارتكابها.tmpl" أو "post-commit.sh" أو ما شابه ذلك.

أيضا, تأكد من أن الملف القابل للتنفيذ من قبل نفس المستخدم الذي يعمل التخريب.

أنا استخدم بعد ارتكاب سيناريو مماثل لهذا واحد.

إنه يرسل لطيفة البريد الإلكتروني HTML.لقد قمت بتحديث بعض حيث أنه يسلط الضوء على التعليمات البرمجية التي تم إزالتها في الأحمر و يسلط الضوء على التعليمات البرمجية التي تم إضافتها في الزرقاء.

VisualSVN الملقم مفيدة ارتكاب البريد الإلكتروني الإخطار هوك VisualSVNServerHooks.exe.وهو يدعم الملونة ديفس و يمكن إرسال ارتكاب الإخطارات فقط عند ارتكاب يؤثر على بعض مستودع المسار.

انظر "تكوين البريد الإلكتروني الإخطارات في VisualSVN الخادم".

أنا فعلت هذا على خادم لينكس في 3 خطوات:

  1. إنشاء قائمة بريدية (svn-notify@xy.com) و إضافة أشخاص إلى قائمة.

  2. تحرير /path_to_your_svn/svn/hooks/svn-notify/mailer.conf

    • to_addr = svn-notify@xy.com
    • from_addr = %(مؤلف)s@xy.com
    • commit_subject_prefix =[XY-SVN]
  3. إضافة هذا السطر إلى /path_to_your_svn/svn/hooks/post-commit ملف:
    /path_to_your_svn/svn/hooks/svn-notify/mailer.py commit "$REPOS" "$REV" /path_to_your_svn/svn/hooks/svn-notify/mailer.conf

ماذا منصة ؟

على نظام التشغيل Mac OS X يجب تثبيت msmtp و قام بعد ارتكاب النصي تحت السنانير في مستودع.أ .msmtprc الملف يحتاج إلى برنامج الإعداد svn (أو www) المستخدم.

REPOS="`echo $1 | sed 's/\/{root of repository}//g'` "
REV="$2"
MSG=`/usr/local/bin/svn log -v -r HEAD https://localhost$REPOS`

/usr/local/bin/msmtp {list of recipients} <<EOF
Subject: SVN-Commit $REPOS#$REV
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8Bit

$MSG
EOF

جعل {root of repository} و {list of recipients} محددة لتلبية الاحتياجات الخاصة بك.ملاحظة يجب استخدام UTF-8 لأن لدينا بعض الأحرف الخاصة هنا في السويد (åäö).

هناك (كبيرة) مثال مكتوب في بيرل المدرجة في التخريب المصدر (يمكن ينظر هنا).

أيضا SVNMailer, التي تعمل على لينكس.

التحقق svn-وزارة الدفاع-البريد الإلكتروني وصف حزمة هنا.على svn-وزارة الدفاع-البريد الإلكتروني هو أداة قوية إس إخطارات البريد الإلكتروني الإدارة التي يتم تسليمها كما دبيان الأرشيف.سيكون من السهل أن تثبيت وتكوين استخدام.

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