Manual:Pywikibot/Gerrit/hi

शब्दावली

 * Git - एक संस्करण नियंत्रण प्रणाली। SVN की जगह ले लेता है।
 * Gerrit - एक कोड निरीक्षण मंच (https://gerrit.wikimedia.org)। Special:CodeReview की जगह ले लेता है।
 * core - असली (master) शाखा जिसे पहले "rewrite" कहा जाता था।



सदस्यों के लिए


गिट क्लाइंट्स
कमांड-पंक्ति की मदद से मूल को डाउनलोड करने के उदाहरण के लिए:
 * Windows के उपयोगकर्ताएँ: हमारी अनुशंसा है कि आप Git for Windows के साथ TortoiseGit का इस्तेमाल करें। पहले TortoiseGit स्थापित कर लें।
 * macOS/लिनक्स: कमांड-पंक्ति गिट - https://git-scm.com/ या फिर brew install git (Homebrew, macOS)

अपडेट करने के लिए:

अगर आपकों ज़्यादा काम करने का मन नहीं और चाहते हैं कि सब एक साथ हो जाए, आप ऐसा चला सकते हैं:

ध्यान रखें कि रिपॉज़िटरियाँ काफ़ी बड़ी होती हैं (>100MB)। अगर यह एक समस्या है, अंतिम संस्करण प्राप्त करने के लिए

का इस्तेमाल करें।



SVN की मदद से
एक मिनट... मुझे गिट का इस्तेमाल नहीं करना। क्या मैं तब भी SVN का इस्तेमाल कर पाऊँगा/पाऊँगी? जी हाँ! मगर i18n मॉड्यूल को अलग से कॉन्फ़िगर करके अपडेट करना न भूलें।

अपडेट करना उतना ही आसान है जितना:

URL
आपका क्लाइंट शायद आपसे रिपॉज़िटरी का URL माँगेगा। URL का प्रारूप है: .

तो मूल के लिए:

.



Nightly वितरण
आप Wikimedia Forge पर डाउनलोड पृष्ठ के ज़रिए पूरे पैकेजेस डाउनलोड कर सकते हैं या फिर स्रोत कोड देख सकते हैं।



विकासकों के लिए
पैचेस प्रस्तुत कैसे करें...गिट/Gerrit कॉन्फ़िगर करना, आदि।

दिशानिर्देश पढ़ें, और फिर में चरणों का पालन करते हुए यह चलाएँ:

और कोड बदल लेने के बाद में चरणों का पालन करें


 * Windows: Windows का इस्तेमाल कर रहे विकासक अधिक जानकारी के लिए का इस्तेमाल कर सकते हैं।



उदाहरण (चरण-दर-चरण)
क्रमशः ऐसा करें:


 * 1) अपना सॉफ़्टवेयर सेटअप करें:
 * 2) अगर SVN की पहुँच के लिए न किया गया हो; एक SSH कुँजी और एक विकासक खाता बनाएँ, और फिर Gerrit और विकिटेक पर अपनी सार्वजनिक कुँजी जोड़ दें।
 * 3) 'git' पैकेज स्थापित करें
 * 4) 'git-review' पैकेज स्थापित करें
 * 5) * Openstack वाला, Facebook वाला नहीं
 * 6) * 1.12 या 1.21 जैसा कोई भी संस्करण, मगर v1.18 नहीं
 * 7) अपना रिपॉज़िटरी क्लोन करके सेटअप करें:
 * 8)   (जैसे  ) का इस्तेमाल करके सभी सबमॉड्यूल्स के साथ गिट रिपॉज़िटरी को क्लोन करें और इंतज़ार करें। इस चरण में कुछ समय लगेगा
 * 9) डिरेक्ट्री दर्ज करें
 * 10) सिर्फ इस रिपॉज़िटरी/डिरेक्ट्री के लिए गिट सेटिंग कॉन्फ़िगर करें (ग्लोबल नहीं, अगर उदाहरणस्वरूप आपके पास अलग-अलग परियोजनाओं के लिए अलग-अलग छद्म हों)।   और   इसे ग्लोबल रूप से कॉन्फ़िगर करने के लिए   पैरामीटर का इस्तेमाल करें।
 * 11) अंग्रेज़ी संदेश दिखाने के लिए अपने टर्मिनल/कंसोल को कॉन्फ़िगर करें (git review के साथ ठीक से काम करने के लिए Gerrit/git-review#Troubleshooting देखें)   किसी नए कंसोल के बनाए जाने पर हर बार यह काम ज़रूरी है। इसे स्थायी रूप से कॉन्फ़िगर करने के लिए इसे अपने   या समान सेटअप फ़ाइल में रखें
 * 12) सिर्फ इस रिपॉज़िटरी के लिए git review सेटअप करें   और अपना   दोबारा दर्ज करें। यह एक ज़रूरी चरण है - अगर आप इसे भूल जाते हैं, Gerrit/Tutorial#Push your change set to Gerrit के अनुसार नीचे का आखिरी   विफल हो जाएगा (जिसकी मदद से निरीक्षण के लिए कमिट्स प्रस्तुत किए जाते हैं) - हालाँकि इसे तब भी सुलझाया जा सकता है।
 * 13) रिपॉज़िटरी पर काम करें, जैसे निरीक्षण के लिए पैचेस कमिट करें:
 * 14) master शाखा पर जाएँ (ज़रूरत न भी पड़ सकती है)
 * 15) वर्तमान शाखा को ऑनलाइन अवतरण से अपडेट करें (जैसे  )
 * 16)  से काम करने के लिए अपनी लोकल अस्थायी शाखा बनाएँ, और उपलब्ध  की मदद से एक   चुनने की कोशिश करें - शाखा की ज़रूरत न पड़ने पर इसे  से हटाया जा सकता है
 * 17) अब कुछ कोड लिखें; फ़ाइलें जोड़ने, हटाने और स्थानांतरित करने के लिए add, rm और mv गिट कमांड्स देखें - जब आप अगले चरण के लिए तैयार हों
 * 18) अपने बदलाव लोकल अस्थायी शाखा पर   की मदद से कमिट करें (आप   की जगह   का और   की जगह   का इस्तेमाल कर सकते हैं) और, जैसा SVN से इस्तेमाल किया गया है, एक सार्थक कमिट संदेश दर्ज करें, जैसे कोड में आपके बदलावों का एक संक्षिप्त विवरण
 * 19) * देखें।
 * 20) वैकल्पिक रूप से कमिट डेटा जाँचकर   सुनिश्चित करें कि आप वही भेज रहे हैं जो आप भेजना चाहते हैं
 * 21) डेटा को ऑनलाइन रिपॉज़िटरी यानी gerrit for review (जैसे  ) पर भेज दें
 * 22) फिर Gerrit पर जाएँ, अपने बदलाव पर क्लिक करें, "Add Reviewer" बटन के पास के इनपुट बॉक्स में किसी निरीक्षक का नाम लिखें
 * 23) वैकल्पिक अतिरिक्त विकल्प:
 * 24) * गिट हुक्स की मदद से RCS कीवर्ड्स एक्सपांशन सक्षम करें (जैसे svn:keywords ) (यहाँ पर जर्मन में अच्छे से समझाया गया है)
 * 25) ** मूल के लिए:
 * 26) ** (शायद हमें dealing-with-svn-keyword-expansion-with-git-svn की तरह git-rcs-keywords मॉड्यूल का इस्तेमाल करने के बारे में सोचना चाहिए)

