Eclipse में svn के साथ बुरे बदलावों को वापस लाना


81

मान लीजिए कि मैंने तोड़फोड़ के भंडार में कुछ बुरे बदलाव किए हैं। फिर मैं अच्छे बदलाव करता हूं, जिसे मैं रखना चाहता हूं।

ग्रहण में उन बुरे परिवर्तनों को वापस लाने और अच्छे बदलावों को रखने का सबसे आसान तरीका क्या होगा? यह मानते हुए कि बुरे परिवर्तनों से संबंधित फाइलें अच्छे परिवर्तनों से संबंधित नहीं हैं। अगर खराब बदलावों के साथ ही फाइलों में अच्छे बदलाव किए गए तो चीजें कैसे बदलती हैं?

मैं ज्यादातर एक्लिप्स प्लगइन्स (Subclipse या Subversive) के माध्यम से ऐसा करने का एक तरीका ढूंढ रहा हूं, लेकिन कमांडलाइन कमांड भी दिलचस्प हैं।

जवाबों:


30

ऐसा करने के लिए आपके पास दो विकल्प हैं।

त्वरित और गंदे ctrlप्रोजेक्ट एक्सप्लोरर दृश्य में आपकी फ़ाइलों (उपयोग ) का चयन कर रहे हैं, उन्हें राइट-क्लिक करें, चुनें Replace with...और फिर आप के लिए Latest from Repository, या कुछ Branchसंस्करण में से सबसे अच्छा विकल्प चुनें । उन फ़ाइलों को प्राप्त करने के बाद आप उन्हें संशोधित करते हैं (एक स्थान के साथ, या कुछ ठीक करें, अपनी कॉल करें और उन्हें एक नया संशोधन बनाने के लिए प्रतिबद्ध करें।

एक और अधिक स्वच्छ तरीका Mergeटीम मेनू का चयन कर रहा है और विज़ार्ड के माध्यम से नेविगेट करता है जो आपको वास्तविक संशोधन में पुराने संस्करण को पुनर्प्राप्त करने में मदद करेगा।

दोनों आदेशों में उनके कमांड-लाइन समकक्ष हैं: svn revertऔर svn merge


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

79

ग्रहण गैनीमेडे (उप ग्रहण) में

प्रोजेक्ट / फ़ाइल का चयन करें जिसमें बुरा परिवर्तन है, और पॉप-अप मेनू से चुनें:

टीम -> इतिहास दिखाएं

उस प्रोजेक्ट / फ़ाइल से संबंधित संशोधन इतिहास टैब में दिखाए जाएंगे।

"खराब परिवर्तन" के लिए संशोधन करें और पॉप-अप मेनू से चुनें:

संशोधन X से परिवर्तन वापस करें

यह खराब संशोधन के भीतर फाइल में बदलावों (विलय) को संशोधित करेगा, जो खराब संशोधन से पहले संशोधन के साथ होगा।

यहाँ से दो परिदृश्य हैं:

  1. यदि आपने उस फ़ाइल के लिए कोई परिवर्तन नहीं किया है (खराब संशोधन उस फ़ाइल के लिए अंतिम संशोधन है), तो यह बस खराब संशोधन में किए गए परिवर्तनों को हटा देगा। उन परिवर्तनों को आपकी कार्यशील प्रति में मिला दिया जाता है, इसलिए आपको उन्हें करना होगा।

  2. यदि आपने उस फ़ाइल के लिए कुछ परिवर्तन किए हैं (खराब संशोधन उस फ़ाइल के लिए अंतिम संशोधन नहीं है), तो आपको मैन्युअल रूप से संघर्ष को हल करना होगा। मान लें कि आपके पास फ़ाइल readme.txt है, और खराब संशोधन संख्या 33 है। साथ ही, आपने संशोधन 34 में उस फ़ाइल के लिए एक और कमिटमेंट किया है । संशोधन 33 से रिवर्ट चेंजेस चुनने के बाद, आपके पास आपकी कार्य प्रतिलिपि में निम्नलिखित होंगे:

readme.txt.merge-left.r33 - खराब संशोधन

readme.txt.merge-right.r32 - खराब संशोधन से पहले

readme.txt.working - प्रतिलिपि संस्करण काम कर रहा है (यदि आप कोई भी अनधिकृत परिवर्तन नहीं करते हैं तो r34 में भी)

मूल readme.txt को विवादित के रूप में चिह्नित किया जाएगा, और इसमें कुछ मार्कर (<<<<<<<< .working आदि) के साथ मर्ज किए गए संस्करण (जहां खराब संशोधन से परिवर्तन हटा दिए जाते हैं) शामिल होंगे। यदि आप केवल खराब संशोधन से परिवर्तन हटाना चाहते हैं और उसके बाद किए गए बदलावों को रखना चाहते हैं, तो आपको बस इतना करना है कि मार्करों को हटा दें। अन्यथा, आप मूल फ़ाइल के ऊपर उल्लिखित 3 फ़ाइलों में से एक से सामग्री की प्रतिलिपि बना सकते हैं। जो कुछ भी आप चुनते हैं, जब आप कर रहे हैं, तो संघर्ष को हल करें

टीम - मार्क हल

अस्थायी फ़ाइलें हटा दी जाएंगी और आपकी फ़ाइल बदल दी जाएगी। 1 के रूप में, आपको परिवर्तन करने होंगे।

ध्यान दें कि यह svn रिपॉजिटरी में संशोधन इतिहास से संशोधन को नहीं हटाता है। आपने बस नया संशोधन किया है जहां खराब संशोधन से परिवर्तन हटा दिए जाते हैं।


14

यदि आप एक बार में 1 फ़ाइल करना चाहते हैं, तो आप एक ग्रहण एसवीएन प्लगइन स्थापित है मानकर फ़ाइल के लिए इतिहास दृश्य पर जा सकते हैं। "टीम-> इतिहास दिखाएं"

इतिहास दृश्य में, उस फ़ाइल का अंतिम अच्छा संस्करण ढूंढें, राइट क्लिक करें और "गेट कंटेंट्स" चुनें। यह आपके वर्तमान संस्करण को उस संस्करण की सामग्री से बदल देगा। जब आप इसे ठीक कर लेते हैं तब आप बदलाव कर सकते हैं।


6

विध्वंसक का उपयोग कर ग्रहण में:

अपनी परियोजना> टीम> मर्ज पर राइट क्लिक करें

मर्ज विंडो में, उन संशोधनों का चयन करें जिन्हें आप सामान्य रूप से वापस करना चाहते हैं, लेकिन चेकबॉक्स "उलट मर्ज" को भी सक्षम करें।

सामान्य रूप से विलय करें।


5

मैंने इस विषय पर कुछ दो ब्लॉग पोस्ट लिखे हैं। एक वह है जो उप-केंद्र केंद्रित है: http://markphip.blogspot.com/2007/01/how-to-undo-commit-in-subversion.html और एक जो कमांड-लाइन केंद्रित है: http: //blogs.nollab। नेट / तोड़फोड़ / 2007/07 / दूसरे-मौके /


1

स्वनबुक में एक खंड है कि कैसे सबवर्सन आपको बाद के संशोधनों में आए परिवर्तनों को प्रभावित किए बिना किसी विशेष संशोधन से परिवर्तनों को वापस करने की अनुमति देता है:

http://svnbook.red-bean.com/en/1.4/svn.branchmerge.commonuses.html#svn.branchmerge.commonuses.undo

मैं ग्रहण का अधिक उपयोग नहीं करता, लेकिन कछुआ वीवीएन में आप लॉग डायलॉग से ऐसा कर सकते हैं; केवल उस संशोधन पर राइट-क्लिक करें जिसे आप वापस करना चाहते हैं और "इस संशोधन से परिवर्तन वापस करें" का चयन करें।

इस मामले में कि जिन फ़ाइलों के लिए आप "खराब परिवर्तनों" को वापस लाना चाहते हैं, बाद के संशोधनों में "अच्छे बदलाव" थे, तो प्रक्रिया समान है। "खराब" संशोधन से हुए बदलावों को "अच्छे" संशोधनों से अछूता छोड़कर वापस कर दिया जाएगा, हालांकि आपको संघर्ष हो सकता है।


0

मेरे पास एक ही समस्या है लेकिन क्लीनअप एक्लिप्स विकल्प मेरे लिए काम नहीं करता है।

1) TortoiseSVN
2 स्थापित करें ) विंडोज़ एक्सप्लोरर पर जाएं और अपनी परियोजना निर्देशिका पर राइट क्लिक करें
3 च्वाइस क्लीनअप विकल्प (ब्रेक लॉक विकल्प की जांच करके)

यह कार्य करता है।

आशा है कि यह किसी की मदद करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.