ओह। इसका उत्तर वास्तव में एक जटिल है जिसमें बहुत अधिक आर्कएसडीई पृष्ठभूमि की आवश्यकता होती है, इसलिए मैं यथासंभव संक्षिप्त होने का प्रयास करूंगा।
नोट मैं सुपर भयानक संस्करण सफेद कागज से कुछ आरेखों का उल्लेख करने जा रहा हूं जो आप ईएसआरआई साइट में पा सकते हैं । यदि आप संस्करण के साथ काम कर रहे हैं, तो मैं आपको इसे पढ़ने के लिए प्रोत्साहित करता हूं।
फिर, आपको यह समझने की आवश्यकता है कि राज्य (यानी राज्य के पेड़ से एक नोड) और एक नामित संस्करण (यानी एक राज्य की ओर इशारा करते हुए लेबल ) के बीच क्या संबंध है ।
एक सामान्य डेटाबेस नीचे की स्थिति जैसा दिख सकता है:
यहाँ, आपके पास डेटाबेस में चार संस्करण हैं (संस्करण A, संस्करण B, संस्करण C और DEFAULT)। लेकिन शायद, मैं खुद से थोड़ा आगे निकल रहा हूं। चलो एक राज्य क्या है के साथ शुरू करते हैं ।
आप एक "लेनदेन" के रूप में एक राज्य के बारे में सोच सकते हैं - एक तार्किक इकाई जिसमें एक से कई संपादन होते हैं - या कई - टेबल। इसमें दो आवेषण शामिल हो सकते हैं "फ़ीचर क्लास ए", "फ़ीचर क्लास बी" से एक डिलीट और एक संशोधित (प्रभावी रूप से एक डिलीट + एक इंसर्ट) "फ़ीचर क्लास एक्स"। सभी एक में बांटे गए।
आइए राज्य आईडी 0 से शुरू होने वाले एक छोटे, सरल, ArcSDE स्टेट आरेख को देखें:
यदि आप राज्य 0 पर शुरू करते हैं और आप एक संपादन कार्य में एक या कई तालिकाओं का संपादन करते हैं, तो आप एक बच्चे की अवस्था 1 बना देंगे और उस एक को चालू स्थिति आईडी बना देंगे । संपादन का एक और बाद का समूह बाल राज्य बनाएगा 2. यदि आप पूर्ववत करना चाहते हैं, तो आपको किसी भी तरह से राज्य आईडी को संशोधित करने की आवश्यकता नहीं है - आपको केवल वर्तमान सक्रिय राज्य आईडी को 1, या 0 में बदलने की आवश्यकता है (निर्भर करता है) तुम कितनी दूर जाना चाहते हो)। एक Redo विपरीत है - बस वर्तमान सक्रिय राज्य आईडी को आगे बढ़ाएं - जहां तक आप जाना चाहते हैं, आगे बढ़ें।
यह है कि ArcSDE संस्करण में पूर्ववत / फिर से कैसे काम करता है।
ठीक है, आगे बढ़ रहे हैं। कहो, कि आप एक संपादन स्थायी बनाना चाहते हैं (यानी, आप सहेजना चाहते हैं)। आपको क्या करना है? खैर, बचत केवल एक संस्करण लेबल को हथियाने और इसे एक विशेष स्थिति में आगे बढ़ाना है। इस पर मुहर लगाने और "यह वही है जो संस्करण एक जैसा दिखना चाहिए" की तरह है। इसलिए यदि आप पहले आरेख को देखते हैं, तो आप देखेंगे कि इसके चार नामित संस्करण हैं ।
- संस्करण B राज्य आईडी 1 की ओर इशारा करता है
- संस्करण ए राज्य आईडी 3 के लिए एक अंक
- संस्करण सी राज्य आईडी 5 को इंगित करता है
संस्करण "SDE.DEFAULT" राज्य आईडी 4 को इंगित करता है
कृपया ध्यान दें कि यह आरेख, लोकप्रिय विश्वास के बावजूद, आपको तार्किक अभिभावक-बाल संबंध के बारे में कुछ भी नहीं बताता है जो उनके पास है। पहले आरेख के लिए तार्किक अभिभावक-बच्चे का संबंध इस तरह प्रभावी हो सकता है:
यह पैरेंट-चाइल्ड रिलेशनशिप है जिसे आप ArcMap / ArcCatalog में देखते हैं। यह उद्देश्य, के लिए है प्रतिबंधित जो संस्करणों आप के खिलाफ सामंजस्य कर सकते हैं। इस बिंदु पर, आप (अधिकार से) अपने आप से पूछ सकते हैं, मुझे नरक की आवश्यकता क्यों है? उत्तर, वर्कफ़्लोज़ के संस्करण में निहित है । पता चला है, लोग काफी समय से वर्जनिंग का उपयोग कर रहे हैं और इन्हें कैसे तैयार किया जाए, इसके कुछ पसंदीदा तरीके हैं, लेकिन यह एक और दिन का विषय है क्योंकि मैं आज आपके प्रश्न का उत्तर देना चाहता हूं :)
आगे बढ़ते रहना...
ठीक है, इसलिए इस नाम वाले संस्करण और क्या करते हैं? खैर, वे प्रभावित करते हैं कि इस प्रक्रिया को संपीड़ित व्यवहार कैसे कहा जाता है ।
संपीड़न सभी मध्यवर्ती राज्यों को हथियाने के बारे में है जो आवश्यक नहीं हो सकते हैं, और अनावश्यक लोगों को हटाने के साथ-साथ उनका संयोजन भी कर सकते हैं। आप ArcCatalog के माध्यम से ArcSDE कम्प्रेस ऑपरेशन को ट्रिगर कर सकते हैं, एक सेवा को सेटअप कर सकते हैं जो इसे हर एक समय पर करता है, और कुछ ArcMap एडिट ऑपरेशंस मिनी-कम्प्रेस ऑपरेशंस (यानी सिर्फ छोटी शाखाओं के लिए उपयोग किए जा रहे हैं) को ट्रिगर करेगा।
बाईं ओर का चित्र संकुचित होने से पहले एक राज्य का पेड़ दिखाता है, और दाईं ओर वाला इसे संकुचित होने के बाद सही दिखाता है:
समझने के लिए एक महत्वपूर्ण अवधारणा (जिसे मैं आपके प्रश्न का उत्तर देने के लिए एक बार आपको संदर्भित करूंगा) यह है कि हर एक राज्य को संपीड़ित करने के लिए एक संभावित उम्मीदवार है - उन राज्यों को छोड़कर जिनके पास लेबल (अर्थात नामित संस्करण) हैं।
आप देख सकते हैं कि सेक से पहले कुछ अतिरिक्त - अनावश्यक अवस्थाएँ हैं। वास्तव में, पूरी [3,4,5] शाखा हटा दी गई। 5 में एक नामित संस्करण होता, तो अंतिम परिणाम बहुत अलग होता।
संपीड़ित ऑपरेशन आपके डेटाबेस पर जगह बचाने के लिए रिकॉर्ड हैं जिन्हें आपको अब ज़रूरत नहीं है।
ठीक है, आगे बढ़ रहे हैं।
अंतिम अवधारणा जिसे आपको समझने की आवश्यकता है, वह सामंजस्य है - जो प्रभावी रूप से दो शाखाओं को एक में विलय कर रहा है।
तो चलिए वापस अपने पहले आरेख पर चलते हैं। यह कहें कि आप SDE.DEFAULT के विरुद्ध संस्करण A को समेटना चाहते हैं।
आइए पुनर्कथन करें: विभिन्न राज्य आईडी की ओर इशारा करते हुए चार नामित संस्करण। तो पहली चीज जो हमें करनी है, वह लक्ष्य संस्करण के तहत एक बच्चे की स्थिति है, इसलिए हम राज्य आईडी 4 के तहत एक बच्चा राज्य बनाते हैं, हमारे उदाहरण में, मैं उस राज्य आईडी को 20 कहता हूं।
अगला चरण दोनों संस्करणों के बीच अंतर की गणना करना है (विवरण इस पोस्ट के लिए बहुत लंबा है, लेकिन मैं आपको बता सकता हूं कि वे अंतर कर्सर के साथ किए जाते हैं ) और फिर उन अंतरों को उस नई राज्य आईडी 20 (नीली रेखा) पर लागू करते हैं।
यह कहें कि आप अधिक संपादन करने का निर्णय लेते हैं या यह कि आपको संघर्ष मिला और एक संस्करण, या दूसरे से पंक्तियाँ चुन रहे हैं। इससे कोई फर्क नहीं पड़ता। वे सिर्फ नए संपादन हैं, और एक संपादन ऑपरेशन के अंदर किया जाता है, क्योंकि बच्चे उस शाखा के नीचे होते हैं जिसे आपने विलय किया था। इस उदाहरण में, मैंने सामंजस्य के बाद संपादन के दो और लगातार समूह किए हैं।
लवली।
तो अब कहते हैं कि आप संस्करण को " पोस्ट " करने के लिए तैयार हैं । इसका क्या मतलब है? वह केवल लेबल को पकड़ रहा है और उन्हें उसी राज्य आईडी की ओर इशारा करता है। यहाँ, मैं संस्करण A से SDE.DEFAULT पोस्ट करने जा रहा हूँ। यह है जो ऐसा लग रहा है:
TADAAA! इसलिए अब संस्करण A और SDE.DEFAULT एक ही राज्य आईडी की ओर इशारा कर रहे हैं, और इस प्रकार वे एक जैसे दिखते हैं।
ठीक है, तो अब मैं अंत में आपके सवाल का जवाब दे सकता हूं।
क्या आप किसी पोस्ट को पूर्ववत कर सकते हैं? ArcGIS प्रलेखन आपको बता देंगे कोई - इसके साथ गड़बड़ नहीं है। ऐसा न करें, क्योंकि आप इस तर्क के साथ खिलवाड़ करेंगे, और यदि आप नहीं जानते कि आप क्या कर रहे हैं, तो आप अपने डेटा को दूषित कर सकते हैं।
लेकिन सच में, यह सब करने के लिए आर्कस् संस्करण संस्करण तालिकाओं में से एक का एक अद्यतन करना है - संस्करण तालिका, और लेबल की प्रविष्टि (उर्फ नाम संस्करण) को संशोधित करना है। हमारे उदाहरण में, राज्य आईडी 21 को इंगित करें, और आपके पास बस उस संपूर्ण संपादन को पूर्ववत करें। इसे 3 पर सेट करें, और आप बस पूरे सामंजस्य को पूर्ववत् करें। इसे 5 पर सेट करें, और अब आप पूरी तरह से अलग जगह पर हैं। चाहे वहाँ हो या वहाँ संघर्ष नहीं अप्रासंगिक हैं।
बेशक, यह मानता है कि एक संपीडन नहीं हुआ है। आइए उस मामले पर विचार करें जहां कंप्रेसेज़ ठीक उसी समय हो रहा हो जब आप SDE तालिका को अपडेट कर रहे हों। याद रखें, यदि आप - या कोई और - आपके द्वारा पोस्ट किए जाने के बाद एक कम्प्रेस को अंजाम देता है, तो पेड़ कैसा दिखता है:
आप संपीड़ित के बाद सुलह पूर्ववत कर सकते हैं? खैर, इस मामले में, नहीं । संपीडन ने उस पूरी शाखा को उड़ा दिया है, जिससे आप पूर्ववत नहीं कर सकते - वह डेटा हटा दिया गया है। अगर उस शाखा पर एक और नाम का संस्करण होता, तो सेक उस शाखा को नष्ट नहीं करता। मुझे उम्मीद है कि अब तक यह समझ में आता है।
तो क्या आपको ऐसा करना चाहिए? आपके ऊपर, यदि आप नहीं जानते कि आप क्या कर रहे हैं, तो आप आसानी से एक सेक के बाद डेटा को ढीला कर सकते हैं।