Phabricator
अगर आप 'Change-Id: ....' के ठीक पहले एक पंक्ति में 'Bug: T12345' का उल्लेख करते हैं, पैचेस को एक टास्क से जोड़ दिया जाता है। अधिक जानकारी के लिए देखें।



समस्याएँ और समाधान


jenkins-bot के संदेश
https://integration.wikimedia.org/ci/job/pywikibot-core-tox-flake8/2591/console : FAILURE in ?s (non-voting)

कमिट किए गए पैचसेट ने flake8 कोड शैली जाँच को पास नहीं किया। इसमें कोड की कार्यक्षमता नहीं, बल्कि सिनटैक्स और शैली के बारे में टिप्पणी जोड़ी गई है।

https://integration.wikimedia.org/ci/job/pywikibot-core-tox-flake8-docstrings-mandatory/560/console : FAILURE in ?s (non-voting)

कमिट किए गए पैचसेट ने अनिवार्य pep257 शैली जाँच को पास नहीं किया। इसमें कोड की कार्यक्षमता नहीं, बल्कि इनलाइन प्रलेखन के बारे में टिप्पणी जोड़ी गई है।

https://integration.wikimedia.org/ci/job/pywikibot-core-tox-nose/1448/console : FAILURE in ?s (non-voting)

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

This change could not be automatically merged with the current state of the repository. Please rebase your change and upload a new patchset.

पैचसेट को वर्तमान HEAD में अपने आप मर्ज नहीं किया जा सकता है। कृपया समाधान के लिए Build failed due to merge conflict पढ़ें।

इसके बारे में अधिक जानकारी Gerrit/Tutorial#How to submit a patch और git review complains about multiple commits पर पाई जा सकती है।