कोड में हुए बदलावों को सबमिट करें

यह पेज Android ओपन सोर्स प्रोजेक्ट (AOSP) में कोड बदलाव सबमिट करने की पूरी प्रक्रिया के बारे में बताता है, जिसमें समीक्षा का अनुरोध करने और अपने बदलावों को ट्रैक करने का तरीका भी शामिल है.

एओएसपी, Git का इस्तेमाल करने वाले प्रोजेक्ट के लिए Gerrit का इस्तेमाल करता है. यह वेब पर आधारित कोड रिव्यू सिस्टम है.

योगदान देने वाले लोगों के लाइसेंस के कानूनी समझौतों पर हस्ताक्षर करें

एओएसपी के लिए कोड में कोई भी बदलाव करने से पहले, आपको योगदान देने वाले के लाइसेंस और हेडर को पढ़ना होगा और इनमें से किसी एक कानूनी समझौते पर हस्ताक्षर करना होगा:

ब्रांच शुरू करें

आपको जो भी कोड बदलाव करना है उसके लिए, नीचे दिया गया तरीका अपनाएं:

  1. काम के Git रिपॉज़िटरी में नई ब्रांच शुरू करें. कोई ब्रांच, ओरिजनल फ़ाइलों की कॉपी नहीं होती. यह किसी खास कॉपी के लिए पॉइंटर होता है, जिससे लोकल ब्रांच बनाने और उनके बीच आसानी से स्विच करने में मदद मिलती है. ब्रांच का इस्तेमाल करके, एक-दूसरे में हुए बदलावों की पहचान की जा सकती है. ब्रांच शुरू करने के लिए, इस कमांड को चलाएं:

    repo start BRANCH_NAME
    

    एक ही डेटा स्टोर करने की जगह में, एक ही समय पर कई अलग-अलग ब्रांच शुरू की जा सकती हैं. BRANCH_NAME ब्रांच, आपके वर्कस्पेस के लिए स्थानीय है. इसे न ही Gerrit में या फ़ाइनल सोर्स ट्री में शामिल किया गया है. आपके पास जिस प्रोजेक्ट का हिस्सा है उसके लिए भी ब्रांच अलग-अलग होती हैं. इसलिए, अगर एक ही बदलाव पर अलग-अलग प्रोजेक्ट की फ़ाइलें बदलनी हैं, तो आपको हर प्रोजेक्ट में एक ब्रांच की ज़रूरत होगी, जहां फ़ाइलें बदली जाती हैं.

  2. (ज़रूरी नहीं) पुष्टि करें कि ब्रांच बनाई गई थी:

    repo status .
    

    आपको अपनी नई बनाई गई ब्रांच दिखेगी. उदाहरण के लिए:

    project frameworks/native/                      branch mynewbranch
    

बदलाव करें और उसकी जांच करें

बदलाव करने और उसकी जांच करने के लिए, यह तरीका अपनाएं:

  1. यह पक्का करने के लिए कि आप सबसे नए कोड बेस के साथ काम कर रहे हैं, पूरे कोड बेस को सिंक करें:

    repo sync
    

    अगर सिंक करने के दौरान आपकी कोई समस्या होती है, तो सिंक से जुड़े विवादों को हल करना के दूसरे से लेकर चौथे चरण को देखें.

  2. जिस कोड को बदलना है उसे ढूंढें. कोड ढूंढने के लिए, Android Code Search का इस्तेमाल करें. एओएसपी सोर्स कोड को देखने के लिए, Android कोड सर्च का इस्तेमाल किया जा सकता है. यह ठीक वैसा ही है जैसा यह कोड आपके इस्तेमाल के समय तय किया जाता है. ज़्यादा जानकारी के लिए, कोड सर्च का इस्तेमाल शुरू करना देखें. Android कोड सर्च में, main की ब्रांच के सभी कोड देखने के लिए, https://cs.android.com/android/platform/superproject/main पर जाएं.

  3. सोर्स फ़ाइलों में बदलाव करें या उन्हें जोड़ें. किए गए किसी भी बदलाव के लिए:

  4. Android बनाएं.

  5. अपने बिल्ड की जांच करें.

बदलाव करें और बदलावों को लागू करें

