2012-12-05 30 views
8

का उपयोग करके संशोधनों को हटाने से मैंने TortoiseSVN का उपयोग करके अपने एसवीएन सेवर में कुछ खराब कोड परिवर्तन किए।TortoiseSVN

अब मुख्य संशोधन 155 है, लेकिन मैं अंतिम 2 संशोधन को हटाना चाहता हूं ताकि सिर संशोधन 153 हो। दूसरे शब्दों में, मैं अपने पिछले दो कामों को "पूर्ववत करना" चाहता हूं।

मैं TortoiseSVN का उपयोग करके यह कैसे कर सकता हूं? क्या TortoiseSVN मेनू में कोई विकल्प मौजूद है, या क्या मुझे कमांड लाइन का उपयोग करने की आवश्यकता है?

+0

मैं कहना है "इंटरेक्टिव रिबेस" चाहते हैं, लेकिन मुझे यकीन है कि अगर सही ... –

+0

@KerrekSB है नहीं कर रहा हूँ: यह पूरी तरह से सही है ... Git :-) के लिए। – sleske

उत्तर

5

यदि आप SVN लॉग खोलते हैं, तो आप तो एक संशोधन पर राइट क्लिक करें और इस संशोधन करने के लिए विकल्पों रिवर्ट का उपयोग या इस संशोधन से परिवर्तन पूर्ववत कर सकते हैं। ये दोनों विकल्प आपकी कार्यशील प्रति अपडेट करेंगे (जिसे आप तब कर सकते हैं)।

TortoiseSVN में संशोधनों को हटाने के लिए कोई विकल्प नहीं है।

+0

यदि आपको वास्तव में हटाने की आवश्यकता है (मैं तब तक सुझाव नहीं देता जब तक कि कोई बड़ा भ्रष्टाचार न हो), यहां कुछ जानकारी है [यहां] (http://superuser.com/questions/95432/want-to-delete-revisions-from -मेरे-svn-भंडार)। –

0

कमांड लाइन से:

रिवर्ट एक फाइल करने के लिए परिवर्तन:

svn merge -r <newBadRev>:<oldRevToMergeBackTo> <filename> 

उदाहरण के लिए:

svn merge -r 155:153 myfile.cpp 
0

दुर्भाग्य से, TortoiseSVN (या किसी अन्य SVN ग्राहक) के साथ कोई है वास्तव में एक संशोधन को हटाने का तरीका, इस अर्थ में कि यह इतिहास से पूरी तरह से गायब हो जाता है। एक एसवीएन भंडार का इतिहास बदलना मुश्किल है, और सर्वर पर हेरफेर की आवश्यकता है - यह प्रश्न देखें: Why isn't obliterate an essential feature of Subversion?

हालांकि, आप एक नया चेकइन बनाकर चेकइन को "पूर्ववत" कर सकते हैं, जो इसे वापस बदलता है। यह आमतौर पर "रिवर्स विलय" नामक तकनीक के साथ किया जाता है। उदाहरण देखें Retract accidental checkin

1

अपने अपडेट किए गए काम कर प्रतिलिपि की जड़ में होने के नाते, आप निम्न आदेश का उपयोग करना चाहिए:

svn merge -rHEAD:153 . 

कि 'पूर्ववत करें' होगा संशोधन 153 से अपने सभी परिवर्तनों को तो अपने संशोधन 156 संशोधन 153 की तरह दिखाई देगा कि

बाद में प्रतिबद्ध करना न भूलें!

आप TortoiseSVN से ही कर सकते हैं: 'शो लॉग' इंटरफ़ेस खोलें संशोधन 153 का चयन करें, यह राइट क्लिक करें और चुनें 'इस संशोधन से परिवर्तनों को पलट दें'।

0

मैंने Tortoise website से इन निर्देशों का उपयोग किया है।

लेकिन के बाद COMMIT पर क्लिक करना महत्वपूर्ण है। जब तक मुझे एहसास नहीं हुआ तब तक मैं पागल हो रहा था।

आप एक पुराने संशोधन अपने सिर संशोधन निम्न कार्य करने की जरूरत है:

  1. फ़ाइल या फ़ोल्डर जिसमें आप परिवर्तनों को वापस करने की आवश्यकता का चयन करें। यदि आप सभी परिवर्तनों को वापस करना चाहते हैं, तो यह शीर्ष स्तर फ़ोल्डर होना चाहिए।

  2. टोर्टोइज एसवीएन → संशोधनों की एक सूची प्रदर्शित करने के लिए लॉग दिखाएं चुनें। आपको संशोधित संशोधन (ओं) को दिखाने के लिए आपको सभी या अगले 100 का उपयोग करने की आवश्यकता हो सकती है।

  3. चयनित संशोधन पर राइट क्लिक करें, फिर संदर्भ मेनू का चयन करें → इस संशोधन पर वापस जाएं। यह चयनित संशोधन के बाद सभी परिवर्तनों को त्याग देगा।

  4. प्रतिबद्ध बनाएं।