2012-07-06 15 views
20

हमारी कंपनी में हम svn से git तक जा रहे हैं। समस्या ट्रैकिंग के लिए हम एटलसियन से जिरा का उपयोग करते हैं।गीता प्रतिबद्धता संदेश में जिरा मुद्दा संख्या

अब हम यह लागू करना चाहते हैं कि प्रत्येक प्रतिबद्ध संदेश में एक समस्या संख्या होती है (जैसे हमने svn के साथ किया था)।

हमें प्रतिबद्ध-संदेश हुक मिला है जिसे हम किसी प्रतिबद्धता को अस्वीकार करने के लिए उपयोग करते हैं यदि इसमें कोई समस्या संख्या नहीं है।

जीआईआरए गिट रेपो को स्कैन करने के लिए फिशिए का उपयोग करता है। यदि किसी प्रतिबद्ध संदेश में कोई समस्या संख्या होती है तो उस समस्या के तहत परिवर्तन दिखाए जाते हैं।

समस्या यह है कि एक गिट भंडार क्लोन होने पर एक हुक की प्रतिलिपि नहीं बनाई जाती है। तो प्रतिबद्ध संदेशों में संख्या जारी करने के लिए लागू नहीं हैं। इसका मतलब है कि जब एक नई प्रतिबद्धता को ऊपर की ओर धकेल दिया जाता है तो जिरा किसी मुद्दे के तहत परिवर्तनों की सूची नहीं दे सकता है।

सवाल यह है; क्या हम किसी भी तरह गिट का गलत तरीके से उपयोग कर रहे हैं और क्या वास्तव में प्रतिबद्ध संदेश में किसी समस्या संख्या को लागू करने का कोई तरीका है? या क्या किसी के पास बस एक स्क्रिप्ट/हुक है (प्रतिबद्ध-संदेश हुक के अलावा) जो इसे पूरा करता है?

+0

अभी भी एक अच्छा जवाब नहीं है। क्या किसी के पास एक अच्छा सर्वर-साइड हुक है? हुक मूल पर निष्पादित किया जाना चाहिए, यानी जहां हम धक्का देते हैं। – meijuh

उत्तर

0

आपके पास सर्वर-साइड हुक भी हो सकते हैं, पूर्व-प्राप्त-हुक या कुछ भी हो सकता है, हालांकि यह स्पष्ट नहीं है कि आप github के लिए उपयोग किए जाते हैं।

यह विफल होने पर, मैं 'इंस्टॉल-हुक' बिल्ड विकल्प (एक रेक कार्य के रूप में, कार्य, या जो भी हो) प्रदान करने पर विचार कर सकता हूं, हालांकि इससे मुझे थोड़ा 'गंदा' महसूस होगा क्योंकि अब मेरा निर्माण बंधे हैं संस्करण नियंत्रण प्रणाली ...

+0

असल में जो मैं चाहता हूं वह सर्वर को देना है जिसने मूल संदेश को स्थानीय भंडार से पुश को अस्वीकार कर दिया है यदि प्रतिबद्ध संदेश में कोई समस्या संख्या नहीं है। – meijuh

+0

मुझे https://github.com/joyjit/git-jira-hook/blob/master/git-jira-hook मिला। लेकिन यह जेआईआरए सर्वर से कनेक्ट करना चाहता है, जो कि मैं चाहता हूं कि वास्तव में जरूरी नहीं है। – meijuh

13

मैंने git-jira-hook का उपयोग किया और इसे मेरी आवश्यकताओं में संशोधित किया, जो आपके लिए भी काम करना चाहिए। अपनी जरूरतों के लिए, उन हिस्सों को हटा दें जहां यह जिरा में लॉग इन करता है यह जांचने के लिए कि क्या जिरा मुद्दा संख्या प्रतिबद्ध संदेश से पुनः प्राप्त की गई है या नहीं। यदि आपको पाइथन पसंद नहीं है (गिट-जिरा-हुक पायथन में लिखा गया है) और बैश पसंद करते हैं, तो आप अपनी जरूरतों के लिए प्रत्येक रेपो के .git/hooks dir में उदाहरण स्क्रिप्ट को अनुकूलित करने में सक्षम होना चाहिए।

कुछ ऐसा करने के लिए जो हर किसी के लिए काम करेगा, आप अपने अपस्ट्रीम रेपो पर 'अपडेट' हुक के रूप में गिट-जिरा-हुक का उपयोग करना चाहते हैं। यह उन धक्काओं को अवरुद्ध करेगा जिनमें उचित जिरा मुद्दे संदर्भों की कमी वाले संदेश शामिल हैं। चूंकि प्रतिबद्ध समय (पुश टाइम के बजाए) में लापता समस्या संदर्भों के बारे में फीडबैक प्राप्त करना अधिक सुविधाजनक है, इसलिए आपको अपने डेवलपर को गिट-जिरा-हुक को अपने प्रतिबद्ध-संदेश हुक के रूप में स्थापित करने की आवश्यकता होगी। मैं बाद में समझाऊंगा कि यह वैश्विक स्तर पर कैसे किया जा सकता है। मैं अंकन है कि हम का उपयोग में jira मुद्दा संदर्भ के लिए जाँच करने के लिए Git-jira हुक संशोधित :

