पैच सबमिट करना

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

यह पृष्ठ एंड्रॉइड ओपन सोर्स प्रोजेक्ट (एओएसपी) को पैच सबमिट करने की पूरी प्रक्रिया का वर्णन करता है, जिसमें गेरिट के साथ समीक्षा का अनुरोध करने और अपने परिवर्तनों को ट्रैक करने का तरीका शामिल है।

आवश्यक शर्तें

प्रारंभ करने के लिए, सुनिश्चित करें कि आपने निम्न कार्य कर लिया है:

संसाधन

  • रेपो और गिट के बारे में विवरण के लिए, स्रोत नियंत्रण उपकरण पृष्ठ देखें।
  • Android ओपन सोर्स समुदाय के भीतर विभिन्न भूमिकाओं के बारे में जानकारी के लिए, प्रोजेक्ट भूमिकाएँ पृष्ठ देखें।
  • Android प्लेटफ़ॉर्म में योगदान कोड के बारे में लाइसेंसिंग जानकारी के लिए, लाइसेंस पृष्ठ देखें।

योगदानकर्ताओं के लिए

सर्वर के साथ प्रमाणीकरण

यदि आप अन्य उपयोगकर्ताओं के साथ एक आईपी पता साझा करते हैं, तो नियमित उपयोग पैटर्न के लिए भी कोटा ट्रिगर किया जा सकता है। यह तब हो सकता है जब, उदाहरण के लिए, कई उपयोगकर्ता एक ही आईपी पते से कम समय अवधि के भीतर नए ग्राहकों को सिंक करते हैं। आईपी ​​​​पते की परवाह किए बिना, प्रमाणित पहुंच प्रत्येक उपयोगकर्ता के लिए एक अलग कोटा का उपयोग करती है। प्रमाणित पहुंच को सक्रिय करने के बारे में पढ़ने के लिए प्रमाणीकरण का उपयोग करना देखें।

एक रेपो शाखा शुरू करना

आपके द्वारा किए जाने वाले प्रत्येक परिवर्तन के लिए, संबंधित गिट रिपॉजिटरी के भीतर एक नई शाखा शुरू करें:

repo start NAME .

आप एक ही रिपॉजिटरी में एक ही समय में कई स्वतंत्र शाखाएं शुरू कर सकते हैं। शाखा NAME आपके कार्यक्षेत्र के लिए स्थानीय है और इसे गेरिट या अंतिम स्रोत ट्री में शामिल नहीं किया गया है।

अपना परिवर्तन करना

स्रोत फ़ाइलों को संशोधित करें, और अपने परिवर्तनों को मान्य करें।

इन आदेशों के साथ अपने स्थानीय रिपॉजिटरी में परिवर्तन करें:

git add -A
git commit -s

विवरण बदलें

  • पंक्ति 1: शीर्षक

    एक-पंक्ति का सारांश प्रदान करें ( अधिकतम 50 वर्ण)

    इस प्रारूप का उपयोग Git और Gerrit द्वारा विभिन्न डिस्प्ले के लिए किया जाता है। यह आपके प्रतिबद्ध संदेश का सबसे महत्वपूर्ण, सबसे सघन हिस्सा है। आपके द्वारा बदले गए क्षेत्र का वर्णन करने के लिए उपसर्गों का उपयोग करने पर विचार करें, इसके बाद इस कमिट में आपके द्वारा किए गए परिवर्तन का विवरण, जैसे कि यह ui उपसर्ग के रूप में है:

    ui: Removes deprecated widget

  • पंक्ति 2: खाली

    इस लाइन को हमेशा खाली रखें।

  • पंक्ति 3: शरीर

    इस लाइन से शुरू करते हुए एक लंबा विवरण लिखें।

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

    किसी भी धारणा या पृष्ठभूमि की जानकारी का एक संक्षिप्त नोट शामिल करें जो महत्वपूर्ण हो सकता है जब कोई अन्य योगदानकर्ता इस सुविधा पर काम करता है।

एक अद्वितीय परिवर्तन आईडी और आपका नाम और ईमेल, जो repo init के दौरान प्रदान किया जाता है, स्वचालित रूप से आपके प्रतिबद्ध संदेश में जोड़ दिया जाता है।

