इंटरलीव्ड डेल्टा

From Vigyanwiki
Revision as of 20:57, 20 July 2023 by alpha>ManishV

इंटरलीव्ड डेल्टा, या SCCS वीव एक फाइल के सभी संशोधनों(रिवीजनस) को संग्रहीत करने के लिए सोर्स कोड नियंत्रण प्रणाली द्वारा उपयोग की जाने वाली एक विधि है। सभी संशोधनों(रिवीजनस) की सभी पंक्तियाँ डेटा के एक ही ब्लॉक में एक साथ "वीव" की गई हैं, और बीच-बीच में कंट्रोल इंस्ट्रक्शन के साथ यह दर्शाता है कि फाइल के किस संशोधन में कौन सी पंक्तियाँ शामिल हैं। इंटरलीव्ड डेल्टा को पारंपरिक रूप से लाइन ओरिएंटेड टेक्स्ट फाइलों के साथ ध्यान में रखकर लागू किया जाता है, हालांकि इस विधि को बाइनरी फाइलों पर भी लागू कर सकते है।

इंटरलीव्ड डेल्टा को पहली बार 1975 में SCCS में मार्क रोशकिंड द्वारा लागू किया गया था। इसका डिजाइन सभी संस्करणों को एक ही समय में उपलब्ध कराता है, जिससे किसी भी संशोधन को पुनः प्राप्त करने में समान समय लगता है। इसमें एक ब्लॉक में प्रत्येक पंक्ति (दोषी ठहराने वाले) के लेखक की पहचान करने के लिए पर्याप्त जानकारी भी शामिल है।[1] दूसरी ओर क्योंकि किसी फाइल के सभी संशोधनों(रिवीजनस) को पार्स किया जाता है, अधिक संशोधन जोड़े जाने पर प्रत्येक संचालन धीमा हो जाता है। इंटरलीव्ड डेल्टा शब्द बाद में 1982 में रिवीजन नियंत्रण प्रणाली के लेखक वाल्टर एफ. टिची द्वारा निर्मित किया गया था, जो SCCS वीव की तुलना आरसीएस में अपने नए प्रतिलोम डेल्टा तंत्र से करता है।[2]


SCCS में कार्यान्वयन

SCCS में निम्नलिखित वीव ब्लॉक है:

 ^AI 1
 ^AD 2
 foo
 ^AE 2
 bar
 ^AI 2
 baz
 ^AE 2
 ^AE 1

एक फाइल प्रदर्शित करता है जिसमे पहले रिलीज में पंक्तियाँ "foo" और "bar" और दूसरे संशोधन में पंक्तियाँ "bar" और "baz"के रूप में शामिल हैं। स्ट्रिंग 'A' एक कंट्रोल वर्ण A को दर्शाता है।

इंटरलीव्ड डेल्टा ब्लॉक में कंट्रोल लाइन के निम्नलिखित अर्थ हैं:[3]

  • ^AI सीरियल लाइनों का एक ब्लॉक शुरू करें जिसे नामित सीरियल नंबर के साथ डाला गया था।
  • ^AD सीरियल नामित सीरियल नंबर के साथ हटाए गए लाइनों का एक ब्लॉक प्रारंभ करें।
  • ^AE सीरियल संबंधित ^AI या ^AD स्टेटमेंट के लिए ब्लॉक एंड जो समान सीरियल नंबर का उपयोग करता है।

लाभ

ऐसे इंटरलीव्ड डेल्टा ब्लॉक से किसी भी संशोधनों(रिवीजनस) को निकालने में लगने वाला समय कोड के आकार के समानुपाती होता है। कोड का आकार, सभी संशोधनों(रिवीजनस) में सभी अलग-अलग पंक्तियों के आकार का योग है।

एक विशिष्ट संशोधनों(रिवीजनस) निकालने के लिए, संरचनाओं की एक सरणी का निर्माण करने की आवश्यकता है, जो यह बताए कि इंटरलीव्ड डेल्टा में सीरियल नंबर द्वारा टैग किया गया एक विशिष्ट ब्लॉक आउटपुट में कॉपी किया जाएगा या नहीं। मूल SCCS कार्यान्वयन की लगभग आवश्यकता है। किसी विशिष्ट संशोधनों(रिवीजनस) को निकालने का तरीका जानने के लिए डेल्टा में प्रत्येक बिभिन्न क्रमांक के लिए 100 बाइट्स का स्टोरेज होता है। इस प्रकार एक मिलियन डेल्टा वाली SCCS इतिहास फाइल को अनपैक करने के लिए 100 मिलीबाइट्स वास्तविक मेमोरी की आवश्यकता होगी। यदि प्रति 32 बाइट्स डेल्टा का कोई एनोटेटेड फाइल पुनर्प्राप्ति की आवश्यकता नहीं है तो आकार लगभग कम किया जा सकता है।

वीव विधि के लाभ निम्नलिखित हैं:

  • किसी फाइल के सभी संशोधनों(रिवीजनस) के लिए समान पुनर्प्राप्ति समय।
  • बिना किसी अतिरिक्त लागत के अंतिम परिवर्तन के संशोधन, अंतिम परिवर्तन के लेखक और अंतिम परिवर्तन के समय के साथ फाइल की सभी पंक्तियों को एनोटेट करने की संभावना।
  • बिना किसी अतिरिक्त लागत के नॉन-ओवरलैपिंग शाखाओं में जुड़ जाने की संभावना।

इंटरलीव्ड डेल्टा का उपयोग करने वाला सॉफ्टवेयर

जीएनयू बाजार ने 2006 में इंटरलीव्ड डेल्टा का उपयोग करने का उद्धिष्ट किया था,[5] लेकिन वास्तव में bzr 0.1 में लागू होने के बाद खराब प्रदर्शन के कारण इसे छोड़ दिया गया था। यह अभी भी एक वीव-शैली मर्ज एल्गोरिदम प्रदान करता है।[6]


यह भी देखें

संदर्भ

  1. 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)
  2. 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.
  3. http://sccs.sourceforge.net/man/sccsfile.4.html sccsfile(4) manual page
  4. "बाइनरी बुनाई का परिचय". www.bitkeeper.org.
  5. "BZR सामने की ओर अपना रास्ता बना रहा है". blog.fxa.org. Archived from the original on 6 October 2006. Retrieved 12 January 2022.
  6. "BzrWeaveFormat". Bzr Wiki. Retrieved 16 January 2020.