अद्यतन आइटम संशोधन करने के लिए बनाम संशोधन करने के लिए वापस


161

मैंने कछुए के साथ तोड़फोड़ का उपयोग करना शुरू कर दिया है। यदि मैं लॉग खोलता हूं और एक पुराने संशोधन पर राइट क्लिक करता हूं तो मुझे दो विकल्प दिखाई देते हैं जो ध्वनि करते हैं जैसे वे एक पुराने संस्करण में वापस आते हैं: "आइटम को पुनरीक्षण में अपडेट करें" और "इस संशोधन पर वापस लौटें"।

मैं समझता हूं कि पुराने संशोधन को अपडेट करने का उपयोग तब किया जाता है जब आप केवल एक पुराने संस्करण को देखना चाहते हैं लेकिन वास्तव में रिपॉजिटरी को नहीं बदलते हैं। रिवर्ट तब होता है जब आप वास्तव में खराब हो जाते हैं और चाहते हैं कि भंडार में नवीनतम संशोधन पुराने संस्करण के समान हो।

तो मान लीजिए कि संशोधन संशोधन 100 है और मैं 95 पर वापस लौट आया हूं। यह मेरी कार्यशील प्रति को वापस 95 में मर्ज कर देगा। फिर मैं उस परिवर्तन को रिपॉजिटरी में कर सकता हूं जो संशोधन 101 को सही बनाएगा? यदि मैं 95 में संशोधन करने के लिए वापस अपडेट करने के लिए कैसे अलग हूं? क्या यह अभी भी पिछले संशोधनों से बदलाव को उल्टा नहीं करता है? मैं उलझन में हूँ कि कैसे मेरी कार्यशील प्रतिलिपि की स्थिति एक पुराने संशोधन के लिए पुन: प्रस्तुत करने या अद्यतन करने के बाद भिन्न होती है।

जवाबों:


205

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

इस संशोधन पर वापस जाने से आपकी कार्यशील प्रतिलिपि में सभी परिवर्तन पूर्ववत हो जाएंगे जो चयनित संशोधन के बाद किए गए थे (आपके उदाहरण में संशोधन। 96,97,98,99,100) आपकी कार्य प्रतिलिपि अब संशोधित स्थिति में है

दोनों दर्शनीय स्थलों की फ़ाइल सामग्री एक समान है, हालाँकि पहले मामले में आपके पास एक अनमॉडिफ़ाइड वर्किंग कॉपी है और आप अपने बदलाव नहीं कर सकते हैं (जैसा कि आपकी वर्कचॉपी HEAD Rev 100 की ओर इशारा नहीं कर रही है) दूसरे मामले में आपके पास एक संशोधित वर्किंग कॉपी है जो हेड और आप काम और प्रतिबद्धता जारी रख सकते हैं


1
ठीक है, इसलिए मैं कहता हूं कि मैं संशोधन करना चाहता हूं और मेरी काम करने की प्रतिलिपि डेटा से बाहर है। कुछ भी नहीं मुझे फ़ाइलों को बदलने से रोक रहा है। क्या होगा अगर मैं फ़ाइलों में से एक को बदल दूं और इसे करने की कोशिश करूं। Im अनुमान तोड़फोड़ संघर्ष देखने के लिए और मुझे प्रस्तुत करने से पहले मेरी संशोधित कार्य प्रति में रिपॉजिटरी में नवीनतम संस्करण को मर्ज करने के लिए मजबूर करने वाला है।
एरिक अनास्तास

5
यदि आप HEAD की तुलना में पुराने BASE-Revision के साथ कोई आइटम बनाने का प्रयास करते हैं, तो आपको "प्रतिबद्ध विफल: आपकी वर्किंग कॉपी भविष्य की तारीख से बाहर हो जाएगी"
पीटर पार्कर

स्थानीय परिवर्तन (अनकम्यूटेड परिवर्तन) कैसे update toऔर क्या करते हैं revert to/from?
बाल्टोस्टर

दोनों विधियां स्थानीय परिवर्तनों को बरकरार रखती हैं, हालांकि स्थानीय परिवर्तन दोनों मामलों में टकराव का कारण बन सकते हैं और मामले में रोल बैक से संशोधनों को अन्य सभी उपयोगकर्ताओं के स्थानीय परिवर्तनों के साथ मिलाया जाता है। तो कम से कम अपने संशोधनों के एक पैच को बचाएं या एक शाखा के लिए प्रतिबद्ध करें।
पीटर पार्कर

31

यह समझने के लिए कि आपकी कार्यशील प्रतिलिपि की स्थिति दोनों परिदृश्यों में कैसे भिन्न है, आपको BASE संशोधन की अवधारणा को समझना चाहिए :

आधार

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

आपकी कार्यशील प्रतिलिपि में इस BASE संशोधन में प्रत्येक फ़ाइल (.svn फ़ोल्डर में छिपी) का एक स्नैपशॉट होता है, जिसका अर्थ है कि जब पिछली बार भंडार से पुनर्प्राप्त किया गया था । यह बताता है कि क्यों काम करने वाली प्रतियां 2x स्थान लेती हैं और यह कैसे संभव है कि आप नेटवर्क कनेक्शन के बिना स्थानीय संशोधनों की जांच कर सकते हैं और वापस भी कर सकते हैं।

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