यहाँ एक उदाहरण प्रतिबद्ध संदेश है:

Line 1, Headline - a short description

Line 3, Body - Add the detailed description of your patch here. Use as many lines
as needed. You can write an overall description, then list specifics.

I6e3c64e7a:Added a new widget.
I60c539a8f:Fixed the spinning image.
अच्छे कमिट डिस्क्रिप्शन (उदाहरण के साथ) के बारे में एक ब्लॉग पढ़ने के लिए, क्रिस बीम्स द्वारा गिट कमिट मैसेज कैसे लिखें देखें।

गेरिट पर अपलोड हो रहा है

अपने व्यक्तिगत इतिहास में अपना परिवर्तन करने के बाद, इसे इस आदेश के साथ गेरिट पर अपलोड करें:

repo upload

यदि आपने एक ही रिपॉजिटरी में कई शाखाएँ शुरू की हैं, तो आपको यह चुनने के लिए कहा जाता है कि किसे अपलोड करना है।

एक सफल अपलोड के बाद, रेपो आपको गेरिट पर एक नए पृष्ठ का URL प्रदान करता है। उस लिंक पर क्लिक करें जो रेपो आपको समीक्षा सर्वर पर अपना पैच देखने के लिए देता है, टिप्पणियां जोड़ें, या अपने पैच के लिए विशिष्ट समीक्षकों से अनुरोध करें।

समीक्षा का अनुरोध कर रहा हूं

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

उपयुक्त कोड स्वामियों को खोजने और उन्हें अपने परिवर्तन के लिए समीक्षकों के रूप में जोड़ने के लिए, इन चरणों का पालन करें।

  1. अपने पैच में फ़ाइलों के लिए कोड स्वामियों की सूची देखने के लिए Gerrit UI में SUGGEST OWNERS लिंक का चयन करें।

    मालिकों को गेरिट में लिंक सुझाएं
    चित्र 1. मालिकों को गेरिट में लिंक सुझाएं
  2. अपने पैच के लिए समीक्षकों के रूप में सूची से कोड स्वामियों को जोड़ें।

अपने पैच में फ़ाइलों की स्थिति निर्धारित करने के लिए, पैच में फ़ाइलों के बगल में निम्न चिह्नों की जाँच करें।

  • (चेकमार्क आइकन): कोड स्वामी द्वारा स्वीकृत
  • (क्रॉस आइकन): कोड स्वामी द्वारा अनुमोदित नहीं
  • (क्लॉक आइकन): कोड स्वामी द्वारा लंबित अनुमोदन
चित्र 2. कोड स्वामी अनुमोदन स्थिति दिखाने वाले आइकन वाली फ़ाइलों का उदाहरण

एक प्रतिस्थापन पैच अपलोड करना

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

git add -A
git commit --amend

जब आप संशोधित पैच अपलोड करते हैं, तो यह गेरिट और आपके स्थानीय गिट इतिहास दोनों में मूल को बदल देता है।

सिंक विरोधों का समाधान करना

यदि स्रोत ट्री में अन्य पैच सबमिट किए गए हैं जो आपके साथ विरोध करते हैं, तो स्रोत रिपॉजिटरी के नए HEAD के शीर्ष पर अपने पैच को रीबेस करें। ऐसा करने के लिए, यह कमांड चलाएँ:

repo sync

repo sync कमांड स्रोत सर्वर से अपडेट प्राप्त करता है, फिर आपके HEAD नए रिमोट HEAD पर स्वचालित रूप से रीबेस करने का प्रयास करता है।

यदि स्वचालित रीबेस असफल है, तो मैन्युअल रीबेस निष्पादित करें।

repo rebase

रिबेस संघर्ष से निपटने के लिए एक अन्य उपकरण git mergetool है। जब आपने परस्पर विरोधी फ़ाइलों को सफलतापूर्वक मर्ज कर लिया है, तो यह कमांड चलाएँ:

git rebase --continue

स्वचालित या मैन्युअल रिबेस पूर्ण होने के बाद, अपना रिबेस्ड पैच सबमिट करने के लिए repo upload चलाएँ।

प्रस्तुत करने के बाद स्वीकृत है