commit, Git में रिविज़न कंट्रोल की बुनियादी यूनिट है. इसमें पूरे प्रोजेक्ट के लिए डायरेक्ट्री के स्ट्रक्चर और फ़ाइल के कॉन्टेंट का एक स्नैपशॉट होता है. बदलाव करने के लिए यह तरीका अपनाएं:

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

    git add -A
    

    यह निर्देश, फ़ाइलों में किए गए बदलावों को ट्रैक करता है.

  2. फ़ाइलों को स्टेजिंग क्षेत्र में लें और उन्हें अपने स्थानीय डेटाबेस में सेव करें या सेव करें:

    git commit -s
    

    डिफ़ॉल्ट रूप से, एक टेक्स्ट एडिटर खुल जाता है और आपको एक तय मैसेज डालने के लिए कहा जाता है.

  3. इस फ़ॉर्मैट में अपना मैसेज दें:

    • लाइन 1: हेडलाइन. बदलाव के बारे में एक लाइन में खास जानकारी दें (ज़्यादा से ज़्यादा 50 वर्ण). आपने जिस जगह में बदलाव किया है उसकी जानकारी देने के लिए, प्रीफ़िक्स का इस्तेमाल करें. इसके बाद, इस कमेंट में किए गए बदलाव की जानकारी दें, जैसे कि यूज़र इंटरफ़ेस में किए गए बदलाव के बारे में नीचे दिया गया उदाहरण:

      ui: Removes deprecated widget
      
    • पंक्ति 2: खाली पंक्ति. एक खाली लाइन के साथ हेडलाइन का पालन करें.

    • लाइन 3: मुख्य हिस्सा. ज़्यादा से ज़्यादा 72 वर्णों में जानकारी दें. बताएं कि बदलाव से किस समस्या का समाधान हुआ और कैसे. भले ही, मुख्य हिस्से के तौर पर बदलाव करना ज़रूरी नहीं है, लेकिन इससे उन लोगों को मदद मिलती है जिन्हें बदलाव के बारे में दोबारा बताने की ज़रूरत है. किसी भी मान्य अनुमान या बैकग्राउंड की जानकारी के बारे में एक संक्षेप में जानकारी देना न भूलें. ऐसा करना तब ज़रूरी हो सकता है, जब योगदान देने वाले दूसरे लोग इस सुविधा पर काम करें.

    अच्छी प्रतिबद्धता के बारे में (उदाहरण के साथ) का कोई ब्लॉग पढ़ने के लिए, Git Commit Message को लिखने का तरीका देखें.

  4. तय की गई कीमत को सेव करें.

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

बदलाव को समीक्षा के लिए अपलोड करें

अपने व्यक्तिगत Git इतिहास में बदलाव करने के बाद, उसे Gerrit पर अपलोड करें:

  1. अपने सभी प्रोजेक्ट में किए गए सभी कमिट को अपलोड करने के लिए, यह कमांड चलाएं:

    repo upload
    

    सभी प्रोजेक्ट के सभी बदलाव, अपलोड में शामिल कर लिए जाते हैं.

    देखें

    आपको हुक स्क्रिप्ट चलाने के लिए कहा जाएगा.

  2. a और फिर Enter दबाएं.

    आपसे अपलोड की अनुमति मांगी जाएगी:

    Upload project frameworks/native/ to remote branch main:
    branch BRANCH_NAME ( 1 commit, Wed Aug 7 09:32:33 2019 -0700):
           ff46b36d android codelab change
    to https://android-review.googlesource.com/ (y/N)?
    
  3. अपलोड को मंज़ूरी देने के लिए, y और फिर Enter दबाएं.

आपको remote: SUCCESS के जैसा एक मैसेज मिलेगा.

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

अपलोड हो जाने के बाद, Repo आपको Gerrit में अपने बदलावों का एक लिंक देता है. समीक्षा सर्वर पर अपने बदलावों को देखने, टिप्पणियां जोड़ने या बदलाव के लिए खास समीक्षकों से अनुरोध करने के लिए, इस लिंक पर क्लिक करें. कोड में किए जाने वाले सभी बदलावों की समीक्षा, सही कोड मालिकों के पास होनी चाहिए. समीक्षा का अनुरोध करने के लिए:

  1. Gerrit में, SUGGEST OWNER पर क्लिक करें:

    Gerrit में, मालिकों के लिंक के सुझाव दें

    पहला डायग्राम. Genrit में मालिकों के सुझाव दें लिंक.

    समीक्षक वाला डायलॉग बॉक्स दिखेगा. इस डायलॉग बॉक्स में उन कोड मालिकों की सूची होती है जो आपके बदलाव की समीक्षा कर सकते हैं.

  2. किसी कोड मालिक को अपनी समीक्षा में जोड़ने के लिए, उसके नाम पर क्लिक करें.

    भेजें बटन चालू हो गया है.

  3. (ज़रूरी नहीं) ऐसे किसी भी व्यक्ति का ईमेल पता लिखें जिसे आपको अपने बदलाव की समीक्षा करनी है.

  4. (ज़रूरी नहीं) अनुमतियां मिलने के बाद, बदलाव को अपने-आप सबमिट करने के लिए, अपने-आप सबमिट होने की सुविधा के आगे मौजूद +1 पर क्लिक करें. अगर इस बटन पर क्लिक नहीं किया जाता है, तो Google के किसी कर्मचारी को आपका बदलाव सबमिट करना होगा.

  5. बदलाव को समीक्षा के लिए भेजने के लिए, भेजें पर क्लिक करें.

