क्या एक आकस्मिक "स्वेन रिवर्ट" से उबरने का एक तरीका है?


94

मैंने आज सुबह पैर में खुद को गोली मारने में कामयाब रहा:

  1. अपने प्रोजेक्ट में बदलाव के लिए काम करना शुरू किया
  2. फ़ाइलों के एक समूह में संपादन का एक गुच्छा बनाया
  3. एहसास हुआ कि मेरा दृष्टिकोण सभी गलत था, और मुझे शुरू करने की आवश्यकता थी
  4. मेरे प्रोजेक्ट के शीर्ष स्तर पर cd'd और "svn --recursive रिवर्ट।" मेरे स्थानीय सैंडबॉक्स को उसकी पूर्व-परिवर्तन स्थिति में पुनर्स्थापित करने के लिए।
  5. हॉरर के रूप में मुझे एहसास हुआ कि मेरे स्थानीय सैंडबॉक्स में कई अन्य बदलाव बकाया थे, और मैंने उन सभी को ठीक कर दिया था। (svn सर्वर पिछले शुक्रवार को डाउन हो गया था इसलिए मैं उन्हें चेक नहीं कर पाया था, और मैं सप्ताहांत में उनके बारे में भूल गया था)

सौभाग्य से इस मामले में मैंने शुक्रवार को काम छोड़ने से पहले एक "svn diff> temp.txt" किया था, और temp.txt फ़ाइल अभी भी मेरी हार्ड ड्राइव पर थी, इसलिए मैं उस फ़ाइल को "पैच" में फीड करने और अपने पुनर्प्राप्त करने में सक्षम था खोए हुए बदलाव।

लेकिन मेरे भविष्य के संदर्भ के लिए (यानी अगली बार जब मैं एक ही गूंगा गलती करता हूं) ... तो क्या svn को "svn revert" पूर्ववत बताने का कोई तरीका है? क्या svn कहीं भी स्थानीय / चेक-इन डिफरेंशियल का बैकअप रखता है?


34
IIRC TortoiseSVN रीसायकल की गई फ़ाइलों को रीसायकल बिन में ले जाता है, लेकिन मूल SVN कमांड-लाइन क्लाइंट के पास ऐसी बारीकियाँ नहीं होती हैं।
डारियो सोलेरा

1
मुझे रीसायकल बिन में फ़ाइल नहीं मिल रही है। मेरा भाग्य साथ नहीं दे रहा?
दलकांता

5
रीसायकल बिन के बारे में शीर्ष टिप्पणी। बस मेरा दिन बचा है!
आर्गेनिकपांडा

2
मेरा भि! बहुत बहुत धन्यवाद। उलटा फ़ाइल बस मेरी रीसायकल बिन में दिखाई दिया और बहाल किया जा सकता है।
sladda

1
तुम बस इस रीसायकल बिन बात के साथ मेरी पीठ बचाई !!!
इपिरोक्स

जवाबों:


79

नहीं, (बिलकुल) नहीं

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

केवल आपकी स्मृति उन्हें वापस ला सकती है।

अपवाद: आपके द्वारा जोड़ी गई नई फाइलें, केवल "स्थिति" खो चुकी हैं, लेकिन फ़ाइल इस निर्देशिका में रहेगी, केवल स्थिति अज्ञात है ("?")

प्लेटफ़ॉर्म / सॉफ़्टवेयर अपवाद: विंडोज पर TortoiseSVN का उपयोग करते हुए, रिवर्ट पहले फ़ाइलों को रीसायकल बिन में फेंकता है और फिर उन्हें श्रद्धेय करता है। आप फ़ाइलों को पुनर्प्राप्त करने के लिए रीसायकल बिन में खोद सकते हैं।


10
उपरोक्त के लिए परिशिष्ट: संस्करण नियंत्रण केवल आपकी मदद करता है यदि आप वास्तव में फाइलें करते हैं। यदि आप इस स्थिति में हैं कि आपकी कार्यशील प्रति को मारने से काम के घंटे खत्म हो जाएंगे, तो आप बार-बार कमिट नहीं कर रहे हैं।
myron-semack