पुनरीक्षण में संशोधन से BASE नहीं बदलता है। यह वैचारिक रूप से लगभग वही है जो फ़ाइल को पहले के संशोधन से मिलान करने के लिए मैन्युअल रूप से संपादित करता है।


स्वीकृत उत्तर से "दोनों स्थलों की फ़ाइल सामग्री समान है"। तो परवाह क्यों? यह उत्तर अंतिम अंतर की व्याख्या करता है, और बताता है कि "अपडेट" बनाम-ए-विज़ "रिवर्ट" करने के लिए प्रतिबद्ध होने पर अलग व्यवहार का कारण बनता है।
रडारबॉब

स्थानीय परिवर्तन (अनकम्यूटेड परिवर्तन) कैसे update toऔर क्या करते हैं revert to/from?
बाल्टोस्टर

5

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

संक्षेप में, "अपडेट" केवल आपकी वर्किंग कॉपी को प्रभावित करता है, लेकिन "रिवर्स मर्ज और कमिट" रिपॉजिटरी को प्रभावित करेगा।

यदि आप एक पुराने संशोधन के लिए "अपडेट" करते हैं, तो रिपॉजिटरी नहीं बदली है: आपके उदाहरण में, HEAD संशोधन अभी भी 100 है। आपको कुछ भी करने की आवश्यकता नहीं है, क्योंकि आप अपनी कामकाजी कॉपी के साथ सिर्फ गड़बड़ कर रहे हैं। यदि आप अपनी वर्किंग कॉपी में संशोधन करते हैं और कमिट करने की कोशिश करते हैं, तो आपको बताया जाएगा कि आपकी वर्किंग कॉपी आउट-ऑफ-डेट है, और आपको कमिट करने से पहले अपडेट करना होगा। यदि कोई समान रिपॉजिटरी पर काम करने वाला कोई व्यक्ति "अपडेट" करता है, या यदि आप दूसरी वर्किंग कॉपी की जांच करते हैं, तो यह r100 होगा।

हालांकि, यदि आप एक पुराने संशोधन में "रिवर्स मर्ज" करते हैं, तो आपकी काम की प्रतिलिपि अभी भी HEAD (यह मानते हुए कि आप अप-टू-डेट हैं) पर आधारित है - लेकिन आप अवांछित परिवर्तनों को दूर करने के लिए एक नया संशोधन बना रहे हैं। आपको इन परिवर्तनों को करना होगा, क्योंकि आप रिपॉजिटरी बदल रहे हैं। एक बार हो जाने के बाद, HEAD पर आधारित कोई भी अपडेट या नई वर्किंग कॉपियाँ आपके द्वारा अभी-अभी की गई सामग्री के साथ r101 दिखाएंगी।


5

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

यदि आप पूर्व में किए गए परिवर्तन को पूर्ववत करना चाहते हैं, तो इसके बजाय इस संशोधन में वापस लौटें

- टीएसवीएन से डॉक्टर की मदद लें

यदि आप अपनी वर्किंग कॉपी को पहले के रिव्यू में अपडेट करते हैं, तो यह केवल आपकी खुद की वर्किंग कॉपी को प्रभावित करता है, जब आप कुछ बदलाव करते हैं, और आप कमिटमेंट करना चाहते हैं, तो आप असफल हो जाएंगे, TSVN आपको अपने WC को लेटेस्ट रिवीजन में अपडेट करने के लिए पहले अलर्ट कर देगा यदि आप रिवर्ट कर देते हैं एक संशोधन करने के लिए, आप रिपॉजिटरी के लिए प्रतिबद्ध कर सकते हैं। हर कोई अपडेट करने के बाद वापस वापस आ जाएगा।


2

कछुआ संदर्भ से पाठ:

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

यदि आप पूर्व में किए गए परिवर्तन को पूर्ववत करना चाहते हैं, तो इसके बजाय इस संशोधन में वापस लौटें।

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

यदि आपकी कार्यशील प्रति असमतल अवस्था में है, तो इस क्रिया को करने के बाद आपकी कार्यशील प्रति संशोधित रूप में दिखाई देगी। यदि आपके पास पहले से ही स्थानीय परिवर्तन हैं, तो यह कमांड आपके कार्य की प्रतिलिपि में पूर्ववत परिवर्तनों को मर्ज कर देगा।

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

यदि इस क्रिया को करने के बाद आप यह निर्णय लेते हैं कि आप पूर्ववत करना चाहते हैं और अपनी कार्यशील प्रतिलिपि को अपनी पिछली असंबद्ध स्थिति में वापस लाना चाहते हैं, तो आपको TortoiseSVN का उपयोग करना चाहिए → विंडोज एक्सप्लोरर के भीतर से वापस लौटें, जो इस रिवर्स मर्ज कार्रवाई से किए गए स्थानीय संशोधनों को त्याग देगा।

यदि आप केवल यह देखना चाहते हैं कि फ़ाइल या फ़ोल्डर पहले के संशोधन की तरह दिखते हैं, तो अद्यतन का उपयोग करें या संशोधन को सहेजें ... के बजाय।


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