सोर्स कोड कंट्रोल सिस्टम: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 19: Line 19:
| website                = {{URL|http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sccs.html| The Open Group Base Specifications Issue 7, IEEE Std 1003.1-2008, 2016 Edition}}
| website                = {{URL|http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sccs.html| The Open Group Base Specifications Issue 7, IEEE Std 1003.1-2008, 2016 Edition}}
}}
}}
'''[[सोर्स कोड]] कंट्रोल सिस्टम (एससीसीएस)''' [[संस्करण नियंत्रण|वर्जन कंट्रोल सिस्टम]] है जिसे सॉफ्टवेयर के विकास के समय सोर्स कोड और अन्य टेक्स्ट फ़ाइलों में परिवर्तनों को ट्रैक करने के लिए डिज़ाइन किया गया है। यह उपयोगकर्ता को मूल सोर्स कोड के किसी भी पिछले वर्जन और संग्रहीत परिवर्तनों को पुनः प्राप्त करने की अनुमति देता है। इसे मूल रूप से 1972 के अंत में [[बेल लैब्स]] में [[मार्क रोशकिंड]] द्वारा ओएस/360 पर चलने वाले आईबीएम सिस्टम/370 कंप्यूटर के लिए विकसित किया गया था।<ref name = "r1">{{Citation |last=Rochkind |first=Marc J. |url=http://basepath.com/aup/talks/SCCS-Slideshow.pdf |title=The Source Code Control System |periodical=IEEE Transactions on Software Engineering |volume=SE-1 |issue=4 |date=December 1975 |pages=364–370 |doi=10.1109/tse.1975.6312866|s2cid=10006076 }}
'''[[सोर्स कोड]] कंट्रोल सिस्टम (एससीसीएस)''' [[संस्करण नियंत्रण|वर्जन कंट्रोल सिस्टम]] है जिसे सॉफ्टवेयर के विकास के समय सोर्स कोड और अन्य टेक्स्ट फ़ाइलों में परिवर्तनों को ट्रैक करने के लिए डिज़ाइन किया गया है। यह उपयोगकर्ता को मूल सोर्स कोड के किसी भी पिछले वर्जनऔर संग्रहीत परिवर्तनों को पुनः प्राप्त करने की अनुमति देता है। इसे मूल रूप से 1972 के अंत में [[बेल लैब्स]] में [[मार्क रोशकिंड]] द्वारा ओएस/360 पर चलने वाले आईबीएम सिस्टम/370 कंप्यूटर के लिए विकसित किया गया था।<ref name = "r1">{{Citation |last=Rochkind |first=Marc J. |url=http://basepath.com/aup/talks/SCCS-Slideshow.pdf |title=The Source Code Control System |periodical=IEEE Transactions on Software Engineering |volume=SE-1 |issue=4 |date=December 1975 |pages=364–370 |doi=10.1109/tse.1975.6312866|s2cid=10006076 }}
</ref> एससीसीएस की विशिष्ट विशेषता एससीसीएसआईडी स्ट्रिंग है जो सोर्स कोड में एम्बेडेड है, और प्रत्येक संशोधन के लिए एससीसीएस द्वारा स्वचालित रूप से अपडेट की जाती है।<ref name="Oracle">{{Cite web|url=http://docs.oracle.com/cd/E19504-01/802-5880/6i9k05dhp/index.html|title=Chapter 5 SCCS Source Code Control System|last=Oracle|website=Programming Utilities Guide}}</ref> यह उदाहरण C (प्रोग्रामिंग लैंग्वेज) में इसके उपयोग को दर्शाता है:
</ref> एससीसीएस की विशिष्ट विशेषता एससीसीएसआईडी स्ट्रिंग है जो सोर्स कोड में एम्बेडेड है, और प्रत्येक संशोधन के लिए एससीसीएस द्वारा स्वचालित रूप से अपडेट की जाती है।<ref name="Oracle">{{Cite web|url=http://docs.oracle.com/cd/E19504-01/802-5880/6i9k05dhp/index.html|title=Chapter 5 SCCS Source Code Control System|last=Oracle|website=Programming Utilities Guide}}</ref> यह उदाहरण C (प्रोग्रामिंग लैंग्वेज ) में इसके उपयोग को दर्शाता है:
<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
  static char sccsid[] = "@(#)ls.c        8.1 (Berkeley) 6/11/93";
  static char sccsid[] = "@(#)ls.c        8.1 (Berkeley) 6/11/93";
</syntaxhighlight>
</syntaxhighlight>
इस [[स्ट्रिंग (कंप्यूटर विज्ञान)]] में फ़ाइल का नाम, दिनांक और टिप्पणी भी हो सकती है। कंपाइलेशन के पश्चात्, क्रम की खोज करके स्ट्रिंग को बाइनरी और ऑब्जेक्ट फ़ाइलों में पाया जा सकता है <code>@(#)</code> और इसका उपयोग यह निर्धारित करने के लिए किया जा सकता है कि कंपाइलेशन के समय कौन सी सोर्स कोड फ़ाइलों का उपयोग किया गया था। <code>what</code> वर्जन स्ट्रिंग्स के लिए इस खोज को स्वचालित करने के लिए e> कमांड उपलब्ध है।<ref>{{cite web |url=https://pubs.opengroup.org/onlinepubs/9699919799/utilities/what.html |title=क्या|author=<!--Not stated--> |date=n.d. |publisher=IEEE and The Open Group |access-date=November 28, 2022}}</ref>
इस [[स्ट्रिंग (कंप्यूटर विज्ञान)]] में फ़ाइल का नाम, दिनांक और टिप्पणी भी हो सकती है। कंपाइलेशन के पश्चात्, क्रम की खोज करके स्ट्रिंग को बाइनरी और ऑब्जेक्ट फ़ाइलों में पाया जा सकता है <code>@(#)</code> और इसका उपयोग यह निर्धारित करने के लिए किया जा सकता है कि कंपाइलेशन के समय कौन सी सोर्स कोड फ़ाइलों का उपयोग किया गया था। <code>what</code> वर्जनस्ट्रिंग्स के लिए इस खोज को स्वचालित करने के लिए e> कमांड उपलब्ध है।<ref>{{cite web |url=https://pubs.opengroup.org/onlinepubs/9699919799/utilities/what.html |title=क्या|author=<!--Not stated--> |date=n.d. |publisher=IEEE and The Open Group |access-date=November 28, 2022}}</ref>
==इतिहास==
==इतिहास==
1972 में, मार्क रोचकाइंड ने विभिन्न प्रकार के कार्यों के साथ ओएस/360 मल्टीप्रोग्रामिंग चलाने वाले आईबीएम सिस्टम/370 कंप्यूटर के लिए बेल लैब्स में एसएनओबीओएल में एससीसीएस विकसित किया था। <ref name = "r1"/> उन्होंने [[UNIX|यूनिक्स]] के अनुसार उपयोग के लिए C प्रोग्रामिंग लैंग्वेज में एससीसीएस को फिर से लिखा था, फिर 1973 में [[PDP-11|पीडीपी-11]] पर चलाया गया था।
1972 में, मार्क रोचकाइंड ने विभिन्न प्रकार के कार्यों के साथ ओएस/360 मल्टीप्रोग्रामिंग चलाने वाले आईबीएम सिस्टम/370 कंप्यूटर के लिए बेल लैब्स में एसएनओबीओएल में एससीसीएस विकसित किया था। <ref name = "r1"/> उन्होंने [[UNIX|यूनिक्स]] के अनुसार उपयोग के लिए सी प्रोग्रामिंग लैंग्वेज में एससीसीएस को फिर से लिखा था, फिर 1973 में [[PDP-11|पीडीपी-11]] पर चलाया गया था।


पहला सार्वजनिक रूप से प्रारंभ किया गया वर्जन 18 फरवरी 1977 से एससीसीएस वर्जन 4 था।<ref>http://sccs.sourceforge.net/PWB.html AT&T Announcement for SCCSv4</ref> यह [[ऑपरेटिंग सिस्टम]] के पीडब्लूबी/यूनिक्स|प्रोग्रामर वर्कबेंच (पीडब्लूबी) वर्जन के साथ उपलब्ध था। एससीसीएस का रिलीज़ 4 पहला वर्जन था जिसमें टेक्स्ट-आधारित इतिहास फ़ाइल स्वरूप का उपयोग किया गया था, पहले के संस्करणों में बाइनरी इतिहास फ़ाइल स्वरूपों का उपयोग किया गया था। रिलीज़ 4 अब मार्क रोशकाइंड द्वारा लिखा या अनुरक्षित नहीं किया गया था। इसके पश्चात्, एससीसीएस को AT&T के वाणिज्यिक यूनिक्स सिस्टम III और यूनिक्स सिस्टम V डिस्ट्रिब्यूटेड में सम्मिलित किया गया था। इसे [[ बर्कले सॉफ्टवेयर वितरण |बर्कले सॉफ्टवेयर डिस्ट्रिब्यूटेड]] के पूर्वज यूनिक्स/32V के साथ लाइसेंस प्राप्त नहीं था।<ref>SCCS [http://minnie.tuhs.org/cgi-bin/utree.pl?file=4BSD/usr/man/cat1/what.1 what(1)] manpage from 4BSD, 1980, on the website of [http://www.tuhs.org/ The Unix Heritage Society] {{webarchive|url=https://web.archive.org/web/20050831153956/http://www.tuhs.org/ |date=2005-08-31 }}.</ref> एससीसीएस कमांड सेट अब सिंगल यूनिक्स विशिष्टता का भाग है।
प्रथम  सार्वजनिक रूप से प्रारंभ किया गया वर्जन18 फरवरी 1977 से एससीसीएस वर्जन4 था।<ref>http://sccs.sourceforge.net/PWB.html AT&T Announcement for SCCSv4</ref> यह [[ऑपरेटिंग सिस्टम]] के पीडब्लूबी/यूनिक्स|प्रोग्रामर वर्कबेंच (पीडब्लूबी) वर्जन के साथ उपलब्ध था। एससीसीएस का रिलीज़ 4 पहला वर्जन था जिसमें टेक्स्ट-आधारित इतिहास फ़ाइल स्वरूप का उपयोग किया गया था, पहले के वर्जन  में बाइनरी इतिहास फ़ाइल स्वरूपों का उपयोग किया गया था। रिलीज़ 4 अब मार्क रोशकाइंड द्वारा लिखा या अनुरक्षित नहीं किया गया था। इसके पश्चात्, एससीसीएस को AT&T के वाणिज्यिक यूनिक्स सिस्टम III और यूनिक्स सिस्टम V वितरण में सम्मिलित किया गया था। इसे [[ बर्कले सॉफ्टवेयर वितरण |बर्कले सॉफ्टवेयर वितरण]] के पूर्वज यूनिक्स/32V के साथ लाइसेंस प्राप्त नहीं था।<ref>SCCS [http://minnie.tuhs.org/cgi-bin/utree.pl?file=4BSD/usr/man/cat1/what.1 what(1)] manpage from 4BSD, 1980, on the website of [http://www.tuhs.org/ The Unix Heritage Society] {{webarchive|url=https://web.archive.org/web/20050831153956/http://www.tuhs.org/ |date=2005-08-31 }}.</ref> एससीसीएस कमांड सेट अब सिंगल यूनिक्स विशिष्टता का भाग है।


इसके पश्चात् वर्जन कंट्रोल सिस्टम्स, विशेष रूप से संशोधन कंट्रोल सिस्टम और पश्चात् में [[समवर्ती संस्करण प्रणाली|समवर्ती वर्जन सिस्टम]], को अधिक व्यापक रूप से अपनाए जाने तक एससीसीएस यूनिक्स के लिए प्रमुख वर्जन कंट्रोल सिस्टम थी। आज, इन प्रारंभिक वर्जन कंट्रोल सिस्टम्स को सामान्यतः अप्रचलित माना जाता है, विशेष रूप से [[खुला स्रोत सॉफ्टवेयर|ओपन सोर्स सॉफ्टवेयर]] में, जिसने बड़े मापदंड पर [[वितरित संस्करण नियंत्रण|डिस्ट्रिब्यूटेड वर्जन कंट्रोल]] सिस्टम्स को अपनाया है। चूँकि, एससीसीएस फ़ाइल स्वरूप का उपयोग अभी भी [[BitKeeper|बिटकीपर]] और [[TeamWare|टीमवेयर]] सहित कुछ नए वर्जन कंट्रोल प्रोग्रामो द्वारा आंतरिक रूप से किया जाता है। इस प्रकार उत्तरार्द्ध एससीसीएस का अग्रभाग है। [http://sablime.alcatel-lucent.com/ सब्लिमे] को एससीसीएस के संशोधित वर्जन से विकसित किया गया है <ref>Estublier, Jacky, David Leblang, [[André van der Hoek]], Reidar Conradi, Geoffrey Clemm, Walter Tichy, and Darcy Wiborg-Weber. “Impact of software engineering research on the practice of software configuration management.” ACM Transactions on Software Engineering and Methodology (TOSEM) 14 (October 2005): 383–430.</ref> किन्तु इतिहास फ़ाइल स्वरूप का उपयोग करता है जो एससीसीएस के साथ असंगत है। एससीसीएस फ़ाइल स्वरूप स्टोरेज तकनीक का उपयोग करता है जिसे [[इंटरलीव्ड डेल्टा]]स (या वेव) कहा जाता है <ref>{{Citation |last=Hudson |first=Greg |url=http://web.mit.edu/ghudson/thoughts/file-versioning |title=Notes on keeping version histories of files |publisher=Unpublished personal notes |date=2002-10-03}}</ref>). इस स्टोरेज तकनीक को अब कई वर्जन कंट्रोल सिस्टम डेवलपर्स द्वारा उन्नत [[मर्ज (संस्करण नियंत्रण)|मर्ज (वर्जन कंट्रोल)]] और संस्करणिंग तकनीकों के लिए मूलभूत माना जाता है,<ref>Estublier, Jacky, David Leblang, [[André van der Hoek]], Reidar Conradi, Geoffrey Clemm, Walter Tichy, and Darcy Wiborg-Weber. “Impact of software engineering research on the practice of software configuration management.” ACM Transactions on Software Engineering and Methodology (TOSEM) 14 (October 2005): p.398.</ref> जैसे कि प्रिसिज़ कोडविल (पीसीडीवी) मर्ज किया जाता है।
इसके पश्चात् वर्जननियंत्रण सिस्टम्स, विशेष रूप से संशोधन नियंत्रण सिस्टम और पश्चात् में [[समवर्ती संस्करण प्रणाली|वर्जन कंट्रोल सिस्टम]] , को अधिक व्यापक रूप से अपनाए जाने तक एससीसीएस यूनिक्स के लिए प्रमुख वर्जन कंट्रोल सिस्टम थी। आज, इन प्रारंभिक वर्जन नियंत्रण सिस्टम्स को सामान्यतः अप्रचलित माना जाता है, विशेष रूप से [[खुला स्रोत सॉफ्टवेयर|ओपन सोर्स सॉफ्टवेयर]] में, जिसने बड़े मापदंड पर [[वितरित संस्करण नियंत्रण|डिस्ट्रिब्यूटेड वर्जन कंट्रोल]] सिस्टम्स को अपनाया है। चूँकि, एससीसीएस फ़ाइल स्वरूप का उपयोग अभी भी [[BitKeeper|बिटकीपर]] और [[TeamWare|टीमवेयर]] सहित कुछ नए नियंत्रण प्रोग्रामो द्वारा आंतरिक रूप से किया जाता है। इस प्रकार उत्तरार्द्ध एससीसीएस का अग्रभाग है। [http://sablime.alcatel-lucent.com/ सब्लिमे] को एससीसीएस के संशोधित वर्जनसे विकसित किया गया है <ref>Estublier, Jacky, David Leblang, [[André van der Hoek]], Reidar Conradi, Geoffrey Clemm, Walter Tichy, and Darcy Wiborg-Weber. “Impact of software engineering research on the practice of software configuration management.” ACM Transactions on Software Engineering and Methodology (TOSEM) 14 (October 2005): 383–430.</ref> किन्तु इतिहास फ़ाइल स्वरूप का उपयोग करता है जो एससीसीएस के साथ असंगत है। एससीसीएस फ़ाइल स्वरूप स्टोरेज तकनीक का उपयोग करता है जिसे [[इंटरलीव्ड डेल्टा]]स (या वेव) कहा जाता है <ref>{{Citation |last=Hudson |first=Greg |url=http://web.mit.edu/ghudson/thoughts/file-versioning |title=Notes on keeping version histories of files |publisher=Unpublished personal notes |date=2002-10-03}}</ref>). इस स्टोरेज तकनीक को अब कई वर्जन कंट्रोल सिस्टम डेवलपर्स द्वारा उन्नत [[मर्ज (संस्करण नियंत्रण)|मर्ज (वर्जन नियंत्रण)]] और संस्करणिंग तकनीकों के लिए मूलभूत माना जाता है,<ref>Estublier, Jacky, David Leblang, [[André van der Hoek]], Reidar Conradi, Geoffrey Clemm, Walter Tichy, and Darcy Wiborg-Weber. “Impact of software engineering research on the practice of software configuration management.” ACM Transactions on Software Engineering and Methodology (TOSEM) 14 (October 2005): p.398.</ref> जैसे कि प्रिसिज़ कोडविल (पीसीडीवी) मर्ज किया जाता है।


1999 में [[वर्ष 2000 की समस्या]]ओं को ठीक करने के अतिरिक्त, विभिन्न यूनिक्स विक्रेता-विशिष्ट एससीसीएस संस्करणों पर कोई सक्रिय विकास नहीं हुआ है।<ref>
1999 में [[वर्ष 2000 की समस्या]]ओं को ठीक करने के अतिरिक्त, विभिन्न यूनिक्स विक्रेता-विशिष्ट एससीसीएस वर्जन  पर अनेक सक्रिय विकास नहीं हुआ है।<ref>
[https://www.gnu.org/software/cssc/ What is SCCS], GNU operating System</ref> 2006 में, [[सन माइक्रोसिस्टम्स]] (आज [[ओरेकल कॉर्पोरेशन]] का भाग) ने सोलारिस को ओपन-सोर्स करने के अपने प्रयासों के भाग के रूप में [[ सामान्य विकास एवं वितरण लाइसेंस |सामान्य विकास एवं डिस्ट्रिब्यूटेड लाइसेंस]] के अनुसार ओपन-सोर्स सॉफ्टवेयर या ओपन-सोर्स के रूप में एससीसीएस का अपना [[सोलारिस (ऑपरेटिंग सिस्टम)]] वर्जन प्रारंभ किया था।<ref>{{cite web|url=http://mail.opensolaris.org/pipermail/opensolaris-announce/2006-December/000364.html |title=SCCS/make source available |date=2006-12-19 |access-date=2011-11-14 |author=Stephen Lau, [[Sun Microsystems]] |url-status=dead |archive-url=https://web.archive.org/web/20120425142501/http://mail.opensolaris.org/pipermail/opensolaris-announce/2006-December/000364.html |archive-date=April 25, 2012 }}</ref>
[https://www.gnu.org/software/cssc/ What is SCCS], GNU operating System</ref> 2006 में, [[सन माइक्रोसिस्टम्स]] (आज [[ओरेकल कॉर्पोरेशन]] का भाग) ने सोलारिस को ओपन-सोर्स करने के अपने प्रयासों के भाग के रूप में [[ सामान्य विकास एवं वितरण लाइसेंस |सामान्य विकास एवं वितरण लाइसेंस]] के अनुसार ओपन-सोर्स सॉफ्टवेयर या ओपन-सोर्स के रूप में एससीसीएस का अपना [[सोलारिस (ऑपरेटिंग सिस्टम)]] वर्जन प्रारंभ किया था।<ref>{{cite web|url=http://mail.opensolaris.org/pipermail/opensolaris-announce/2006-December/000364.html |title=SCCS/make source available |date=2006-12-19 |access-date=2011-11-14 |author=Stephen Lau, [[Sun Microsystems]] |url-status=dead |archive-url=https://web.archive.org/web/20120425142501/http://mail.opensolaris.org/pipermail/opensolaris-announce/2006-December/000364.html |archive-date=April 25, 2012 }}</ref>
==पृष्ठभूमि==
==पृष्ठभूमि==


सोर्स कोड कंट्रोल सिस्टम (एससीसीएस) फ़ाइल और इतिहास परिवर्तनों को नियंत्रित करने के लिए सिस्टम है। सॉफ़्टवेयर सामान्यतः बग्स को ठीक करके, एल्गोरिदम को अनुकूलित करके और अतिरिक्त फ़ंक्शन जोड़कर नए वर्जन में अपग्रेड किया जाता है।<ref>Home Organization Selection {{ProQuest|215925387}}</ref> सॉफ़्टवेयर बदलने से समस्याएँ उत्पन्न होती हैं जिन्हें हल करने के लिए वर्जन कंट्रोल की आवश्यकता होती है।<ref name = "r1"/>
सोर्स कोड कंट्रोल सिस्टम (एससीसीएस) फ़ाइल और इतिहास परिवर्तनों को नियंत्रित करने के लिए सिस्टम है। सॉफ़्टवेयर सामान्यतः बग्स को ठीक करके, एल्गोरिदम को अनुकूलित करके और अतिरिक्त फ़ंक्शन जोड़कर नए वर्जन में अपग्रेड किया जाता है।<ref>Home Organization Selection {{ProQuest|215925387}}</ref> सॉफ़्टवेयर परिवर्तन से समस्याएँ उत्पन्न होती हैं जिन्हें हल करने के लिए वर्जन नियंत्रण की आवश्यकता होती है।<ref name = "r1"/>
*सोर्स कोड बहुत अधिक स्थान लेता है क्योंकि यह प्रत्येक वर्जन में दोहराया जाता है।
*सोर्स कोड बहुत अधिक स्थान लेता है क्योंकि यह प्रत्येक वर्जन में दोहराया जाता है।
*परिवर्तन कब और कहाँ हुए, इसकी जानकारी प्राप्त करना कठिन है।
*परिवर्तन कब और कहाँ हुए, इसकी जानकारी प्राप्त करना कठिन है।
* स्पष्ट वर्जन खोजना जिसमें क्लाइंट-सर्वर मॉडल में समस्याएँ हैं, कठिन है।
* स्पष्ट वर्जन खोजना जिसमें क्लाइंट-सर्वर मॉडल में समस्याएँ हैं, कठिन है।
इन समस्याओं को हल करने के लिए एससीसीएस का निर्माण किया गया था। इस प्रकार एटी एंड टी के एससीसीएस में आईबीएम ओएस के लिए पांच प्रमुख वर्जन और यूनिक्स के लिए पांच प्रमुख वर्जन थे <ref>The evolution of a Source Code Control System. Alan L.Glasser, published in sigmetrics, Nov 1978 when SCCS on UNIX was a version 4</ref> एससीसीएस का उपयोग करने वाले दो विशिष्ट कार्यान्वयन हैं: इस प्रकार यूनिक्स के अनुसार पीडीपी 11 और ओएस के अनुसार आईबीएम 370 का उपयोग किया जाता है।<ref name = "r1"/>
इन समस्याओं को हल करने के लिए एससीसीएस का निर्माण किया गया था। इस प्रकार एटी एंड टी के एससीसीएस में आईबीएम ओएस के लिए पांच प्रमुख वर्जन और यूनिक्स के लिए पांच प्रमुख वर्जन थे<ref>The evolution of a Source Code Control System. Alan L.Glasser, published in sigmetrics, Nov 1978 when SCCS on UNIX was a version 4</ref> एससीसीएस का उपयोग करने वाले दो विशिष्ट कार्यान्वयन हैं: इस प्रकार यूनिक्स के अनुसार पीडीपी 11 और ओएस के अनुसार आईबीएम 370 का उपयोग किया जाता है।<ref name = "r1"/>
== कम्पोजीशन ==
== रचना ==
एससीसीएस में दो भाग होते हैं: एससीसीएस कमांड और एससीसीएस फ़ाइलें <ref name="एससीसीएस">{{Cite web|url=http://www-h.eng.cam.ac.uk/help/tpl/languages/sccs.html|title=एससीसीएस|website=www-h.eng.cam.ac.uk|access-date=2016-09-12}}</ref> सभी मूलभूत ऑपरेशन (उदाहरण के लिए, बनाएं, हटाएं, एडिट करें) एससीसीएस कमांड द्वारा अनुभव किए जा सकते हैं।<ref name="SCCS"/> एससीसीएस फ़ाइलों में अद्वितीय प्रारूप उपसर्ग होता है <code>s.</code>, जिसे एससीसीएस कमांड द्वारा नियंत्रित किया जाता है।<ref name="Oracle"/>
एससीसीएस में दो भाग होते हैं: एससीसीएस कमांड और एससीसीएस फ़ाइलें <ref name="एससीसीएस">{{Cite web|url=http://www-h.eng.cam.ac.uk/help/tpl/languages/sccs.html|title=एससीसीएस|website=www-h.eng.cam.ac.uk|access-date=2016-09-12}}</ref> सभी मूलभूत संचालन (उदाहरण के लिए, बनाएं, हटाएं, एडिट करें) एससीसीएस कमांड द्वारा अनुभव किए जा सकते हैं।<ref name="SCCS"/> एससीसीएस फ़ाइलों में अद्वितीय प्रारूप उपसर्ग होता है <code>s.</code>, जिसे एससीसीएस कमांड द्वारा नियंत्रित किया जाता है।<ref name="Oracle"/>
== एससीसीएस फ़ाइलें ==
== एससीसीएस फ़ाइलें ==
एससीसीएस फ़ाइल में तीन भाग होते हैं:<ref name=":0">{{Cite web|url=https://www.ibm.com/support/knowledgecenter/ssw_aix_53/com.ibm.aix.genprogc/doc/genprogc/sccs.htm|title=General Programming Concepts: Writing and Debugging Programs|last=IBM|website=IBM Knowledge Center|date=7 June 2018 }}</ref>  
एससीसीएस फ़ाइल में तीन भाग होते हैं:<ref name=":0">{{Cite web|url=https://www.ibm.com/support/knowledgecenter/ssw_aix_53/com.ibm.aix.genprogc/doc/genprogc/sccs.htm|title=General Programming Concepts: Writing and Debugging Programs|last=IBM|website=IBM Knowledge Center|date=7 June 2018 }}</ref>  
Line 51: Line 51:


=== डेल्टा तालिका ===
=== डेल्टा तालिका ===
एससीसीएस में, डेल्टा एससीसीएस फ़ाइल में एकल संशोधन है। डेल्टा को डेल्टा तालिका में संग्रहीत किया जाता है, इसलिए प्रत्येक एससीसीएस फ़ाइल में परिवर्तनों का अपना रिकॉर्ड होता है।<ref name=":0" />
एससीसीएस में, डेल्टा एससीसीएस फ़ाइल में एकल संशोधन है। डेल्टा को डेल्टा टेबल में संग्रहीत किया जाता है, इसलिए प्रत्येक एससीसीएस फ़ाइल में परिवर्तनों का अपना अभिलेख होता है।<ref name=":0" />
=== एससीसीएस फाइलों में फ्लैग का कंट्रोल और ट्रैकिंग ===
=== एससीसीएस फाइलों में फ्लैग का नियंत्रण और ट्रैकिंग ===
प्रत्येक एससीसीएस फ़ाइल के प्रत्येक ऑपरेशन को फ्लैग द्वारा ट्रैक किया जाता है। उनके कार्य इस प्रकार हैं:<ref name=":0" />
प्रत्येक एससीसीएस फ़ाइल के प्रत्येक ऑपरेशन को फ्लैग द्वारा ट्रैक किया जाता है। उनके कार्य इस प्रकार हैं:<ref name=":0" />
** प्रत्येक एससीसीएस फ़ाइल के एडिटिंग के लिए अनुमतियाँ सेट करना।
** प्रत्येक एससीसीएस फ़ाइल के संपादन के लिए अनुमतियाँ सेट करना।
*प्रत्येक एससीसीएस फ़ाइल की प्रत्येक रिलीज़ को नियंत्रित करें।
*प्रत्येक एससीसीएस फ़ाइल की प्रत्येक रिलीज़ को नियंत्रित करें।
* प्रत्येक एससीसीएस फ़ाइल के [[सहयोगात्मक संपादन|कॉलेबोरेटिव एडिटिंग]] की अनुमति।
* प्रत्येक एससीसीएस फ़ाइल के [[सहयोगात्मक संपादन]] की अनुमति।
* प्रत्येक एससीसीएस फ़ाइल के पारस्परिक-संदर्भित परिवर्तन।
* प्रत्येक एससीसीएस फ़ाइल के पारस्परिक-संदर्भित परिवर्तन।


=== बॉडी ===
=== बॉडी ===
एससीसीएस विभिन्न डेल्टाओं में प्रयुक्त सम्मिलन और विलोपन का ट्रैक रखने के लिए तीन प्रकार के कंट्रोल रिकॉर्ड का उपयोग करता है। वह सम्मिलन कंट्रोल रिकॉर्ड, विलोपन कंट्रोल रिकॉर्ड और अंत कंट्रोल रिकॉर्ड हैं। जब भी कोई उपयोगकर्ता टेक्स्ट का कुछ भाग बदलता है, जिससे परिवर्तन के आसपास कंट्रोल रिकॉर्ड डाला जाता है। इस प्रकार कंट्रोल रिकॉर्ड मूल टेक्स्ट रिकॉर्ड के साथ मुख्य भाग में संग्रहीत होते हैं।<ref name = "r1"/>
एससीसीएस विभिन्न डेल्टाओं में प्रयुक्त सम्मिलन और विलोपन का ट्रैक रखने के लिए तीन प्रकार के नियंत्रण अभिलेख का उपयोग करता है। वह सम्मिलन नियंत्रण अभिलेख, विलोपन नियंत्रण अभिलेख और अंत नियंत्रण अभिलेख हैं। जब भी कोई उपयोगकर्ता टेक्स्ट का कुछ भाग बदलता है, जिससे परिवर्तन के आसपास नियंत्रण अभिलेख डाला जाता है। इस प्रकार नियंत्रण अभिलेख मूल टेक्स्ट अभिलेख के साथ मुख्य भाग में संग्रहीत होते हैं।<ref name = "r1"/>
==एससीसीएस मूलभूत कमांड==
==एससीसीएस मूलभूत कमांड==
एससीसीएस मैक्रो इनवोकेशन के रूप में कमांड का सेट प्रदान करता है जो सरल सिंटैक्स के साथ सोर्स कोड मैनेजमेंट कार्यों को निष्पादित या आरंभ करता है, जैसे कि बनाना, प्राप्त करना, एडिट करना, पीआरटी का उपयोग किया जाता है।<ref>[http://sccs.sourceforge.net/man/sccs.me.html  An Introduction to the Source Code Control System ] Eric Allman, Project Ingres, University of California at Berkeley</ref><ref>[http://docs.oracle.com/cd/E19504-01/802-5880/6i9k05dhp/index.html  Source Code Control System] Programming Utilities Guide</ref> यह मैनेजमेंट के अनुसार फ़ाइलों के संशोधन इतिहास तक पहुंच भी प्रदान करता है। ये कमांड ड्राइवर प्रोग्राम एससीसीएस में तर्क क्रिया के रूप में कार्यान्वित किए जाते हैं।
एससीसीएस मैक्रो इनवोकेशन के रूप में कमांड का सेट प्रदान करता है जो सरल सिंटैक्स के साथ सोर्स कोड प्रबंधन कार्यों को निष्पादित या आरंभ करता है, जैसे कि बनाना, प्राप्त करना, एडिट करना, पीआरटी का उपयोग किया जाता है।<ref>[http://sccs.sourceforge.net/man/sccs.me.html  An Introduction to the Source Code Control System ] Eric Allman, Project Ingres, University of California at Berkeley</ref><ref>[http://docs.oracle.com/cd/E19504-01/802-5880/6i9k05dhp/index.html  Source Code Control System] Programming Utilities Guide</ref> यह प्रबंधन के अनुसार फ़ाइलों के संशोधन इतिहास तक पहुंच भी प्रदान करता है। ये कमांड ड्राइवर प्रोग्राम एससीसीएस में तर्क क्रिया के रूप में कार्यान्वित किए जाते हैं।


=== क्रिएट ===
=== क्रिएट ===
Line 72: Line 72:
87 lines
87 lines
</syntaxhighlight>
</syntaxhighlight>
आउटपुट नाम, वर्जन और लाइन हैं।
आउटपुट नाम, वर्जनऔर पंक्तियाँ हैं।


कमांड मैक्रो है जो नई इतिहास फ़ाइल बनाने के लिए व्यवस्थापक तक विस्तारित होता है और उसके पश्चात् फ़ाइल को पुनः प्राप्त करता है।
कमांड मैक्रो है जो नई इतिहास फ़ाइल बनाने के लिए व्यवस्थापक तक विस्तारित होता है और उसके पश्चात् फ़ाइल को पुनः प्राप्त करता है।
Line 98: Line 98:
97 lines
97 lines
</syntaxhighlight>
</syntaxhighlight>
नए वर्जन की जांच करें और एससीसीएस से नया वर्जन प्राप्त करें।
नए वर्जनकी जांच करें और एससीसीएस से नया वर्जनप्राप्त करें।


कमांड मैक्रो है जो नए वर्जन फ़ाइल की जांच करने के लिए डेल्टा तक विस्तारित होता है और उसके पश्चात् फ़ाइल को पुनः प्राप्त करता है।
कमांड मैक्रो है जो नए वर्जनफ़ाइल की जांच करने के लिए डेल्टा तक विस्तारित होता है और उसके पश्चात् फ़ाइल को पुनः प्राप्त करता है।


=== गेट ===
=== गेट ===
Line 108: Line 108:
87 lines
87 lines
</syntaxhighlight>
</syntaxhighlight>
आउटपुट वर्जन और लाइन हैं जिन्हें आप विशिष्ट फ़ाइल से प्राप्त करना चाहते हैं।
आउटपुट वर्जनऔर पंक्तियाँ हैं जिन्हें आप विशिष्ट फ़ाइल से प्राप्त करना चाहते हैं।


=== पीआरटी ===
=== पीआरटी ===
Line 118: Line 118:
==कार्यान्वयन==
==कार्यान्वयन==


=== [[यूनिक्स]] एससीसीएस वर्जन ===
=== [[यूनिक्स]] एससीसीएस संस्करण ===
अधिकांश यूनिक्स संस्करणों में एससीसीएस का वर्जन सम्मिलित होता है, जो कि चूँकि, अब अधिकांशतः सक्रिय रूप से विकसित नहीं होता है।<ref>Koike, Hideki, and Hui-Chu Chu. "VRCS: Integrating version control and module management
अधिकांश यूनिक्स वर्जन  में एससीसीएस का वर्जनसम्मिलित होता है, जो कि चूँकि, अब अधिकांशतः सक्रिय रूप से विकसित नहीं होता है।<ref>Koike, Hideki, and Hui-Chu Chu. "VRCS: Integrating version control and module management


using interactive three-dimensional graphics." Visual Languages, 1997. Proceedings. 1997
using interactive three-dimensional graphics." Visual Languages, 1997. Proceedings. 1997
Line 126: Line 126:


=== जोर्ग शिलिंग का फोर्क ===
=== जोर्ग शिलिंग का फोर्क ===
इस प्रकार {{ill|जोर्ग शिलिंग|डीई}} (जिसने [[ ओपनसोलर |ओपनसोलर]] परियोजना के प्रारंभिक दिनों में एससीसीएस प्रारंभ करने का अनुरोध किया था) <ref>{{cite web|title=os.solaris.opensolaris.rfe - Re: star - msg#00001 - Recent Discussion OSDir.com|url=http://osdir.com/ml/os.solaris.opensolaris.rfe/2006-05/msg00001.html|website=osdir.com|access-date=10 September 2016}}</ref> एससीसीएस का फोर्क (सॉफ्टवेयर विकास) बनाए रखा था <ref name="schily-sccs">[http://sccs.sourceforge.net/ Jörg Schilling's SCCS development website]</ref><ref>{{cite web |url=https://codeberg.org/schilytools/schilytools/src/branch/master/AN-2022-10-16 |title=A collection of tools written or formerly managed by Jörg Schilling. |author=<!--Not stated--> |date=22 October 2022 |website=[[Codeberg]] |access-date=28 November 2022 |quote=development has been picked up by a group of volunteers who would like to keep the project alive and well}}</ref> यह ओपनसोलारिस सोर्स कोड पर आधारित है। इसमें प्रमुख फीचर संवर्द्धन प्राप्त हुए हैं किन्तु नए प्रोजेक्ट मोड का उपयोग करने तक यह मूल एससीसीएस संस्करणों के साथ संगत रहता है।<ref>[http://sccs.sourceforge.net/#compatibility Schily SCCS web site]: "Will the upcoming SCCSv6 stay compatible with POSIX and with historic SCCS implementations?"</ref>
इस प्रकार {{ill|जोर्ग शिलिंग|डीई}} (जिसने [[ ओपनसोलर |ओपनसोलर]] परियोजना के प्रारंभिक दिनों में एससीसीएस प्रारंभ करने का अनुरोध किया था) <ref>{{cite web|title=os.solaris.opensolaris.rfe - Re: star - msg#00001 - Recent Discussion OSDir.com|url=http://osdir.com/ml/os.solaris.opensolaris.rfe/2006-05/msg00001.html|website=osdir.com|access-date=10 September 2016}}</ref> एससीसीएस का फोर्क (सॉफ्टवेयर विकास) बनाए रखा था <ref name="schily-sccs">[http://sccs.sourceforge.net/ Jörg Schilling's SCCS development website]</ref><ref>{{cite web |url=https://codeberg.org/schilytools/schilytools/src/branch/master/AN-2022-10-16 |title=A collection of tools written or formerly managed by Jörg Schilling. |author=<!--Not stated--> |date=22 October 2022 |website=[[Codeberg]] |access-date=28 November 2022 |quote=development has been picked up by a group of volunteers who would like to keep the project alive and well}}</ref> यह ओपनसोलारिस सोर्स कोड पर आधारित है। इसमें प्रमुख फीचर संवर्द्धन प्राप्त हुए हैं किन्तु नए प्रोजेक्ट मोड का उपयोग करने तक यह मूल एससीसीएस वर्जन  के साथ संगत रहता है।<ref>[http://sccs.sourceforge.net/#compatibility Schily SCCS web site]: "Will the upcoming SCCSv6 stay compatible with POSIX and with historic SCCS implementations?"</ref>
=== [[विरासत परियोजना|हेयरलूम प्रोजेक्ट]] ===
=== [[विरासत परियोजना|हेयरलूम प्रोजेक्ट]] ===
हिरलूम प्रोजेक्ट में ओपनसोलारिस सोर्स कोड से प्राप्त एससीसीएस का वर्जन सम्मिलित है <ref>{{cite web |url=http://heirloom.sourceforge.net/devtools.html |title=विरासत विकास उपकरण|author=Gunnar Ritter |date=20 June 2010 |access-date=4 November 2011}}</ref> और दिसंबर 2006 और अप्रैल 2007 के बीच बनाए रखा गया था।<ref>http://heirloom.cvs.sourceforge.net/viewvc/heirloom/heirloom-devtools/sccs/ see CVS history</ref>
हिरलूम प्रोजेक्ट में ओपनसोलारिस सोर्स कोड से प्राप्त एससीसीएस का वर्जनसम्मिलित है <ref>{{cite web |url=http://heirloom.sourceforge.net/devtools.html |title=विरासत विकास उपकरण|author=Gunnar Ritter |date=20 June 2010 |access-date=4 November 2011}}</ref> और दिसंबर 2006 और अप्रैल 2007 के बीच बनाए रखा गया था।<ref>http://heirloom.cvs.sourceforge.net/viewvc/heirloom/heirloom-devtools/sccs/ see CVS history</ref>
=== [[जीएनयू]] रूपांतरण उपयोगिता ===
=== [[जीएनयू]] रूपांतरण उपयोगिता ===
जीएनयू एससीसीएस संगत कार्यक्रम प्रदान करता है [https://www.gnu.org/software/cssc/ जीएनयू सीएसएससी] (संगत रूप से व्यर्थ सोर्स कंट्रोल), जिसका उपयोग कभी-कभी एससीसीएस अभिलेखागार को समवर्ती वर्जन सिस्टम [[ तोड़फोड़ (सॉफ्टवेयर) |सॉफ्टवेयर]] जैसे नए सिस्टम में परिवर्तित करने के लिए किया जाता है <ref>[http://sccs2svn.berlios.de/ SCCS2SVN conversion utility] {{webarchive|url=https://web.archive.org/web/20091222091016/http://sccs2svn.berlios.de/ |date=2009-12-22 }}, which works with both SCCS and CSSC</ref> यह पूर्ण नहीं है <ref>[https://www.gnu.org/s/cssc/manual/Incomplete.html#Incomplete GNU CSSC list of limitations in its documentation]</ref> एससीसीएस कार्यान्वयन और नई परियोजनाओं में उपयोग के लिए अनुशंसित नहीं है, किन्तु अधिकतर आधुनिक वर्जन कंट्रोल सिस्टम में परिवर्तित करने के लिए है।
जीएनयू एससीसीएस संगत कार्यक्रम प्रदान करता है [https://www.gnu.org/software/cssc/ जीएनयू सीएसएससी] (संगत रूप से व्यर्थ सोर्स नियंत्रण), जिसका उपयोग कभी-कभी एससीसीएस अभिलेखागार को समवर्ती वर्जनसिस्टम [[ तोड़फोड़ (सॉफ्टवेयर) |सॉफ्टवेयर]] जैसे नए सिस्टम में परिवर्तित करने के लिए किया जाता है <ref>[http://sccs2svn.berlios.de/ SCCS2SVN conversion utility] {{webarchive|url=https://web.archive.org/web/20091222091016/http://sccs2svn.berlios.de/ |date=2009-12-22 }}, which works with both SCCS and CSSC</ref> यह पूर्ण नहीं है <ref>[https://www.gnu.org/s/cssc/manual/Incomplete.html#Incomplete GNU CSSC list of limitations in its documentation]</ref> एससीसीएस कार्यान्वयन और नई परियोजनाओं में उपयोग के लिए अनुशंसित नहीं है, किन्तु अधिकतर आधुनिक वर्जन कंट्रोल सिस्टम में परिवर्तित करने के लिए है।


=== अन्य वर्जन कंट्रोल सिस्टम्स ===
=== अन्य वर्जननियंत्रण सिस्टम्स ===
1990 के दशक से, [[संस्करण नियंत्रण सॉफ़्टवेयर की सूची|वर्जन कंट्रोल सॉफ़्टवेयर की सूची]] विकसित की गई है और लोकप्रिय हो गई है जो बड़ी संख्या में फ़ाइलों के साथ परियोजनाओं के मैनेजमेंट के लिए डिज़ाइन की गई है और जो बहु-उपयोगकर्ता ऑपरेशन, एक्सेस कंट्रोल, स्वचालित निर्माण, नेटवर्क सपोर्ट, रिलीज़ मैनेजमेंट जैसी उन्नत कार्यक्षमता प्रदान करती है। और डिस्ट्रिब्यूटेड वर्जन कंट्रोल [[बिटकीपर]] और टीमवेयर आंतरिक रूप से एससीसीएस फ़ाइल स्वरूप का उपयोग करते हैं और उन्हें एससीसीएस का उत्तराधिकारी माना जा सकता है।<ref>{{cite web|title=revtool|work=BitKeeper Documentation|url=https://www.bitkeeper.org/man/revtool.html}}</ref><ref>{{cite web|title=सन वर्कशॉप टीमवेयर का परिचय|url=https://docs.oracle.com/cd/E19957-01/806-3573/intro.html|website=docs.oracle.com|access-date=10 September 2016}}</ref>
1990 के दशक से, [[संस्करण नियंत्रण सॉफ़्टवेयर की सूची|वर्जननियंत्रण सॉफ़्टवेयर की सूची]] विकसित की गई है और लोकप्रिय हो गई है जो बड़ी संख्या में फ़ाइलों के साथ परियोजनाओं के प्रबंधन के लिए डिज़ाइन की गई है और जो बहु-उपयोगकर्ता संचालन, अभिगम नियंत्रण, स्वचालित निर्माण, नेटवर्क समर्थन, रिलीज़ प्रबंधन जैसी उन्नत कार्यक्षमता प्रदान करती है। और वितरित वर्जननियंत्रण [[बिटकीपर]] और टीमवेयर आंतरिक रूप से एससीसीएस फ़ाइल स्वरूप का उपयोग करते हैं और उन्हें एससीसीएस का उत्तराधिकारी माना जा सकता है।<ref>{{cite web|title=revtool|work=BitKeeper Documentation|url=https://www.bitkeeper.org/man/revtool.html}}</ref><ref>{{cite web|title=सन वर्कशॉप टीमवेयर का परिचय|url=https://docs.oracle.com/cd/E19957-01/806-3573/intro.html|website=docs.oracle.com|access-date=10 September 2016}}</ref>


बीएसडी सिस्टम पर, एससीसीएसआईडी को प्रारंभ और अंत में आरसीएसआईडी से बदल दिया जाता है {{mono|$}}; संबंधित उपकरण है {{mono|ident}}.<ref>{{Man|1|ident|NetBSD}}</ref> यह सिस्टम मूल रूप से रिवीजन कंट्रोल सिस्टम द्वारा उपयोग किया जाता है और चेकआउट पर स्वचालित रूप से जोड़ा जाता है। परिणामी सोर्स कोड संशोधन कंट्रोल पहचानकर्ता [[नेटबीएसडी]] में प्रलेखित हैं <ref>{{cite web|title=src/share/misc/style revision 1.64|url=http://cvsweb.netbsd.org/bsdweb.cgi/src/share/misc/style?rev=1.64&content-type=text/x-cvsweb-markup|publisher=NetBSD CVS repository}}</ref> और फ्रीबीएसडी <ref>{{Man|9|style|FreeBSD}}</ref> अपने स्वयं के कोड बेस के लिए स्टाइल गाइड नेटबीएसडी कस्टम कीवर्ड {{mono|$NetBSD: ...$}} को परिभाषित करता है जबकि फ्रीबीएसडी परिभाषित करता है इस प्रकार {{mono|$FreeBSD: ...$}} और मैक्रो का नाम बदल दिया गया {{mono|__FBSDID}}.था
बीएसडी सिस्टम पर, एससीसीएसआईडी को प्रारंभ और अंत में आरसीएसआईडी से बदल दिया जाता है {{mono|$}}; संबंधित उपकरण है {{mono|ident}}.<ref>{{Man|1|ident|NetBSD}}</ref> यह सिस्टम मूल रूप से रिवीजन कंट्रोल सिस्टम द्वारा उपयोग किया जाता है और चेकआउट पर स्वचालित रूप से जोड़ा जाता है। परिणामी सोर्स कोड संशोधन नियंत्रण पहचानकर्ता [[नेटबीएसडी]] में प्रलेखित हैं <ref>{{cite web|title=src/share/misc/style revision 1.64|url=http://cvsweb.netbsd.org/bsdweb.cgi/src/share/misc/style?rev=1.64&content-type=text/x-cvsweb-markup|publisher=NetBSD CVS repository}}</ref> और फ्रीबीएसडी <ref>{{Man|9|style|FreeBSD}}</ref> अपने स्वयं के कोड बेस के लिए स्टाइल गाइड नेटबीएसडी कस्टम कीवर्ड {{mono|$NetBSD: ...$}} को परिभाषित करता है जबकि फ्रीबीएसडी परिभाषित करता है इस प्रकार {{mono|$FreeBSD: ...$}} और मैक्रो का नाम बदल दिया गया {{mono|__FBSDID}}.था


एसआरसी वर्जन कंट्रोल सिस्टम आंतरिक रूप से एससीसीएस फ़ाइल प्रारूप (या संशोधन कंट्रोल सिस्टम) का भी उपयोग कर सकती है और इसका उद्देश्य केवल एकल-फ़ाइल परियोजनाओं का मैनेजमेंट करते हुए एससीसीएस के लिए उत्तम उपयोगकर्ता इंटरफ़ेस प्रदान करना है।<ref>{{cite web |url=http://www.catb.org/esr/src/ |title=Resource page for src 1.29 |author=<!--Not stated--> |date=January 21, 2022 |access-date=November 28, 2022 |quote=}}</ref>
एसआरसी वर्जन कंट्रोल सिस्टम आंतरिक रूप से एससीसीएस फ़ाइल प्रारूप (या संशोधन नियंत्रण सिस्टम) का भी उपयोग कर सकती है और इसका उद्देश्य केवल एकल-फ़ाइल परियोजनाओं का प्रबंधन करते हुए एससीसीएस के लिए उत्तम उपयोगकर्ता इंटरफ़ेस प्रदान करना है।<ref>{{cite web |url=http://www.catb.org/esr/src/ |title=Resource page for src 1.29 |author=<!--Not stated--> |date=January 21, 2022 |access-date=November 28, 2022 |quote=}}</ref>
==संदर्भ                                                                                                                                                                                                                                                                                                                                  ==
==संदर्भ                                                                                                                                                                                                                                                                                                                                  ==
{{Reflist|30em}}
{{Reflist|30em}}

Revision as of 16:08, 20 July 2023

सोर्स कोड कंट्रोल सिस्टम (एससीसीएस)
Original author(s)मार्क जे. रोशकाइंड
Developer(s)बेल लैब्स
Initial release1973; 51 years ago (1973)[discuss]
RepositoryN/A
Written inप्रथम संस्करण: स्नोबोल4
पुनर्लेखन: सी
Operating systemओएस/360, यूनिक्स, यूनिक्स जैसा
Platformआईबीएम सिस्टम/370, पीडीपी-11, आईए-32
Typeसंस्करण नियंत्रण
Licenseप्रोपर्टी लाइसेंस, सामान्य विकास और वितरण लाइसेंस
WebsiteThe Open Group Base Specifications Issue 7, IEEE Std 1003.1-2008, 2016 Edition

सोर्स कोड कंट्रोल सिस्टम (एससीसीएस) वर्जन कंट्रोल सिस्टम है जिसे सॉफ्टवेयर के विकास के समय सोर्स कोड और अन्य टेक्स्ट फ़ाइलों में परिवर्तनों को ट्रैक करने के लिए डिज़ाइन किया गया है। यह उपयोगकर्ता को मूल सोर्स कोड के किसी भी पिछले वर्जनऔर संग्रहीत परिवर्तनों को पुनः प्राप्त करने की अनुमति देता है। इसे मूल रूप से 1972 के अंत में बेल लैब्स में मार्क रोशकिंड द्वारा ओएस/360 पर चलने वाले आईबीएम सिस्टम/370 कंप्यूटर के लिए विकसित किया गया था।[1] एससीसीएस की विशिष्ट विशेषता एससीसीएसआईडी स्ट्रिंग है जो सोर्स कोड में एम्बेडेड है, और प्रत्येक संशोधन के लिए एससीसीएस द्वारा स्वचालित रूप से अपडेट की जाती है।[2] यह उदाहरण C (प्रोग्रामिंग लैंग्वेज ) में इसके उपयोग को दर्शाता है:

 static char sccsid[] = "@(#)ls.c        8.1 (Berkeley) 6/11/93";

इस स्ट्रिंग (कंप्यूटर विज्ञान) में फ़ाइल का नाम, दिनांक और टिप्पणी भी हो सकती है। कंपाइलेशन के पश्चात्, क्रम की खोज करके स्ट्रिंग को बाइनरी और ऑब्जेक्ट फ़ाइलों में पाया जा सकता है @(#) और इसका उपयोग यह निर्धारित करने के लिए किया जा सकता है कि कंपाइलेशन के समय कौन सी सोर्स कोड फ़ाइलों का उपयोग किया गया था। what वर्जनस्ट्रिंग्स के लिए इस खोज को स्वचालित करने के लिए e> कमांड उपलब्ध है।[3]

इतिहास

1972 में, मार्क रोचकाइंड ने विभिन्न प्रकार के कार्यों के साथ ओएस/360 मल्टीप्रोग्रामिंग चलाने वाले आईबीएम सिस्टम/370 कंप्यूटर के लिए बेल लैब्स में एसएनओबीओएल में एससीसीएस विकसित किया था। [1] उन्होंने यूनिक्स के अनुसार उपयोग के लिए सी प्रोग्रामिंग लैंग्वेज में एससीसीएस को फिर से लिखा था, फिर 1973 में पीडीपी-11 पर चलाया गया था।

प्रथम सार्वजनिक रूप से प्रारंभ किया गया वर्जन18 फरवरी 1977 से एससीसीएस वर्जन4 था।[4] यह ऑपरेटिंग सिस्टम के पीडब्लूबी/यूनिक्स|प्रोग्रामर वर्कबेंच (पीडब्लूबी) वर्जन के साथ उपलब्ध था। एससीसीएस का रिलीज़ 4 पहला वर्जन था जिसमें टेक्स्ट-आधारित इतिहास फ़ाइल स्वरूप का उपयोग किया गया था, पहले के वर्जन में बाइनरी इतिहास फ़ाइल स्वरूपों का उपयोग किया गया था। रिलीज़ 4 अब मार्क रोशकाइंड द्वारा लिखा या अनुरक्षित नहीं किया गया था। इसके पश्चात्, एससीसीएस को AT&T के वाणिज्यिक यूनिक्स सिस्टम III और यूनिक्स सिस्टम V वितरण में सम्मिलित किया गया था। इसे बर्कले सॉफ्टवेयर वितरण के पूर्वज यूनिक्स/32V के साथ लाइसेंस प्राप्त नहीं था।[5] एससीसीएस कमांड सेट अब सिंगल यूनिक्स विशिष्टता का भाग है।

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

1999 में वर्ष 2000 की समस्याओं को ठीक करने के अतिरिक्त, विभिन्न यूनिक्स विक्रेता-विशिष्ट एससीसीएस वर्जन पर अनेक सक्रिय विकास नहीं हुआ है।[9] 2006 में, सन माइक्रोसिस्टम्स (आज ओरेकल कॉर्पोरेशन का भाग) ने सोलारिस को ओपन-सोर्स करने के अपने प्रयासों के भाग के रूप में सामान्य विकास एवं वितरण लाइसेंस के अनुसार ओपन-सोर्स सॉफ्टवेयर या ओपन-सोर्स के रूप में एससीसीएस का अपना सोलारिस (ऑपरेटिंग सिस्टम) वर्जन प्रारंभ किया था।[10]

पृष्ठभूमि

सोर्स कोड कंट्रोल सिस्टम (एससीसीएस) फ़ाइल और इतिहास परिवर्तनों को नियंत्रित करने के लिए सिस्टम है। सॉफ़्टवेयर सामान्यतः बग्स को ठीक करके, एल्गोरिदम को अनुकूलित करके और अतिरिक्त फ़ंक्शन जोड़कर नए वर्जन में अपग्रेड किया जाता है।[11] सॉफ़्टवेयर परिवर्तन से समस्याएँ उत्पन्न होती हैं जिन्हें हल करने के लिए वर्जन नियंत्रण की आवश्यकता होती है।[1]

  • सोर्स कोड बहुत अधिक स्थान लेता है क्योंकि यह प्रत्येक वर्जन में दोहराया जाता है।
  • परिवर्तन कब और कहाँ हुए, इसकी जानकारी प्राप्त करना कठिन है।
  • स्पष्ट वर्जन खोजना जिसमें क्लाइंट-सर्वर मॉडल में समस्याएँ हैं, कठिन है।

इन समस्याओं को हल करने के लिए एससीसीएस का निर्माण किया गया था। इस प्रकार एटी एंड टी के एससीसीएस में आईबीएम ओएस के लिए पांच प्रमुख वर्जन और यूनिक्स के लिए पांच प्रमुख वर्जन थे[12] एससीसीएस का उपयोग करने वाले दो विशिष्ट कार्यान्वयन हैं: इस प्रकार यूनिक्स के अनुसार पीडीपी 11 और ओएस के अनुसार आईबीएम 370 का उपयोग किया जाता है।[1]

रचना

एससीसीएस में दो भाग होते हैं: एससीसीएस कमांड और एससीसीएस फ़ाइलें [13] सभी मूलभूत संचालन (उदाहरण के लिए, बनाएं, हटाएं, एडिट करें) एससीसीएस कमांड द्वारा अनुभव किए जा सकते हैं।[14] एससीसीएस फ़ाइलों में अद्वितीय प्रारूप उपसर्ग होता है s., जिसे एससीसीएस कमांड द्वारा नियंत्रित किया जाता है।[2]

एससीसीएस फ़ाइलें

एससीसीएस फ़ाइल में तीन भाग होते हैं:[15]

  • डेल्टा तालिका
  • फ्लैग तक पहुंच और ट्रैकिंग
  • टेक्स्ट का मुख्य भाग

डेल्टा तालिका

एससीसीएस में, डेल्टा एससीसीएस फ़ाइल में एकल संशोधन है। डेल्टा को डेल्टा टेबल में संग्रहीत किया जाता है, इसलिए प्रत्येक एससीसीएस फ़ाइल में परिवर्तनों का अपना अभिलेख होता है।[15]

एससीसीएस फाइलों में फ्लैग का नियंत्रण और ट्रैकिंग

प्रत्येक एससीसीएस फ़ाइल के प्रत्येक ऑपरेशन को फ्लैग द्वारा ट्रैक किया जाता है। उनके कार्य इस प्रकार हैं:[15]

    • प्रत्येक एससीसीएस फ़ाइल के संपादन के लिए अनुमतियाँ सेट करना।
  • प्रत्येक एससीसीएस फ़ाइल की प्रत्येक रिलीज़ को नियंत्रित करें।
  • प्रत्येक एससीसीएस फ़ाइल के सहयोगात्मक संपादन की अनुमति।
  • प्रत्येक एससीसीएस फ़ाइल के पारस्परिक-संदर्भित परिवर्तन।

बॉडी

एससीसीएस विभिन्न डेल्टाओं में प्रयुक्त सम्मिलन और विलोपन का ट्रैक रखने के लिए तीन प्रकार के नियंत्रण अभिलेख का उपयोग करता है। वह सम्मिलन नियंत्रण अभिलेख, विलोपन नियंत्रण अभिलेख और अंत नियंत्रण अभिलेख हैं। जब भी कोई उपयोगकर्ता टेक्स्ट का कुछ भाग बदलता है, जिससे परिवर्तन के आसपास नियंत्रण अभिलेख डाला जाता है। इस प्रकार नियंत्रण अभिलेख मूल टेक्स्ट अभिलेख के साथ मुख्य भाग में संग्रहीत होते हैं।[1]

एससीसीएस मूलभूत कमांड

एससीसीएस मैक्रो इनवोकेशन के रूप में कमांड का सेट प्रदान करता है जो सरल सिंटैक्स के साथ सोर्स कोड प्रबंधन कार्यों को निष्पादित या आरंभ करता है, जैसे कि बनाना, प्राप्त करना, एडिट करना, पीआरटी का उपयोग किया जाता है।[16][17] यह प्रबंधन के अनुसार फ़ाइलों के संशोधन इतिहास तक पहुंच भी प्रदान करता है। ये कमांड ड्राइवर प्रोग्राम एससीसीएस में तर्क क्रिया के रूप में कार्यान्वित किए जाते हैं।

क्रिएट

एससीसीएस कमांड क्रिएट नई इतिहास फ़ाइल बनाने के लिए सोर्स फ़ाइल के टेक्स्ट का उपयोग करता है। उदाहरण के लिए:

$ sccs create program.c
program.c:
1.1
87 lines

आउटपुट नाम, वर्जनऔर पंक्तियाँ हैं।

कमांड मैक्रो है जो नई इतिहास फ़ाइल बनाने के लिए व्यवस्थापक तक विस्तारित होता है और उसके पश्चात् फ़ाइल को पुनः प्राप्त करता है।

एडिट

$ sccs edit program.c
1.1
new delta 1.2
87 lines

किसी विशिष्ट फ़ाइल को एडिट करें.

कमांड मैक्रो है जो -ई प्राप्त करने के लिए विस्तारित होता है।

डेल्गेट

$ sccs delget program.c
comments? main function enhanced
1.2
10 inserted
0 deleted
87 unchanged
1.2
97 lines

नए वर्जनकी जांच करें और एससीसीएस से नया वर्जनप्राप्त करें।

कमांड मैक्रो है जो नए वर्जनफ़ाइल की जांच करने के लिए डेल्टा तक विस्तारित होता है और उसके पश्चात् फ़ाइल को पुनः प्राप्त करता है।

गेट

$ sccs get program.c
1.1
87 lines

आउटपुट वर्जनऔर पंक्तियाँ हैं जिन्हें आप विशिष्ट फ़ाइल से प्राप्त करना चाहते हैं।

पीआरटी

$ sccs prt program.c

यह कमांड सोर्स कोड परिवर्तनों की सूची तैयार करता है।

कार्यान्वयन

यूनिक्स एससीसीएस संस्करण

अधिकांश यूनिक्स वर्जन में एससीसीएस का वर्जनसम्मिलित होता है, जो कि चूँकि, अब अधिकांशतः सक्रिय रूप से विकसित नहीं होता है।[18]

जोर्ग शिलिंग का फोर्क

इस प्रकार जोर्ग शिलिंग [डीई] (जिसने ओपनसोलर परियोजना के प्रारंभिक दिनों में एससीसीएस प्रारंभ करने का अनुरोध किया था) [19] एससीसीएस का फोर्क (सॉफ्टवेयर विकास) बनाए रखा था [20][21] यह ओपनसोलारिस सोर्स कोड पर आधारित है। इसमें प्रमुख फीचर संवर्द्धन प्राप्त हुए हैं किन्तु नए प्रोजेक्ट मोड का उपयोग करने तक यह मूल एससीसीएस वर्जन के साथ संगत रहता है।[22]

हेयरलूम प्रोजेक्ट

हिरलूम प्रोजेक्ट में ओपनसोलारिस सोर्स कोड से प्राप्त एससीसीएस का वर्जनसम्मिलित है [23] और दिसंबर 2006 और अप्रैल 2007 के बीच बनाए रखा गया था।[24]

जीएनयू रूपांतरण उपयोगिता

जीएनयू एससीसीएस संगत कार्यक्रम प्रदान करता है जीएनयू सीएसएससी (संगत रूप से व्यर्थ सोर्स नियंत्रण), जिसका उपयोग कभी-कभी एससीसीएस अभिलेखागार को समवर्ती वर्जनसिस्टम सॉफ्टवेयर जैसे नए सिस्टम में परिवर्तित करने के लिए किया जाता है [25] यह पूर्ण नहीं है [26] एससीसीएस कार्यान्वयन और नई परियोजनाओं में उपयोग के लिए अनुशंसित नहीं है, किन्तु अधिकतर आधुनिक वर्जन कंट्रोल सिस्टम में परिवर्तित करने के लिए है।

अन्य वर्जननियंत्रण सिस्टम्स

1990 के दशक से, वर्जननियंत्रण सॉफ़्टवेयर की सूची विकसित की गई है और लोकप्रिय हो गई है जो बड़ी संख्या में फ़ाइलों के साथ परियोजनाओं के प्रबंधन के लिए डिज़ाइन की गई है और जो बहु-उपयोगकर्ता संचालन, अभिगम नियंत्रण, स्वचालित निर्माण, नेटवर्क समर्थन, रिलीज़ प्रबंधन जैसी उन्नत कार्यक्षमता प्रदान करती है। और वितरित वर्जननियंत्रण बिटकीपर और टीमवेयर आंतरिक रूप से एससीसीएस फ़ाइल स्वरूप का उपयोग करते हैं और उन्हें एससीसीएस का उत्तराधिकारी माना जा सकता है।[27][28]

बीएसडी सिस्टम पर, एससीसीएसआईडी को प्रारंभ और अंत में आरसीएसआईडी से बदल दिया जाता है $; संबंधित उपकरण है ident.[29] यह सिस्टम मूल रूप से रिवीजन कंट्रोल सिस्टम द्वारा उपयोग किया जाता है और चेकआउट पर स्वचालित रूप से जोड़ा जाता है। परिणामी सोर्स कोड संशोधन नियंत्रण पहचानकर्ता नेटबीएसडी में प्रलेखित हैं [30] और फ्रीबीएसडी [31] अपने स्वयं के कोड बेस के लिए स्टाइल गाइड नेटबीएसडी कस्टम कीवर्ड $NetBSD: ...$ को परिभाषित करता है जबकि फ्रीबीएसडी परिभाषित करता है इस प्रकार $FreeBSD: ...$ और मैक्रो का नाम बदल दिया गया __FBSDID.था

एसआरसी वर्जन कंट्रोल सिस्टम आंतरिक रूप से एससीसीएस फ़ाइल प्रारूप (या संशोधन नियंत्रण सिस्टम) का भी उपयोग कर सकती है और इसका उद्देश्य केवल एकल-फ़ाइल परियोजनाओं का प्रबंधन करते हुए एससीसीएस के लिए उत्तम उपयोगकर्ता इंटरफ़ेस प्रदान करना है।[32]

संदर्भ

  1. 1.0 1.1 1.2 1.3 1.4 Rochkind, Marc J. (December 1975), "The Source Code Control System" (PDF), IEEE Transactions on Software Engineering, vol. SE-1, no. 4, pp. 364–370, doi:10.1109/tse.1975.6312866, S2CID 10006076
  2. 2.0 2.1 Oracle. "Chapter 5 SCCS Source Code Control System". Programming Utilities Guide.
  3. "क्या". IEEE and The Open Group. n.d. Retrieved November 28, 2022.
  4. http://sccs.sourceforge.net/PWB.html AT&T Announcement for SCCSv4
  5. SCCS what(1) manpage from 4BSD, 1980, on the website of The Unix Heritage Society Archived 2005-08-31 at the Wayback Machine.
  6. Estublier, Jacky, David Leblang, André van der Hoek, Reidar Conradi, Geoffrey Clemm, Walter Tichy, and Darcy Wiborg-Weber. “Impact of software engineering research on the practice of software configuration management.” ACM Transactions on Software Engineering and Methodology (TOSEM) 14 (October 2005): 383–430.
  7. Hudson, Greg (2002-10-03), Notes on keeping version histories of files, Unpublished personal notes
  8. Estublier, Jacky, David Leblang, André van der Hoek, Reidar Conradi, Geoffrey Clemm, Walter Tichy, and Darcy Wiborg-Weber. “Impact of software engineering research on the practice of software configuration management.” ACM Transactions on Software Engineering and Methodology (TOSEM) 14 (October 2005): p.398.
  9. What is SCCS, GNU operating System
  10. Stephen Lau, Sun Microsystems (2006-12-19). "SCCS/make source available". Archived from the original on April 25, 2012. Retrieved 2011-11-14.
  11. Home Organization Selection ProQuest 215925387
  12. The evolution of a Source Code Control System. Alan L.Glasser, published in sigmetrics, Nov 1978 when SCCS on UNIX was a version 4
  13. "एससीसीएस". www-h.eng.cam.ac.uk. Retrieved 2016-09-12.
  14. Cite error: Invalid <ref> tag; no text was provided for refs named SCCS
  15. 15.0 15.1 15.2 IBM (7 June 2018). "General Programming Concepts: Writing and Debugging Programs". IBM Knowledge Center.
  16. An Introduction to the Source Code Control System Eric Allman, Project Ingres, University of California at Berkeley
  17. Source Code Control System Programming Utilities Guide
  18. Koike, Hideki, and Hui-Chu Chu. "VRCS: Integrating version control and module management using interactive three-dimensional graphics." Visual Languages, 1997. Proceedings. 1997 IEEE Symposium on. IEEE, 1997.
  19. "os.solaris.opensolaris.rfe - Re: star - msg#00001 - Recent Discussion OSDir.com". osdir.com. Retrieved 10 September 2016.
  20. Jörg Schilling's SCCS development website
  21. "A collection of tools written or formerly managed by Jörg Schilling". Codeberg. 22 October 2022. Retrieved 28 November 2022. development has been picked up by a group of volunteers who would like to keep the project alive and well
  22. Schily SCCS web site: "Will the upcoming SCCSv6 stay compatible with POSIX and with historic SCCS implementations?"
  23. Gunnar Ritter (20 June 2010). "विरासत विकास उपकरण". Retrieved 4 November 2011.
  24. http://heirloom.cvs.sourceforge.net/viewvc/heirloom/heirloom-devtools/sccs/ see CVS history
  25. SCCS2SVN conversion utility Archived 2009-12-22 at the Wayback Machine, which works with both SCCS and CSSC
  26. GNU CSSC list of limitations in its documentation
  27. "revtool". BitKeeper Documentation.
  28. "सन वर्कशॉप टीमवेयर का परिचय". docs.oracle.com. Retrieved 10 September 2016.
  29. ident(1) – NetBSD General Commands Manual
  30. "src/share/misc/style revision 1.64". NetBSD CVS repository.
  31. style(9) – FreeBSD Kernel Developer's Manual
  32. "Resource page for src 1.29". January 21, 2022. Retrieved November 28, 2022.

अग्रिम पठन

बाहरी संबंध