1
सहमत ... इस मामले में svn सर्वर डाउन था, और इसीलिए मैंने अन-कमिटेड बदलाव अभी भी लंबित थे। : ^ (
जेरेमी फ्रेज़र

13
हाँ!!! आपके ओ / एस और / या आईडीई के आधार पर ठीक होने का एक तरीका है - दिल का दौरा पड़ने से पहले नीचे दिए गए अन्य उत्तरों को पढ़ें !!
HDave

2
यह सच नहीं है, इसका सरल संयोग की तुलना में थोड़ा अधिक जटिल है। पुनर्प्राप्ति टूल का उपयोग करें या यदि आपकी भाग्यशाली फाइलें रीसायकल बिन में हैं।
रफमूले

1
@RalphMclee: यह प्लेटफॉर्म और svn क्लाइंट पर निर्भर करता है। TortoiseSVN रीसायकल बिन में वापस नई फ़ाइलों को बचाएगा। यह केवल एक अपवाद है। और मुझे संदेह है कि एक पुनर्प्राप्ति उपकरण आपकी फ़ाइलों के परिवर्तनों को एक सुसंगत तरीके से फिर से संगठित कर सकता है। यह याद रखना बहुत आसान और स्पष्ट है: उल्टा आपके काम को नष्ट कर देगा, इसे सावधानी से उपयोग करें!
पीटर पार्कर

104

एक समाधान है ... अपने रीसायकल बिन पर जाएं आपको वहां हटाए गए फ़ाइल का नवीनतम संस्करण मिलेगा। कछुआ "फेंकने" को रीसायकल बिन में हर फ़ाइल को वापस करता है जो इसे वापस करता है।


2
संयोग से, यही कारण है कि TortoiseSVN श्रद्धा करते समय इतना धीमा लगता है। रीसायकल बिन में फ़ाइल ले जाना, रीसायकल बिन से भरा होने पर एक बहुत ही धीमा ऑपरेशन है। आप इस सुविधा को "सामान्य - संवाद 1" TortoiseSVN सेटिंग्स में अक्षम कर सकते हैं।
विम कॉइनन

8
धन्यवाद आदमी, तुमने मुझे बचा लिया! मैंने गलती से रिवर्ट किया और लगभग 2 सप्ताह का काम खो दिया। सौभाग्य से, मैंने इसे रीसायकल बिन में पाया।
आर्य लिवशिन

2
@ एरी लिवाशिन, आप 2 सप्ताह तक बिना कमिटमेंट के काम क्यों करेंगे? ऐसा लगता है कि आपको शाखाओं के बारे में अधिक जानने की आवश्यकता है।
जोएलफैन

वार्षिक रूप से आकाशवाणी ऐसा नहीं करता है
फिल हेल

धन्यवाद .. बहुत मदद ful।
प्रेम सिंह बिष्ट

32

वास्तव में तोड़फोड़ विशिष्ट नहीं है, लेकिन यदि आप ग्रहण के साथ काम कर रहे हैं, तो आप स्थानीय इतिहास में अपनी किस्मत आजमा सकते हैं।

अब, कुछ थोड़ा और अधिक तोड़फोड़ विशिष्ट: यदि आप अपने द्वारा किए जाने वाले प्रत्येक परिवर्तन के लिए एक शाखा नहीं बनाना चाहते हैं, तो आप स्थानीय रूप से चेक किए गए ट्रंक के एक जोड़े को रख सकते हैं (ट्रंक-मोडिफ -1, ट्रंक-मोडिफ -2) ।)। प्रत्येक "संशोधन" एक अलग पेड़ पर किया जाता है और आपको केवल एक सूची रखने की आवश्यकता होती है, जिसमें पता चलता है कि किस संशोधन के अनुरूप हैं।

