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

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

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

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

इंटरलीव्ड डेल्टा ब्लॉक में कंट्रोल लाइन के निम्नलिखित अर्थ हैं:
 * ^AI सीरियल लाइनों का एक ब्लॉक प्रारम्भ करें जिसे नामित सीरियल नंबर के साथ प्रविष्ट किया गया था।
 * ^AD सीरियल नामित सीरियल नंबर के साथ हटाए गए लाइनों का एक ब्लॉक प्रारंभ करें।
 * ^AE सीरियल संबंधित ^AI या ^AD स्टेटमेंट के लिए ब्लॉकएंड जो समान सीरियल नंबर का उपयोग करता है।

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

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

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


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

इंटरलीव्ड डेल्टा का उपयोग करने वाला सॉफ्टवेयर
जीएनयू बाजार ने 2006 में इंटरलीव्ड डेल्टा का उपयोग करने का प्रयास किया था, लेकिन वास्तव में bzr 0.1 में लागू होने के बाद अच्छा प्रदर्शन न होने के कारण इसे छोड़ दिया गया था। लेकिन यह अभी भी एक वीव-शैली मर्ज एल्गोरिदम प्रदान करता है।
 * सोर्स कोड नियंत्रण प्रणाली
 * सन वर्कशॉप टीमवेयर
 * बिटकीपर

यह भी देखें

 * डेल्टा एन्कोडिंग