2008-08-11 12 views
51

मुझे हमेशा चेकबिन (प्रतिबद्ध) मेल मिल गया है ताकि यह पता चल सके कि अन्य लोग कोडबेस/रिपोजिटरी में क्या काम कर रहे हैं। मैं प्रत्येक प्रतिबद्धता पर वितरण सूची ईमेल करने के लिए एसवीएन कैसे स्थापित करूं?मैं सबवर्सन (एसवीएन) चेकइन पर ईमेल कैसे भेजूं?

मैं विंडोज़ पर क्लाइंट चला रहा हूं और लिनक्स पर अपाचे सबवर्जन सर्वर चला रहा हूं। हालांकि विभिन्न प्लेटफार्मों के लिए नीचे दिए गए उत्तर अन्य लोगों के लिए उपयोगी होंगे।

उत्तर

31

आप post-commit hooks का उपयोग करते हैं। यहां एक guide है।

यहां एक नमूना रूबी स्क्रिप्ट प्रत्येक के बाद एक ईमेल भेजता है कि प्रतिबद्ध है: commit-email.rb

1

क्या मंच?

मैक ओएस एक्स पर मैंने 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} अपनी आवश्यकताओं के लिए विशिष्ट बनाओ। नोट मैंने यूटीएफ -8 का उपयोग किया है क्योंकि हमारे यहां स्वीडन (åäö) में कुछ विशेष पात्र हैं।

0

उपरोक्त स्रोत में शामिल पर्ल में लिखा गया एक (बड़ा) उदाहरण है (यह viewed here हो सकता है)।

+0

कड़ी है (प्रभावी रूप से) टूट (यह एक सामान्य पृष्ठ पर रीडायरेक्ट)। –

19

स्टैंडअलोन Subversion Notify उपकरण पर एक नज़र डालें (केवल Windows!) यह प्रतिबद्ध है और यह भी बहुत कुछ पर ईमेल कर सकते हैं!

+1

SubVersionNotify वास्तव में एक शानदार छोटा उपकरण है। मेरे लिए पूरी तरह से काम किया। धन्यवाद। – NLV

1

पोस्ट-प्रतिबद्ध हुक पर संबंधित प्रश्न here है। निजी तौर पर, मैं किसी ऐसे संदेश को संदेश भेजना पसंद करता हूं जिसे मैं आरएसएस फ़ीड प्राप्त कर सकता हूं, क्योंकि एक ईमेल-प्रति-प्रतिबद्धता मेरे इनबॉक्स को बहुत तेज़ी से अधिभारित कर देगी।

1

आरएसएस फ़ीड पर Matt Miller सेकेंडिंग।

WebSVN नामक एक उपयोगी टूल है जो पूर्ण भंडार संदेशों के साथ प्रत्येक भंडार और व्यक्तिगत शाखाओं/टैग/फ़ोल्डर्स के आरएसएस फ़ीड प्रदान करता है। यह अद्यतन इतिहास चलाने और पसंद के संपादक को खोलने के बिना फ़ाइल इतिहास को तुरंत देखने के लिए एक महान वेब इंटरफ़ेस भी है और प्रतिबद्ध/diffs।

1

जैसा कि किसी और ने कहा, 'क्या मंच'। विंडोज़ पर मैंने 'ब्लैट' का उपयोग किया है, जो एक फ्रीबी कमांड लाइन एसएमटीपी मेलर है, इसे पोस्ट-प्रतिबद्ध और दूसरी बैच फ़ाइल के साथ करने के लिए।

पोस्ट को इस प्रकार दिखता प्रतिबद्ध:

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

और mail.bat इस तरह देखा (बस एक और बैच फ़ाइल कॉल):

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 <[email protected]> -sf %temp%\subject.txt -server ServerName -f "SVN Admin <[email protected]>" -noh2 

SVN हुक लिखित रूप में सबसे बड़ी पकड़ लिया है कि आप है हो सकता है कि मूल रूप से कोई पर्यावरण सेट-अप न हो - कोई एक्सई पथ, कोई अस्थायी पथ इत्यादि। हालांकि शायद हाल ही में एसवीएन बिल्ड में सुधार हुआ है।

1

मैं इस one के समान पोस्ट-स्क्रिप्ट स्क्रिप्ट का उपयोग करता हूं।

यह एक अच्छा HTML ईमेल भेजता है। मैंने इसे कुछ अपडेट किया जहां यह लाल रंग में हटाए गए कोड को हाइलाइट करता है और नीले रंग में जोड़ा गया कोड हाइलाइट करता है।

+0