यहाँ कैसे मैं इस मुद्दे को हल कर लिया है है:

  1. निजी रेपो प्रतिबद्ध-msg हुक। फिर, मैंने this SO question में समझाया गया है, जैसा कि वैश्विक स्तर पर हुक स्थापित करने के बारे में बताते हुए सभी को निर्देशों के साथ हुक को ईमेल किया। यदि आप विश्व स्तर पर हुक स्थापित करते हैं तो इसका उपयोग सभी भावी क्लोन में किया जाएगा, और गिट इनिट का उपयोग करके पहले से ही क्लोन रेपो पर आसानी से लागू किया जा सकता है।

  2. अपस्ट्रीम रेपो अपडेट हुक: मैंने पहले से ही संशोधित गिट-जिरा-हुक स्क्रिप्ट का उपयोग किया और इसे हमारे प्रत्येक प्रतिनिधि में स्थापित किया। मैं अपस्ट्रीम रेपो (इसे सिम्लिंक किया गया) पर काम कर रहे इंटरैक्टिव प्रमाणीकरण बिट्स नहीं प्राप्त कर सका, इसलिए मैंने इसके बजाय प्रतिबंधित अनुमतियां जिरा उपयोगकर्ता बनाई और स्क्रिप्ट में उनके प्रमाणीकरण को कड़ी मेहनत की।

+1

गिट-जिरा-हुक के लिए बहुत सारे फोर्क भी हैं जिनमें कुछ उपयोगी विशेषताएं हैं। यदि गिट-जिरा-हुक आपके लिए कमी महसूस करता है, तो मैं यह देखने के लिए कांटे की जांच करता हूं कि आपकी कोई ज़रूरत है या नहीं। – Freerobots

0

उस के लिए एक ऐड-ऑन है: Commit Policy Plugin for JIRA!

यह न केवल जांचता है कि क्या संदेश में जेआईआरए मुद्दा कुंजी "औपचारिक रूप से" शामिल है, लेकिन यह भी जांचता है कि संबंधित समस्या एक JQL क्वेरी से मेल खाती है या नहीं। इसका उपयोग करके, आपके पास कुछ समस्याएं हैं, केवल कुछ समस्या प्रकारों के खिलाफ जांच करने, किसी निश्चित स्थिति में समस्याएं, वर्तमान स्क्रम स्प्रिंट में समस्याएं, अगले संस्करण को लक्षित करने वाले मुद्दे आदि।

enter image description here

एक बोनस के रूप में, यह है, दोनों अपने मूल (Subversion) और लक्ष्य संस्करण नियंत्रण प्रणाली (Git) के साथ काम करता अपना काम भी संक्रमण अवधि के दौरान नियंत्रित हों।

आप हुक स्क्रिप्ट को धन्य रेपो और किसी भी कांटे में स्थापित कर सकते हैं। दुर्भाग्य से, गिट के साथ रेपो क्लोन करते समय हुक स्क्रिप्ट को क्लोन नहीं किया जाता है, लेकिन हम वर्तमान में इसके लिए कामकाज की जांच कर रहे हैं।

पूर्ण डॉक्स: http://www.midori-global.com/products/jira-commit-policy-plugin/documentation/

अस्वीकरण: इस JIRA के लिए एक वाणिज्यिक और समर्थित ऐड-ऑन है, और मैं एक डेवलपर इस पर काम कर रहा हूँ।

0

यदि आप .git फ़ोल्डर में डिफ़ॉल्ट हुक का उपयोग कर रहे हैं तो आपके द्वारा किए गए परिवर्तनों को अनुक्रमित नहीं किया जाएगा, इसका मतलब है कि उन्हें चेक आउट या क्लोन नहीं किया जा सकता है।

आप अपने प्रतिबद्धता संदेश हुक को 'हुक' नामक एक अलग फ़ोल्डर में स्थानांतरित कर सकते हैं और इसे प्रतिबद्ध कर सकते हैं ताकि यह .git से डिफ़ॉल्ट हुक ओवरराइट कर सके।

हम एक संदेश बॉक्स को एक त्रुटि के रूप में दिखाते हैं यदि प्रतिबद्धता में कोई समस्या संख्या नहीं है ताकि उपयोगकर्ता अभी भी आगे बढ़ सके यदि उसे कोई समस्या ट्रैकर संख्या (पैच/हॉटफिक्स के मामलों में काम करने की आवश्यकता नहीं है)

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