2011-11-24 12 views
7

पर पोस्ट करता है हम एक टिकट सिस्टम का उपयोग कर रहे हैं जिसे मैं स्वचालित रूप से अपडेट करना चाहता हूं क्योंकि डेवलपर्स सर्वर में अपने परिवर्तन को धक्का देते हैं। इसे अपडेट करने के लिए, मुझे केवल एक GET चर के रूप में प्रतिबद्ध संदेश के साथ एक विशिष्ट यूआरएल प्रदान करने की आवश्यकता है। जिस पृष्ठ को बुलाया जा रहा है, वह इस परिवर्तन को लॉग करेगा। मुझे पता है कि जाने का मेरा तरीका hooks है, लेकिन मैं बैश और पर्ल से परिचित नहीं हूं इसलिए यह काफी चुनौतीपूर्ण है।गिट पोस्ट-प्राप्त करें जो संदेश भेजता है और यूआरएल

मैं इस लक्ष्य को हासिल करना चाहते हैं:

  • डेवलपर सर्वर से
  • post-receive हुक रन और चेक जो विभिन्न प्रतिबद्ध नए हैं धक्का (क्योंकि वहाँ एक धक्का में कई हो सकता है)
  • यह के माध्यम से लूप उन्हें, और प्रत्येक प्रतिबद्धता के लिए, यह प्रतिबद्ध संदेश के साथ एक यूआरएल खोल देगा (curl http://server.com/logthis.asp?msg=Here_goes_the_commit_message, ऐसा कुछ)

यही है। हालांकि मैंने इस तरह के विचार से संबंधित somesamples की जांच की है, कोई भी वास्तव में ऐसा नहीं करता है। यह कैसे किया जा सकता है?

+0

डाउनवोट क्यों ?? –

उत्तर

9

मुख्य पीआईटीए नए संशोधन की सही सूची को अलग करना है, जिसे मैंने/usr/share/doc/git/contrib/hooks/post-rece-email (show_new_revisions) से उधार लिया है।

while read oval nval ref ; do 
    if expr "$ref" : "^refs/heads/"; then 
     if expr "$oval" : '0*$' >/dev/null 
     then 
      revspec=$nval 
     else 
      revspec=$oval..$nval 
     fi 
     other_branches=$(git for-each-ref --format='%(refname)' refs/heads/ | 
      grep -F -v $ref) 

     # You may want to collect the revisions to sort out 
     # duplicates before the transmission to the bugtracker, 
     # but not sorting is easier ;-) 
     for revision in `git rev-parse --not $other_branches | git rev-list --stdin $revspec`; do 
        # I don't know if you need to url-escape the content 
        # Also you may want to transmit the data in a POST request, 
      wget "http://server.com/logthis.asp?msg=$(git log $revision~1..$revision)" 
     done 
    fi 
done 
+0

सावधान। यदि आप दोनों एक संशोधन बनाते हैं और इसे एक ही धक्का में किसी अन्य शाखा में विलय करते हैं, तो यह उपरोक्त कोड द्वारा छोड़ा जाएगा। –

संबंधित मुद्दे