इंटरलीव्ड डेल्टा
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
(Learn how and when to remove this template message)
|
इंटरलीव्ड डेल्टा, या एससीसीएस बुनाई एक फाइल के सभी संशोधनों को संग्रहीत करने के लिए स्रोत कोड नियंत्रण प्रणाली द्वारा उपयोग की जाने वाली एक विधि है। सभी संशोधनों की सभी पंक्तियाँ डेटा के एक ही ब्लॉक में एक साथ "बुनी" गई हैं,और बीच-बीच में नियंत्रण निर्देशों के साथ यह दर्शाता है कि फाइल के किस संशोधन में कौन सी पंक्तियाँ शामिल हैं। इंटरलीव्ड डेल्टा को पारंपरिक रूप से लाइन ओरिएंटेड टेक्स्ट फाइलों को ध्यान में रखकर लागू किया जाता है, हालांकि इस विधि को बाइनरी फाइलों पर भी लागू होने से कोई नहीं रोकता है।
इंटरलीव्ड डेल्टा को पहली बार 1975 में SCCS में मार्क रोशकिंड द्वारा लागू किया गया था। इसका बनावट सभी संस्करणों को एक ही समय में उपलब्ध कराता है, जिससे किसी भी संशोधन को पुनः प्राप्त करने में समान समय लगता है। इसमें एक ब्लॉक में प्रत्येक पंक्ति (दोषी ठहराने वाले) के लेखक की पहचान करने के लिए पर्याप्त जानकारी भी शामिल है।[1] दूसरी ओर क्योंकि किसी फाइल के सभी संशोधनों को पार्स किया जाता है, अधिक संशोधन जोड़े जाने पर प्रत्येक संचालन धीमा हो जाता है। इंटरलीव्ड डेल्टा शब्द बाद में 1982 में संशोधन नियंत्रण प्रणाली के लेखक वाल्टर एफ. टिची द्वारा निर्मित किया गया था, जो एससीसीएस बुनाई की तुलना आरसीएस में अपने नए प्रतिलोम डेल्टा तंत्र से करता है।[2]
एससीसीएस में कार्यान्वयन
एससीसीएस में, निम्नलिखित बुनाई ब्लॉक
^एआई 1 ^ई.2 फू ^एई 2 छड़ ^एआई 2 बाा ^एई 2 ^एई 1
एक फाइल का प्रतिनिधित्व करता है जिसमें पहली रिलीज़ में पंक्तियाँ foo और bar और दूसरे संशोधन में पंक्तियाँ bar और baz शामिल हैं। स्ट्रिंग ^ए एक नियंत्रण-ए वर्ण को दर्शाता है।
इंटरलीव्ड डेल्टा ब्लॉक में नियंत्रण रेखाओं के निम्नलिखित अर्थ हैं:[3]
- ^एआई सीरियल लाइनों का एक ब्लॉक शुरू करें जिसे नामित सीरियल नंबर के साथ डाला गया था।
- ^AD सीरियल नामित सीरियल नंबर के साथ हटाए गए लाइनों का एक ब्लॉक प्रारंभ करें।
- ^AE सीरियल संबंधित ^AI या ^AD स्टेटमेंट के लिए ब्लॉक एंड जो समान सीरियल नंबर का उपयोग करता है।
फायदे
ऐसे इंटरलीव्ड डेल्टा ब्लॉक से किसी भी संशोधन को निकालने में लगने वाला समय संग्रह के आकार के समानुपाती होता है। संग्रह का आकार सभी संशोधनों में सभी अलग-अलग पंक्तियों के आकार का योग है।
एक विशिष्ट संशोधन निकालने के लिए, संरचनाओं की एक सरणी का निर्माण करने की आवश्यकता है, जो यह बताए कि इंटरलीव्ड डेल्टा में सीरियल नंबर द्वारा टैग किया गया एक विशिष्ट ब्लॉक, आउटपुट में कॉपी किया जाएगा या नहीं। मूल SCCS कार्यान्वयन की लगभग आवश्यकता है। किसी विशिष्ट संशोधन को निकालने का तरीका जानने के लिए डेल्टा में प्रत्येक भिन्न क्रमांक के लिए 100 बाइट्स का भंडारण। इस प्रकार एक मिलियन डेल्टा वाली SCCS इतिहास फाइल को अनपैक करने के लिए 100 MBytes वर्चुअल मेमोरी की आवश्यकता होगी। आकार लगभग कम किया जा सकता है। यदि कोई एनोटेटेड फाइल पुनर्प्राप्ति की आवश्यकता नहीं है तो प्रति डेल्टा 32 बाइट्स।
बुनाई विधि के लाभ निम्नलिखित हैं:
- किसी फाइल के सभी संशोधनों के लिए समान पुनर्प्राप्ति समय।
- बिना किसी अतिरिक्त लागत के अंतिम परिवर्तन के संशोधन, अंतिम परिवर्तन के लेखक और अंतिम परिवर्तन के समय के साथ फाइल की सभी पंक्तियों को एनोटेट करने की संभावना।
- बिना किसी अतिरिक्त लागत के गैर-अतिव्यापी शाखाओं में विलय की संभावना।
इंटरलीव्ड डेल्टा का उपयोग करने वाला सॉफ़्टवेयर
- स्रोत कोड नियंत्रण प्रणाली
- सन वर्कशॉप टीमवेयर
- बिटकीपर[4]
जीएनयू बाज़ार ने 2006 में इंटरलीव्ड डेल्टा का उपयोग करने का इरादा किया था,[5] लेकिन वास्तव में bzr 0.1 में लागू होने के बाद खराब प्रदर्शन के कारण इसे छोड़ दिया गया था। यह अभी भी एक बुनाई-शैली मर्ज एल्गोरिदम प्रदान करता है।[6]
यह भी देखें
संदर्भ
- ↑ http://www.basepath.com/aup/talks/SCCS-Slideshow.pdf Rochkind, Marc. “The source code control system (SCCS).” IEEE Transactions on Software Engineering 1, no. 4 (1975)
- ↑ Tichy, Walter (1982). "Design, implementation, and evaluation of a Revision Control System". ICSE '82 Proceedings of the 6th International Conference on Software Engineering: 58–67. Retrieved 12 June 2012.
- ↑ http://sccs.sourceforge.net/man/sccsfile.4.html sccsfile(4) manual page
- ↑ "बाइनरी बुनाई का परिचय". www.bitkeeper.org.
- ↑ "BZR सामने की ओर अपना रास्ता बना रहा है". blog.fxa.org. Archived from the original on 6 October 2006. Retrieved 12 January 2022.
- ↑ "BzrWeaveFormat". Bzr Wiki. Retrieved 16 January 2020.