इंटरलीव्ड डेल्टा: Difference between revisions

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


इंटरलीव्ड डेल्टा को पहली बार 1975 में SCCS में [[मार्क रोशकिंड]] द्वारा लागू किया गया था। इसका डिजाइन सभी संस्करणों को एक ही समय में उपलब्ध कराता है, जिससे किसी भी संशोधन को पुनः प्राप्त करने में समान समय लगता है। इसमें एक ब्लॉक में प्रत्येक पंक्ति (दोषी ठहराने वाले) के लेखक की पहचान करने के लिए पर्याप्त जानकारी भी शामिल है।<ref>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)</ref> दूसरी ओर क्योंकि किसी फाइल के सभी संशोधनों(रिवीजनस) को पार्स किया जाता है, अधिक संशोधन जोड़े जाने पर प्रत्येक संचालन धीमा हो जाता है। इंटरलीव्ड डेल्टा शब्द बाद में 1982 में [[पुनरीक्षण नियंत्रण प्रणाली|रिवीजन नियंत्रण प्रणाली]] के लेखक वाल्टर एफ. टिची द्वारा निर्मित किया गया था, जो SCCS  वीव की तुलना आरसीएस में अपने नए प्रतिलोम डेल्टा तंत्र से करता है।<ref name="rcs">{{cite journal  
इंटरलीव्ड डेल्टा को पहली बार 1975 में SCCS में [[मार्क रोशकिंड]] द्वारा लागू किया गया था। इसका डिजाइन सभी संस्करणों को एक ही समय में उपलब्ध कराता है, जिससे किसी भी रिविजंस को पुनः प्राप्त करने में समान समय लगता है। इसमें एक ब्लॉक में प्रत्येक पंक्ति (गलत ठहराने वाले) के लेखक की पहचान करने के लिए पर्याप्त जानकारी भी शामिल है।<ref>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)</ref> दूसरी ओर क्योंकि किसी फाइल के सभी संशोधनों(रिविजंस) को पार्स किया जाता है, अधिक संशोधन(रिविजंस) जोड़े जाने पर प्रत्येक संचालन धीमा हो जाता है। इंटरलीव्ड डेल्टा शब्द बाद में 1982 में [[पुनरीक्षण नियंत्रण प्रणाली|रिवीजन नियंत्रण प्रणाली]] के लेखक वाल्टर एफ. टिची द्वारा बनाया गया था, जो SCCS  वीव की तुलना आरसीएस में अपने नए प्रतिलोम डेल्टा तंत्र से करता है।<ref name="rcs">{{cite journal  
| last = Tichy | first = Walter  
| last = Tichy | first = Walter  
| title = Design, implementation, and evaluation of a Revision Control System  
| title = Design, implementation, and evaluation of a Revision Control System  
Line 22: Line 22:
   ^AE 2
   ^AE 2
   ^AE 1
   ^AE 1
एक फाइल प्रदर्शित करता है जिसमे पहले रिलीज में पंक्तियाँ "foo" और "bar" और दूसरे संशोधन में पंक्तियाँ "bar" और "baz"के रूप में शामिल हैं। स्ट्रिंग 'A' एक कंट्रोल वर्ण A को दर्शाता है।
एक फाइल प्रदर्शित करता है जिसमे पहले रिलीज में पंक्तियाँ "foo" और "bar" और दूसरे संशोधनों(रिविजंस) में पंक्तियाँ "bar" और "baz"के रूप में शामिल हैं। स्ट्रिंग 'A' एक कंट्रोल वर्ण A को दर्शाता है।


इंटरलीव्ड डेल्टा ब्लॉक में कंट्रोल लाइन के निम्नलिखित अर्थ हैं:<ref>http://sccs.sourceforge.net/man/sccsfile.4.html sccsfile(4) manual page</ref>
इंटरलीव्ड डेल्टा ब्लॉक में कंट्रोल लाइन के निम्नलिखित अर्थ हैं:<ref>http://sccs.sourceforge.net/man/sccsfile.4.html sccsfile(4) manual page</ref>
* ^AI ''सीरियल''  लाइनों का एक ब्लॉक शुरू करें जिसे नामित सीरियल नंबर के साथ डाला गया था।
* ^AI ''सीरियल''  लाइनों का एक ब्लॉक प्रारम्भ करें जिसे नामित सीरियल नंबर के साथ डाला गया था।
* ^AD ''सीरियल''  नामित सीरियल नंबर के साथ हटाए गए लाइनों का एक ब्लॉक प्रारंभ करें।
* ^AD ''सीरियल''  नामित सीरियल नंबर के साथ हटाए गए लाइनों का एक ब्लॉक प्रारंभ करें।
* ^AE ''सीरियल''  संबंधित ^AI या ^AD स्टेटमेंट के लिए ब्लॉक एंड जो समान सीरियल नंबर का उपयोग करता है।
* ^AE ''सीरियल''  संबंधित ^AI या ^AD स्टेटमेंट के लिए ब्लॉक एंड जो समान सीरियल नंबर का उपयोग करता है।


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


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


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


* किसी फाइल के सभी संशोधनों(रिवीजनस) के लिए समान पुनर्प्राप्ति समय।
* किसी फाइल के सभी संशोधनों(रिविजंस) के लिए समान पुनर्प्राप्ति समय।
* बिना किसी अतिरिक्त लागत के अंतिम परिवर्तन के संशोधन, अंतिम परिवर्तन के लेखक और अंतिम परिवर्तन के समय के साथ फाइल की सभी पंक्तियों को एनोटेट करने की संभावना।
* बिना किसी अतिरिक्त लागत के अंतिम परिवर्तन के संशोधन, अंतिम परिवर्तन के लेखक और अंतिम परिवर्तन के समय के साथ फाइल की सभी पंक्तियों को एनोटेट करने की संभावना।
* बिना किसी अतिरिक्त लागत के नॉन-ओवरलैपिंग शाखाओं में जुड़ जाने की संभावना।
* बिना किसी अतिरिक्त लागत के नॉन-ओवरलैपिंग शाखाओं में जुड़ जाने की संभावना।
Line 44: Line 44:
*[[सन वर्कशॉप टीमवेयर]]
*[[सन वर्कशॉप टीमवेयर]]
*[[बिटकीपर]]<ref>{{cite web |title=बाइनरी बुनाई का परिचय|url=https://www.bitkeeper.org/src-notes/BWEAVE.html |website=www.bitkeeper.org}}</ref>
*[[बिटकीपर]]<ref>{{cite web |title=बाइनरी बुनाई का परिचय|url=https://www.bitkeeper.org/src-notes/BWEAVE.html |website=www.bitkeeper.org}}</ref>
[[जीएनयू बाज़ार|जीएनयू बाजार]] ने 2006 में इंटरलीव्ड डेल्टा का उपयोग करने का उद्धिष्ट किया था,<ref>{{cite web |url=http://blog.fxa.org/articles/2005/09/30/bzr-weaving-its-way-to-the-front |title=BZR सामने की ओर अपना रास्ता बना रहा है|website=blog.fxa.org |access-date=12 January 2022 |archive-url=https://web.archive.org/web/20061006032137/http://blog.fxa.org/articles/2005/09/30/bzr-weaving-its-way-to-the-front |archive-date=6 October 2006 |url-status=dead}}</ref> लेकिन वास्तव में bzr 0.1 में लागू होने के बाद खराब प्रदर्शन के कारण इसे छोड़ दिया गया था। यह अभी भी एक वीव-शैली मर्ज एल्गोरिदम प्रदान करता है।<ref>{{cite web |title=BzrWeaveFormat|url=http://wiki.bazaar.canonical.com/BzrWeaveFormat|website=Bzr Wiki |access-date=16 January 2020}}</ref>
[[जीएनयू बाज़ार|जीएनयू बाजार]] ने 2006 में इंटरलीव्ड डेल्टा का उपयोग करने का उद्धिष्ट किया था,<ref>{{cite web |url=http://blog.fxa.org/articles/2005/09/30/bzr-weaving-its-way-to-the-front |title=BZR सामने की ओर अपना रास्ता बना रहा है|website=blog.fxa.org |access-date=12 January 2022 |archive-url=https://web.archive.org/web/20061006032137/http://blog.fxa.org/articles/2005/09/30/bzr-weaving-its-way-to-the-front |archive-date=6 October 2006 |url-status=dead}}</ref> लेकिन वास्तव में bzr 0.1 में लागू होने के बाद अच्छा प्रदर्शन न होने के कारण इसे छोड़ दिया गया था। यह अभी भी एक वीव-शैली मर्ज एल्गोरिदम प्रदान करता है।<ref>{{cite web |title=BzrWeaveFormat|url=http://wiki.bazaar.canonical.com/BzrWeaveFormat|website=Bzr Wiki |access-date=16 January 2020}}</ref>





Revision as of 08:44, 21 July 2023

इंटरलीव्ड डेल्टा, या 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.