2009-04-13 13 views
25

के बराबर हो जाता है तो मुझे svn में BASE संस्करण के बारे में कोई प्रश्न था। मुझे पता है कि आखिरी बार अपडेट से एक आइटम का पुराना संस्करण चलाया गया था और एसवीएन diff और स्थिति मूल रूप से इस संस्करण के खिलाफ चलती है। BASE अपडेट होने पर कब होता है? अपडेट होने पर इसे हेड में अपडेट किया जाता है? क्या यह हमेशा सत्य है भले ही अद्यतन के दौरान कोई संघर्ष हुआ हो? बीएएसई ने संघर्ष का सामना किया है? क्या मेरे पास अभी भी मेरे आखिरी अपडेट से संस्करण है (सबसे हालिया अपडेट से पहले जो एक संघर्ष हुआ) या यदि कोई संघर्ष हो तो भी इसे सिर में अपडेट किया जाएगा?
प्रतिबद्ध इसके अलावा जब SVN मैं आधार मानते हुए हूँ चलाया जाता है अपने स्थानीय परिवर्तन के साथ और कम से इस बिंदु आधार, सिर और अपने स्थानीय प्रतिलिपि अद्यतन हो जाता है सभी एक ही कर रहे हैं? बशर्ते प्रतिबद्धता सफल रही।जब svn BASE HEAD

उत्तर

38

प्रमुख भंडार में नवीनतम संशोधन है। आधार अंतिम संशोधन है जिसे आपने भंडार से प्राप्त किया है। सफल प्रतिबद्धता या अपडेट के बाद वे वही हैं।

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

+3

हालांकि, वे एक अद्यतन के बाद संक्षेप में एक ही हैं, हालांकि प्रतिबद्धता के बाद जरूरी नहीं है। निर्देशिकाओं और "मिश्रित संशोधन कार्य प्रतियों" पर विचार करें। – bendin

+0

स्पष्ट रूप से इन "मिश्रित संशोधन कार्य प्रतियां" बनाना - जिसका अर्थ है कि आप क्या हो रहा है इसके बारे में पूर्ण ज्ञान के बिना प्रतिबद्धता बना सकते हैं - "सबवर्सन के मौलिक नियम" में से एक का परिणाम है। –

7

आधार अपने काम की नकल के संशोधन के रूप में यह भंडार में मौजूद है। दूसरे शब्दों में, आपके द्वारा किए गए परिवर्तनों के बिना आपका संशोधन। तो यदि आप svn update हेड में फ़ाइल या फ़ोल्डर हैं, तो आधार और HEAD बराबर हैं।

जब कोई विरोध नहीं है, आधार से पहले अपने काम कर प्रति के साथ प्रतिबद्ध है कि विरोध हुआ संशोधन हो जाता है। एक आइटम पर

भागो svn info यह देखने के लिए आधार संशोधन है।

Revision Specifiers

0

सिद्धांत: सफल सफल रिकर्सिव अपडेट के बाद या अपनी सभी फ़ाइलों का मूल संस्करण स्विच करने के बाद सिर बन जाता है। एक प्रतिबद्ध या आंशिक अद्यतन के बाद कुछ फ़ाइलें HEAD संशोधन पर हो सकती हैं, लेकिन केवल एक अद्यतन के बाद जो फ़ाइलों को छोड़ नहीं पाया है, आप सुनिश्चित कर सकते हैं कि सभी फ़ाइलें एक ही संस्करण में हैं। (छोड़ने के कारण असंतुलित बाधाओं या संघर्ष हैं)।

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

जहां तक ​​मैं कह सकता हूं, केवल एक बार आपको यह सुनिश्चित करने की ज़रूरत है कि आप एक स्थिर संस्करण में हैं, जब आप एक कार्यशील प्रतिलिपि से शाखा बना रहे हैं।

+1

मैं सिर्फ यह जानना चाहता था कि कैसे svn काम करता है और इसके कार्यान्वयन विवरण। आपके प्रतिक्रिया के लिए धन्येवाद। – HeretoLearn

3

यह महत्वपूर्ण है जब आप लॉग देख रहे हों, क्योंकि यूआरएल के बिना svn लॉग आपके आधार लॉग दिखाता है, लेकिन आपके हेड लॉग को यूआरएल के साथ, इसलिए मैं हमेशा सभी परिवर्तनों को देखने के लिए "svn log -rHEAD: 1" का उपयोग करता हूं।