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

From Vigyanwiki
No edit summary
No edit summary
Line 5: Line 5:
}}
}}


इंटरलीव्ड डेल्टा, या एससीसीएस बुनाई एक फाइल के सभी संशोधनों को संग्रहीत करने के लिए [[ स्रोत कोड नियंत्रण प्रणाली ]] द्वारा उपयोग की जाने वाली एक विधि है। सभी संशोधनों की सभी पंक्तियाँ डेटा के एक ही ब्लॉक में एक साथ "बुनी" गई हैं,और बीच-बीच में नियंत्रण निर्देशों के साथ यह दर्शाता है कि फाइल के किस संशोधन में कौन सी पंक्तियाँ शामिल हैं। इंटरलीव्ड डेल्टा को पारंपरिक रूप से लाइन ओरिएंटेड टेक्स्ट फाइलों को ध्यान में रखकर लागू किया जाता है, हालांकि इस विधि को बाइनरी फाइलों पर भी लागू होने से कोई नहीं रोकता है।
इंटरलीव्ड डेल्टा, या 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 में [[पुनरीक्षण नियंत्रण प्रणाली|संशोधन नियंत्रण प्रणाली]] के लेखक वाल्टर एफ. टिची द्वारा निर्मित किया गया था, जो एससीसीएस बुनाई की तुलना आरसीएस में अपने नए प्रतिलोम डेल्टा तंत्र से करता है।<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 17: Line 17:




==एससीसीएस में कार्यान्वयन==
==SCCS  में कार्यान्वयन==
एससीसीएस में, निम्नलिखित बुनाई ब्लॉक
SCCS में निम्नलिखित वीव ब्लॉक है:
 
   ^AI 1
   ^एआई 1
   ^AD 2
   ^ई.2
   foo
   फू
   ^AE 2
   ^एई 2
   bar
   छड़
   ^AI 2
   ^एआई 2
   baz
   बाा
   ^AE 2
   ^एई 2
   ^AE 1
   ^एई 1
एक फाइल प्रदर्शित करता है जिसमे पहले प्रदर्शन में पंक्तियाँ "foo" और "bar" और दूसरे संशोधन में पंक्तियाँ "bar" और "baz"के रूप शामिल हैं। स्ट्रिंग 'A' एक नियंत्रण वर्ण A को दर्शाता है।
 
एक फाइल का प्रतिनिधित्व करता है जिसमें पहली रिलीज़ में पंक्तियाँ foo और bar और दूसरे संशोधन में पंक्तियाँ bar और baz शामिल हैं। स्ट्रिंग ^ए एक नियंत्रण-ए वर्ण को दर्शाता है।


इंटरलीव्ड डेल्टा ब्लॉक में नियंत्रण रेखाओं के निम्नलिखित अर्थ हैं:<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 ''सीरियल'' लाइनों का एक ब्लॉक शुरू करें जिसे नामित सीरियल नंबर के साथ डाला गया था।
* ^AD ''सीरियल'' नामित सीरियल नंबर के साथ हटाए गए लाइनों का एक ब्लॉक प्रारंभ करें।
* ^AD ''सीरियल'' नामित सीरियल नंबर के साथ हटाए गए लाइनों का एक ब्लॉक प्रारंभ करें।
* ^AE ''सीरियल'' संबंधित ^AI या ^AD स्टेटमेंट के लिए ब्लॉक एंड जो समान सीरियल नंबर का उपयोग करता है।
* ^AE ''सीरियल'' संबंधित ^AI या ^AD स्टेटमेंट के लिए ब्लॉक एंड जो समान सीरियल नंबर का उपयोग करता है।
Line 42: Line 40:
एक विशिष्ट संशोधन निकालने के लिए, संरचनाओं की एक सरणी का निर्माण करने की आवश्यकता है, जो यह बताए कि इंटरलीव्ड डेल्टा में सीरियल नंबर द्वारा टैग किया गया एक विशिष्ट ब्लॉक, आउटपुट में कॉपी किया जाएगा या नहीं। मूल SCCS कार्यान्वयन की लगभग आवश्यकता है। किसी विशिष्ट संशोधन को निकालने का तरीका जानने के लिए डेल्टा में प्रत्येक भिन्न क्रमांक के लिए 100 बाइट्स का भंडारण। इस प्रकार एक मिलियन डेल्टा वाली SCCS इतिहास फाइल  को अनपैक करने के लिए 100 MBytes वर्चुअल मेमोरी की आवश्यकता होगी। आकार लगभग कम किया जा सकता है। यदि कोई एनोटेटेड फाइल  पुनर्प्राप्ति की आवश्यकता नहीं है तो प्रति डेल्टा 32 बाइट्स।
एक विशिष्ट संशोधन निकालने के लिए, संरचनाओं की एक सरणी का निर्माण करने की आवश्यकता है, जो यह बताए कि इंटरलीव्ड डेल्टा में सीरियल नंबर द्वारा टैग किया गया एक विशिष्ट ब्लॉक, आउटपुट में कॉपी किया जाएगा या नहीं। मूल SCCS कार्यान्वयन की लगभग आवश्यकता है। किसी विशिष्ट संशोधन को निकालने का तरीका जानने के लिए डेल्टा में प्रत्येक भिन्न क्रमांक के लिए 100 बाइट्स का भंडारण। इस प्रकार एक मिलियन डेल्टा वाली SCCS इतिहास फाइल  को अनपैक करने के लिए 100 MBytes वर्चुअल मेमोरी की आवश्यकता होगी। आकार लगभग कम किया जा सकता है। यदि कोई एनोटेटेड फाइल  पुनर्प्राप्ति की आवश्यकता नहीं है तो प्रति डेल्टा 32 बाइट्स।


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


* किसी फाइल  के सभी संशोधनों के लिए समान पुनर्प्राप्ति समय।
* किसी फाइल  के सभी संशोधनों के लिए समान पुनर्प्राप्ति समय।
Line 52: Line 50:
*[[सन वर्कशॉप टीमवेयर]]
*[[सन वर्कशॉप टीमवेयर]]
*[[बिटकीपर]]<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 21:30, 19 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 MBytes वर्चुअल मेमोरी की आवश्यकता होगी। आकार लगभग कम किया जा सकता है। यदि कोई एनोटेटेड फाइल पुनर्प्राप्ति की आवश्यकता नहीं है तो प्रति डेल्टा 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.