एक सबमिशन के बाद इसे समीक्षा और सत्यापन प्रक्रिया के माध्यम से किया जाता है, गेरिट स्वचालित रूप से परिवर्तन को सार्वजनिक रिपॉजिटरी में विलीन कर देता है। अन्य उपयोगकर्ता अपने संबंधित स्थानीय ग्राहकों में अद्यतन प्राप्त करने के लिए repo sync चला सकते हैं।

अपस्ट्रीम परियोजनाओं के लिए

एंड्रॉइड कई अन्य ओपन सोर्स प्रोजेक्ट्स का उपयोग करता है, जैसे कि लिनक्स कर्नेल और वेबकिट, जैसा कि एंड्रॉइड सॉफ्टवेयर मैनेजमेंट में वर्णित है। external/ के अंतर्गत आने वाली अधिकांश परियोजनाओं के लिए, परिवर्तन अपस्ट्रीम करें, फिर नए अपस्ट्रीम रिलीज़ के Android अनुरक्षकों को सूचित करें जिसमें आपके परिवर्तन शामिल हैं।

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

एक दिलचस्प विशेष मामला बायोनिक है। अधिकांश कोड बीएसडी से है, इसलिए जब तक बायोनिक के लिए नए कोड में परिवर्तन न हो, कृपया अपस्ट्रीम फिक्स करें, फिर उचित बीएसडी से एक पूरी नई फ़ाइल खींचें।

एंड्रॉइड कर्नेल

अपस्ट्रीम में सभी परिवर्तन करें। सामान्य मार्गदर्शन के लिए, Android कर्नेल योगदान दिशानिर्देशों और GKI पृष्ठ के लिए कर्नेल कोड विकसित करें का पालन करें।

आईसीयू

ICU-TC होम पेज पर external/icu ( icu4c/ और icu4j/ फ़ोल्डर) पर ICU प्रोजेक्ट में सभी परिवर्तन करें। अधिक जानकारी के लिए ICU बग सबमिट करना और फ़ीचर अनुरोध देखें।

सीएलडीआर

आईसीयू में अधिकांश भाषाई डेटा यूनिकोड सीएलडीआर परियोजना से आता है। कृपया सीएलडीआर परिवर्तन अनुरोधों का उपयोग करके अपस्ट्रीम में सभी अनुरोध सबमिट करें और 'एंड्रॉइड' लेबल जोड़ें।

एलएलवीएम/क्लैंग/कंपाइलर-आरटी

एलएलवीएम कंपाइलर इंफ्रास्ट्रक्चर पेज पर एलएलवीएम से संबंधित परियोजनाओं ( external/clang , external/compiler-rt , external/llvm ) में सभी बदलाव करें।

mksh

mirbsd.org डोमेन पर miros-mksh को एक ईमेल भेजकर external/mksh पर MirBSD Korn Shell प्रोजेक्ट में सभी परिवर्तन करें (वहाँ सबमिट करने के लिए कोई सदस्यता आवश्यक नहीं है) या लॉन्चपैड पर।

ओपनएसएसएल

OpenSSL पृष्ठ पर external/openssl पर OpenSSL प्रोजेक्ट में सभी परिवर्तन करें।

वी 8

V8 प्रोजेक्ट में सभी परिवर्तन V8 अंक पृष्ठ पर external/v8 पर सबमिट करें। विवरण के लिए V8 में योगदान देखें।

वेबकिट

WebKit पृष्ठ पर external/webkit पर WebKit प्रोजेक्ट में सभी परिवर्तन करें। एक WebKit बग फ़ाइल करके प्रक्रिया प्रारंभ करें। बग में, प्लेटफ़ॉर्म और OS फ़ील्ड के लिए Android उपयोग केवल तभी करें जब बग Android के लिए विशिष्ट हो। एक प्रस्तावित सुधार जोड़े जाने और परीक्षण शामिल किए जाने के बाद बगों की समीक्षकों का ध्यान आकर्षित करने की कहीं अधिक संभावना है। विवरण के लिए वेबकिट में योगदान कोड देखें।

zlib

zlib होम पेज पर external/zlib पर zlib प्रोजेक्ट में सभी परिवर्तन करें।