या आप स्थानीय रूप से गिट का उपयोग कर सकते हैं लेकिन मैंने कभी इसकी कोशिश नहीं की।


3
FYI करें - राइट क्लिक संदर्भ मेनू "स्थानीय इतिहास से पुनर्स्थापित करें" के माध्यम से स्थानीय इतिहास पर जाएं।
HDave

ग्रहण के भाग के लिए, यहां एक और अधिक ठोस जवाब दिया गया है: stackoverflow.com/a/18220708/517705
Sk8erPeter

14

हाल ही में SVN पर नए फ़ाइल परिवर्तन (लगभग 10) नहीं करने की यह गलती हुई और वे सभी मेरी मूर्खतापूर्ण गलती के कारण गायब हो गए। लेकिन जो चीज मुझे बचाई गई वह थी संदर्भ मेनू में विंडोज़ "पिछले संस्करणों को पुनर्स्थापित करें" विकल्प। एक राहत और सबक सीखा गया था।


धन्यवाद! इसने मुझे घंटों काम करने से बचाया! मैंने पहले कभी विंडोज की यह सुविधा नहीं देखी, लेकिन इसने मेरी बेकन को बचा लिया!
निब्लीपग

इस प्रकार काम के दिनों में बचत के लिए मैं आपको $ 6000 कहां भेज सकता हूं? सबक सीखा ...
एचडीवी

शुक्र है कि इसने मेरा दिन बचा लिया।
Opax Web

मैं चेकपॉइंटिंग को ऐसे रिस्टोर ऑफ को बंद रखने का समर्थन करता हूं क्योंकि यह प्रदर्शन को बर्बाद करता है। हाल ही में, एक्लिप्स ने अपने प्रोजेक्ट्स के एक फ़ोल्डर को हटा दिया था, जिसमें इसके जीआईओ आर्काइव के साथ एक समस्या थी, जो इसके अंडर फीचर की समस्या के कारण था, और मैंने चाहा कि मैं इसे चालू कर दूं। हालांकि, Recuva नामक एक विंडोज प्रोग्राम ने मुझे डिलीट किए गए फाइल स्पेस को खोजकर बचाया। मैं बहुत प्रभावित था कि जब तक मैंने अपनी सभी फाइलें पुनर्प्राप्त नहीं कीं, तब तक प्रभावित ड्राइव में अतिरिक्त सामग्री न जोड़ें, और इसने मुझे हर स्रोत फ़ाइल को बदल दिया, जो कि मेरे सबसे हालिया बैकअप से एक सप्ताह पहले हुई थी। बाइनरी फाइलें ज्यादातर वसूली योग्य नहीं थीं।
कार्ल

8

यदि आप svn कमांड-लाइन क्लाइंट का उपयोग कर रहे हैं, तो आप फ़ाइलों को पुनर्प्राप्त नहीं कर सकते ।

लेकिन आप उन्हें पुनर्प्राप्त कर सकते हैं, यदि आप अपने svn ग्राहक के रूप में TortoiseSVN का उपयोग कर रहे हैं। TortoiseSVN स्वचालित रूप से उन्हें आपके रीसायकल बिन में ले जाएगा। आप एक आकस्मिक वापसी के बाद उन्हें वहां से पुनर्स्थापित कर सकते हैं।

यह TortoiseSVN में एक विन्यास योग्य विकल्प है। यह सेटिंग के अंतर्गत है -> डायलॉग 1 -> पुन: उपयोग करते समय रीसायकल बिन का उपयोग करें।

डिफ़ॉल्ट रूप से यह जाँच की जाती है, जिसका अर्थ है कि फ़ाइलों को रीसायकल बिन में स्थानांतरित किया जाता है। यदि आप चाहते हैं (ज्यादातर आप इसे अक्षम करने की परवाह नहीं करते हैं। यदि आपके पास कोई कारण है, तो कृपया मुझे भी बताएं)


