'चेकइन' और 'चेकआउट' तरीकों कैसे एक JCR भंडार सामग्री के संस्करणों को ट्रैक करता है के साथ क्या करना है। 'चेकआउट' विधि भंडार में संकेत देती है कि आपका क्लाइंट एप्लिकेशन (संभावित) कुछ संस्करण योग्य सामग्री को संशोधित करने जा रहा है। 'चेकइन' विधियां उस भंडार में संकेत देती हैं कि आपके क्लाइंट एप्लिकेशन ने संस्करण योग्य सामग्री में परिवर्तन किए हैं, और रिपॉजिटरी को संस्करण इतिहास में उन परिवर्तनों (उदा।, नया संस्करण) रिकॉर्ड करना चाहिए।
उदाहरण के लिए, आइए कल्पना करें कि हम '/ a/b/c' पर एक नोड बनाना चाहते हैं जो संस्करण योग्य है। यह निम्न कोड जैसे कुछ का उपयोग करके किया जाता है:
सामग्री बनाने के लिए, आप बस 'मिश्रण: संस्करण योग्य' मिश्रण (या एक मिश्रण या प्राथमिक नोड प्रकार का उपयोग करें जो 'मिश्रण: संस्करण योग्य' से प्राप्त होता है) फिर अपने परिवर्तनों को बचाओ। उस बिंदु पर, भंडार उस नोड (या सबग्राफ) के संस्करण संस्करण को आरंभ करेगा।
Node b = session.getNode("https://stackoverflow.com/a/b");
Node newNode = b.addNode("c");
newNode.addMixin("mix:versionable");
// set other properties and create children
session.save();
पर 'session.save()', भंडार 'मिश्रण: versionable' नोट करेंगे mixin और कम से '/ एक/बी/सी' सामग्री के लिए संस्करण इतिहास प्रारंभ हो जाएगा। इस बिंदु से, आपका क्लाइंट एप्लिकेशन इतिहास में नए संस्करण जोड़ने के लिए 'चेकआउट' और 'चेकइन' का उपयोग करता है।
VersionManager vm = session.getWorkspace().getVersionManager();
vm.checkout("https://stackoverflow.com/a/b/c");
// make some changes at/under '/a/b/c'
session.save();
// Can make more changes and save, if desired
vm.checkin("https://stackoverflow.com/a/b/c");
जब 'चेकइन' कहा जाता है, भंडार की '/ एक/बी/सी' वर्तमान स्थिति का समय लगेगा और संस्करण इतिहास में जोड़ना होगा। बेशक, जब भी आप वर्जन योग्य नोड्स में परिवर्तन करना चाहते हैं, तो इस प्रक्रिया को दोहराया जाता है।
स्रोत
2010-10-18 16:09:54
क्या 'vm.checkout' उस संस्करण का इतिहास बना देता है नोड के बच्चे होने पर केवल नोड या रिकर्सिव हो? – Emerald214