2012-07-06 5 views
16

यदि मेरे पास गेरिट में एक बदलाव के लिए एकाधिक पैच सेट संस्करण हैं, तो ऐसा लगता है कि मैं केवल नवीनतम पैच सेट संस्करण सबमिट कर सकता हूं (क्योंकि केवल उसमें आवश्यक बटन है)। क्या के लिए एक आसान तरीका है, उसी गेरिट इंस्टेंस पर केवल मेरे वेब ब्राउज़र का उपयोग करके, उसी परिवर्तन के पुराने पैच सेट संस्करण सबमिट करें?गेरिट यूआई के माध्यम से पुराने पैच सेट संस्करण पर वापस जाएं?

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

उत्तर

11

नहीं, क्षमा करें, यह वर्तमान में संभव नहीं है। डिजाइन मानता है कि सबसे हालिया पैच सेट एक डेवलपर्स की समीक्षा और परीक्षण होगा, और ऐसे पुराने पैच सेट सबमिट नहीं किए जा सकते हैं। उनकी समीक्षा/सत्यापन भी नहीं की जा सकती है। यदि आप पैच सेट के पुराने संस्करण का उपयोग करना चाहते हैं, तो आपको इसे सबसे हालिया पैच सेट बनाने के लिए पुनः सबमिट करना होगा। से बचने के लिए कोई नया बदलाव त्रुटि git commit --amend त्रुटि करें और गिट एक नया sha1 तैयार करेगा, जिसे गेटिट द्वारा एक नए पैच सेट के रूप में खुशी से स्वीकार किया जाएगा।

+6

यह काम नहीं करता है: पुराने पैच सेट की प्रतिबद्धता को दबाते समय, मुझे "कोई नया बदलाव नहीं" त्रुटि मिलती है। – oberlies

+1

यह थोड़ा सा गड़बड़ है। आपको अपने इच्छित पैचसेट्स द्वारा पेश किए गए परिवर्तनों को वास्तव में वापस करने की आवश्यकता है, फिर उन रिवर्सन को समीक्षा में संशोधित करें और पुनः सबमिट करें। यह आपको उस पैचसेट द्वारा प्रतिनिधित्व किए गए राज्य में वापस ले जाएगा जो आप चाहते हैं। यदि आप जानते हैं कि आप क्या खोज रहे हैं, तो आप शायद इसे रीफ्लॉग के साथ पूरा कर सकते हैं, लेकिन मुझे इसे वास्तविक गिट विज़ार्ड में छोड़ना होगा। – geekofalltrades

+4

यहां कुछ ऐसा काम करता है जो यद्यपि काम करता है, हालांकि यह एक हैक का थोड़ा सा हो सकता है: नवीनतम पैचसेट के हेड स्टेट को रीफ्लॉग में ढूंढें, इसे एक्स कहते हैं, और उस पैचसेट की HEAD स्थिति जिसे आप वापस करना चाहते हैं, इसे वाई करें। 'गिट diff हेड @ {एक्स} HEAD @ {वाई} | गिट लागू --index'। अब आपके पास चरणबद्ध परिवर्तन हैं जो वाई और एक्स के बीच किए गए सभी परिवर्तनों को पूर्ववत करते हैं। 'गिट प्रतिबद्ध --amend' करें, फिर समीक्षा पुनः सबमिट करें। अब आपके पास एक नया पैचसेट है जो आपको वांछित पैचसेट की स्थिति में वापस लाता है। – geekofalltrades

0

गेरिट यूआई में Patch Sets पर क्लिक करें और ड्रॉप डाउन मेनू में आप अपनी प्रतिबद्ध आईडी के साथ सभी पैच देखेंगे। बस प्रतिबद्ध आप चाहते हैं पर क्लिक करें और मध्य फलक में Revert चयन

Gerrit patch sets

तुम भी/प्रतिबद्ध आईडी और चेकआउट में संशोधन प्राप्त कर सकते हैं के लिए प्रतिबद्ध को समीक्षा के लिए फिर से भेजने

आप को खींचने के लिए चाहते हैं/fetch/cherry- एक विशिष्ट पैच सेट चुनें, फिर पर Patch Sets के दाईं ओर क्लिक करें और आवश्यक कमांड कॉपी करें। आदेश में आप की तरह इस

ssh://[email protected]/branch.1 refs/changes/1/3456/4 
              ^

सूचना अंतिम स्थिति में नंबर एक URL देखेंगे। यह पैच नंबर है। तो तुम 2 nd पैच प्राप्त करना चाहते हैं, के रूप में ssh://[email protected]/branch.1 refs/changes/1/3456/2

-1

URL को संशोधित केवल Gerrit UI का उपयोग यह करने के लिए कोई उचित तरीका नहीं है। चेरी-"परिवर्तन सूची" के विशिष्ट "पैच सेट" को चुनें (उदा। यदि परिवर्तन सूची में 15 पैच सेट हैं और पैच सेट # 8 पर वापस लौटना चाहते हैं)। आवश्यक पैच सेट के लिए गेरिट यूआई से चेरी-पिक कमांड प्राप्त करें।

चेरी-पिक कमांड चलाएं, और git commit --amend का उपयोग करें, फिर अपना परिवर्तन दबाएं। यह नया पैच सेट उत्पन्न करेगा (ऊपर उदाहरण # 16 के लिए)।