हाय मार्क क्या आप सलाह दे सकते हैं कि इस स्क्रिप्ट को कैसे जोड़ना है क्योंकि मुझे बिल्कुल वही स्क्रिप्ट चाहिए जिसके माध्यम से मैं विस्तृत मेल प्राप्त कर सकता हूं, अब मैं एसवीएन का उपयोग कर रहा हूं और मैं कछुआ एसवीएन ब्राउज़र के माध्यम से अपने भंडार तक पहुंच सकता हूं कृपया सलाह दें कि इस स्क्रिप्ट को कैसे कार्यान्वित किया जाए ताकि मैं – user1633823

+0

@ user1633823 मेल प्राप्त करना भी शुरू कर सकता हूं, आपको बस साइट पर इंस्टॉल निर्देशों का पालन करना होगा। लेकिन मूल रूप से आप स्क्रिप्ट को हुक/पोस्ट-प्रतिबद्ध निर्देशिका में कॉपी करते हैं जहां आपका svn सर्वर चल रहा है और इसे निष्पादन योग्य बनाता है। –

1

आप buildbot का उपयोग कर सकते हैं। यह एक ऐसा टूल है जो चेक-इन होने पर मनमाने ढंग से कार्रवाई कर सकता है। यह एक पूर्ण विशेषीकृत सतत एकीकरण प्रणाली है लेकिन यदि आप सिर्फ ईमेल चाहते हैं तो यह निश्चित रूप से इसे संभाल सकता है। इसमें एसवीएन समेत विभिन्न एससीएम के लिए प्लग-इन हैं।

1

आपकी विशिष्ट उपवर्तन शाखा की "हुक" निर्देशिका में आपको 9 टेम्पलेट फाइलें शुरू करने के लिए हैं।

मुख्य बिंदु: उपversण तब तक किसी भी फाइल को निष्पादित नहीं करेगा जब तक उनका नाम बदल नहीं जाता है। यूनिक्स के तहत निष्पादित करने के लिए post-commit.tmpl प्राप्त करने के लिए, इसे "पोस्ट-प्रतिबद्ध" का नाम दें। विंडोज के तहत, इसे "post-commit.bat" या "post-commit.exe" पर पुनर्नामित करें। सबवर्सन फ़ाइल को निष्पादित करेगा यदि इसे "post-commit.tmpl" या "post-commit.sh" या जैसा नाम दिया गया है।

साथ ही, सुनिश्चित करें कि फ़ाइल उसी उपयोगकर्ता द्वारा निष्पादन योग्य है जो उपवर्तन चलाती है।

0

svn-mod-email पैकेज here वर्णित पैकेज की जांच करें। svn-mod-email एसवीएन ईमेल अधिसूचना प्रबंधन के लिए एक शक्तिशाली उपकरण है जो डेबियन संग्रह के रूप में वितरित किया जाता है। यह आसानी से स्थापित, कॉन्फ़िगर और उपयोग करने के लिए है।

1

विजुअल एसवीएन सर्वर में उपयोगी प्रतिबद्धता ई-मेल अधिसूचना हुक VisualSVNServerHooks.exe है। यह रंगीन diffs का समर्थन करता है और केवल कुछ नोटिफिकेशन पथ को प्रभावित करते समय प्रतिबद्ध नोटिफिकेशन भेज सकता है।

"Configuring Email Notifications in VisualSVN Server" देखें।

2

1) sudo का उपयोग कर एक SVN सर्वर पर svnnotify स्थापित apt-get

3) ओपन पद

2) का उपयोग करें के बाद प्रतिबद्ध अपने रेपो के हुक (पर पढ़ा बाद प्रतिबद्ध SVN वेबसाइट पर हुक) - comt सर्वर का उपयोग कर एक ईमेल भेजने के लिए कोड के बाद कोड हुक फ़ाइल और पेस्ट करें। smtp का उपयोग करना सीधे आगे है क्योंकि आपको sendmail को कॉन्फ़िगर करने की आवश्यकता नहीं है।

4) सुनिश्चित करें कि \ (लाइन ब्रेक) के बाद आपके पास अतिरिक्त स्थान नहीं है।

#!/bin/sh 

REPOS="$1" 
REV="$2" 
TO="[email protected]" # who will receive the notifications 
FROM="[email protected]" # 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 
1

मैं 3 चरणों में लिनक्स सर्वर पर यह किया:

  1. एक मेलिंग सूची ([email protected]) बनाएँ और सूची में लोगों को जोड़ें।

  2. संपादित /path_to_your_svn/svn/hooks/svn-notify/mailer.conf

    • to_addr = [email protected]
    • from_addr =% (लेखक) रों @ xy।कॉम
    • 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
संबंधित मुद्दे