कोड के मालिक, कोड में किए गए आपके बदलावों की समीक्षा करते हैं. साथ ही, इन बदलावों को ठीक करने या इन्हें स्वीकार करने के लिए, आपको सुझाव देते हैं.

बदलाव की स्थिति तय करना

आपके किए गए बदलाव में शामिल फ़ाइलों की स्थिति तय करने के लिए, बदली गई फ़ाइलों के बगल में दिए गए आइकॉन देखें:

  • (चेकमार्क आइकॉन): कोड के मालिक ने मंज़ूरी दी है
  • (क्रॉस आइकॉन): कोड के मालिक ने मंज़ूरी नहीं दी है
  • (घड़ी का आइकॉन): कोड के मालिक की मंज़ूरी बाकी है

यहां दिए गए डायग्राम में, बदलाव वाली फ़ाइलों पर लागू होने वाले इन स्टेटस आइकॉन को दिखाया गया है:

कोड के मालिक की अनुमति दिखाने वाले आइकॉन वाली फ़ाइलों का उदाहरण

दूसरा डायग्राम. कोड के मालिक की अनुमति दिखाने वाले आइकॉन वाली फ़ाइलों का उदाहरण.

सुझाव, शिकायत या राय पर कार्रवाई करें और मौजूदा बदलाव को अपलोड करें

अगर कोई समीक्षक आपके अपडेट में बदलाव करने का अनुरोध करता है, तो आपके पास Git में की गई अपनी प्रतिबद्धता में बदलाव करने का विकल्प होता है. इससे, उस बदलाव पर एक नया पैचसेट बन जाएगा.

सुझाव, शिकायत या राय का समाधान करने और अपने बदलाव में बदलाव करने के लिए:

  1. बदलाव लागू करना और उसकी जांच करना लेख में दिए गए 2 से 4 चरण का पालन करें.

  2. अपने बदलाव में बदलाव करने के लिए, इन निर्देशों का पालन करें:

    git add -A
    git commit --amend
    
  3. बदलाव अपलोड करें.

जब आप संशोधित बदलाव को अपलोड करते हैं, तो यह Gerrit पर और आपके स्थानीय Git इतिहास, दोनों में मूल बदलाव को बदल देता है.

सिंक से जुड़े विवादों का समाधान करना

अगर सोर्स ट्री में ऐसे अन्य बदलाव सबमिट किए जाते हैं जो आपके बदलावों से मेल नहीं खाते, तो आपको एक मैसेज मिलेगा कि आपके कॉन्फ़्लिक्ट हैं. विवादों को सुलझाने के लिए:

  1. पक्का करें कि नए कोड का इस्तेमाल किया जा रहा हो:

    repo sync .
    

    repo sync निर्देश, सोर्स सर्वर से अपडेट फ़ेच करता है. इसके बाद, आपके HEAD को नए रिमोट HEAD पर अपने-आप रीबेस कर देता है.

  2. अगर अपने-आप रीबेस की प्रोसेस पूरी नहीं हो पाती है, तो मैन्युअल तरीके से रीबेस करें:

    repo rebase .
    
  3. एक बनाने से जुड़े विवादों का समाधान करें. अगर आपके पास मर्ज से जुड़े विवादों को हल करने का कोई पसंदीदा तरीका नहीं है, तो फ़ाइलों के बीच टकरावों को मैन्युअल तरीके से ठीक करने के लिए, git mergetool का इस्तेमाल किया जा सकता है.

  4. अलग-अलग फ़ाइलों को ठीक करने के बाद, नए कमिट को लागू करने के लिए इस कमांड को चलाएं:

    git rebase --continue
    

बदलाव सबमिट करें

जब समीक्षा और पुष्टि की प्रक्रिया पूरी हो जाती है, तो Google समीक्षक को आपके लिए कोड सबमिट करना होगा. दूसरे उपयोगकर्ता, अपने लोकल क्लाइंट को अपडेट करने के लिए, repo sync का इस्तेमाल कर सकते हैं.

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