2014-10-28 5 views
36

वर्तमान में मैं वास्तव में एक बड़े पुल अनुरोध पर काम कर रहा हूं। कोड-समीक्षा को किसी भी तरह प्रबंधित करने के लिए विचार अलग-अलग हिस्सों में पूर्ण पुल अनुरोध को विभाजित करना था, जो कि एक-दूसरे पर निर्भर करता है।गीथूब में निर्भर पुल अनुरोध संभव हैं?

एक उदाहरण होगा:

  • पुल अनुरोध 1: इंटरफेस बनाएँ: इंटरफ़ेस एक & बी और पुनर्गठन कोड
  • पुल अनुरोध 2: इंटरफ़ेस एक कार्यान्वयन और टेस्ट (पुल request1 पर निर्भर करता है)
  • अनुरोध खींचें 3: इंटरफेस बी कार्यान्वयन और टेस्ट (पुल अनुरोध 2 पर निर्भर करता है)
  • पुल अनुरोध 4: क्रियान्वयन की मिश्रित परीक्षण

वहाँ निर्भरता के साथ एक ही समय में सभी चार पुल के अनुरोध दर्ज करने Github में एक रास्ता है (2 + 3 पर निर्भर करता है)?

+0

मैं आम तौर पर केवल निर्भरता का संदर्भ देता हूं, फिर पीआरएस को जोड़ा जाएगा, और समीक्षकों को पता चलेगा। पीआर जोड़ें 1. पीआर 2 जोड़ें, पीआर 1 शाखा का आधार के रूप में उपयोग करें, और "यह # 1 पर निर्भर करता है" का उल्लेख करें। और इसी तरह। उन्हें एक साथ में रखने की जरूरत नहीं है। – Schwern

उत्तर

29

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

यह भी ध्यान में रखना अच्छा है कि लोग गिटहब पीआर का उपयोग करने के कई तरीके हैं। सामान्य ओपन सोर्स सहयोग तरीका एक रेपो फोर्क करना और क्रॉस-रेपो पुल अनुरोध सबमिट करना है, लेकिन अन्य मामलों में (उदा। किसी संगठन के भीतर), आप एक ही भंडार के भीतर diffs के लिए पुल अनुरोध सबमिट कर सकते हैं। मुझे लगता है कि एक ही भंडार के भीतर निर्भर पुल अनुरोधों के साथ कुछ प्राप्त करना अधिक उचित है, क्योंकि आप उस रेपो के भीतर प्रतिबद्ध/शाखा संरचना स्थापित कर सकते हैं। http://graysonkoonce.com/stacked-pull-requests-keeping-github-diffs-small/

एक सारांश:

  • प्रस्तुत करने के लिए

    यहाँ एक ब्लॉग पोस्ट का वर्णन करता है कि निर्भर पुल अनुरोध, जो मुझे लगता है के कुछ लाभ पाने के लिए एक ही रेपो में होने की सभी प्रतिबद्ध की आवश्यकता है 5 आश्रित पुल अनुरोध, 5-स्तर की गहरी शाखा पदानुक्रम बनाएं और प्रत्येक पीआर को पिछली शाखा के आधार पर उस शाखा के रूप में जमा करें।

  • समीक्षा 5 में से 2 को अद्यतन करने के शाखा 2 के लिए एक अद्यतन धक्का, तो समीक्षा 3, 4 में परिवर्तन एकीकृत करने के लिए 3 मर्ज संचालन, और 5.
  • कर के बाद से GitHub नहीं करता है आप एक समय में सभी परिवर्तनों को भूमि की जरूरत है पीआरएस की लक्ष्य शाखा को अद्यतन करने का समर्थन नहीं करते हैं। उदाहरण में, सभी 5 कोड समीक्षाओं को एक ही प्रतिबद्ध के रूप में उतरा दिया गया था।

दृष्टिकोण विशाल परिवर्तन है कि सबसे अच्छा छोटे टुकड़ों में समीक्षा कर रहे हैं के लिए ठीक से काम करने लगता है कि (एक n स्तर गहरा शाखा पदानुक्रम को बनाए रखने हालांकि git rebase -i की तरह कुछ के साथ तुलना में एक दर्द है), लेकिन यह वास्तव में अनुमति नहीं है "कोड समीक्षा पाइपलाइन" के लिए जहां आप समीक्षा के विभिन्न चरणों में निर्भर भिन्नता प्राप्त कर सकते हैं और पहले की समीक्षा कर सकते हैं क्योंकि उनकी समीक्षा की जा रही है।

कुछ अन्य इंटरनेट संसाधनों है कि भी सीमा से बाहर कॉल करने के लिए लग रहे हैं:

https://www.quora.com/Is-there-a-good-system-for-adding-multiple-pull-requests-to-GitHub

https://muffinresearch.co.uk/how-do-you-deal-with-dependent-branches-on-github/

मेरे समझ के साथ कि GitHub पीआरएस का उपयोग कर लोगों को आम तौर पर सिर्फ अपने कार्यप्रवाह की संरचना करने पर भरोसा नहीं करने की कोशिश है आश्रित कोड समीक्षा। कुछ उदाहरण:

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