1
बहुत बढ़िया! ... मुझे बचाया
जननी कुमार

6

अगर आप इंटेलीज का उपयोग कर रहे हैं तो आप भाग्यशाली व्यक्ति हैं। शीर्ष मेनू पर, आपके पास एक संस्करण नियंत्रण विकल्प है, और इसके तहत आपको स्थानीय इतिहास विकल्प मिलेगा, जहां आपको चयनित फ़ाइल के लिए सभी इतिहास मिलेंगे, उस फ़ाइल (अपडेट, कमिट, रिवर्ट) के साथ आपके द्वारा किए गए सभी ऑपरेशन सहित।

गुड लक, अर्कडे


1
और अगर यह एक नई फाइल थी, तो फाइल अपने आप डिलीट हो जाएगी। उस स्थिति में फ़ाइल को प्रोजेक्ट दृश्य से चुनें फ़ोल्डर का चयन करें और फिर 'स्थानीय इतिहास' चुनें। इंटेलीज ने दिन फिर से बचा लिया।
Nufail

4

इसके अलावा अगर आपने अपने .NET कोड (.cs फ़ाइलें आदि) को वापस कर दिया है और आपने अपने एप्लिकेशन को रिवर्ट करने से पहले बनाया है, लेकिन आपके द्वारा परिवर्तन किए जाने के बाद, आप कोड को देखने के लिए किसी भी रिफ्लेक्टर टूल का उपयोग करके असेंबली फ़ाइल से परिवर्तन पुनर्प्राप्त कर सकते हैं।


2

मैंने समाधान (Visual Studio + AnkhSVN) वापस कर दिया और कुछ फ़ाइलों के परिवर्तन खो दिए। मुझे रीसायकल बिन में फ़ाइल नहीं मिल रही है।

लेकिन: मैंने अपनी खोई हुई फाइलें हैंडी रिकवरी के साथ बरामद कीं, यानी एसवीएन ने केवल मेरी फाइलों को वापस लाने पर हटा दिया।

पुनर्प्राप्त फ़ाइलों को पुनर्प्राप्त करने के लिए किसी भी डेटा रिकवरी सॉफ़्टवेयर का उपयोग करें (जैसे ट्रायल हैंडी रिकवरी )


2

मैं ग्रहण में इतिहास ब्राउज़र में फ़ाइल (स्थानीय संशोधन) के स्थानीय परिवर्तन लॉग को खोजने के लिए बेहद भाग्यशाली था। मैं एक-एक करके मतभेदों का निरीक्षण कर रहा था और मैंने ओवरराइटिंग से पहले फाइल पर कुछ बचत की थी।


1

नहीं, एसवीएन एक लॉग या बैकअप नहीं रखता है (हालांकि अन्य उत्तरों में नोट किए गए TortoiseSVN के लिए एक समाधान है)।

लेकिन अगर कोई व्यक्ति उत्तर ब्राउज़ कर रहा है और उसने ओपी के प्रश्न में इस टिप्पणी को नोटिस नहीं किया है:

"सौभाग्य से इस मामले में मैंने शुक्रवार को काम छोड़ने से पहले एक" svn diff> temp.txt "किया था, और temp.txt फ़ाइल अभी भी मेरी हार्ड ड्राइव पर थी, इसलिए मैं उस फ़ाइल को" पैच "में फीड करने और पुनर्प्राप्त करने में सक्षम था मेरा खोया हुआ बदलाव। ”

मुझे लगता है कि यह 'svn diff' करने के लिए एक सामान्य प्रतिमान है, इससे पहले कि आप 'svn revert' करें। यदि आपको ऐसा करने की आदत है, भले ही यह अंतर केवल टर्मिनल पर प्रतिध्वनित हो, तो आपको अपने खोए हुए परिवर्तनों को पुनर्प्राप्त करने के लिए कम से कम एक संभव एवेन्यू मिल गया है।

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