सोर्स कोड कंट्रोल सिस्टम: 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> एससीसीएस की विशिष्ट विशेषता एससीसीएसआईडी स्ट्रिंग है जो सोर्स कोड में एम्बेडेड है, और प्रत्येक संशोधन के लिए एससीसीएस द्वारा स्वचालित रूप से अपडेट की जाती है।<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 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 प्रोग्रामिंग भाषा में SCCS को फिर से लिखा, फिर 1973 में [[PDP-11]] पर चलाया।
1972 में, मार्क रोचकाइंड ने विभिन्न प्रकार के कार्यों के साथ ओएस/360 मल्टीप्रोग्रामिंग चलाने वाले आईबीएम सिस्टम/370 कंप्यूटर के लिए बेल लैब्स में एसएनओबीओएल में एससीसीएस विकसित किया था। <ref name = "r1"/> उन्होंने [[UNIX|यूनिक्स]] के अनुसार उपयोग के लिए C प्रोग्रामिंग भाषा में एससीसीएस को फिर से लिखा था, फिर 1973 में [[PDP-11|पीडीपी-11]] पर चलाया गया था।


पहला सार्वजनिक रूप से जारी किया गया संस्करण 18 फरवरी 1977 से एससीसीएस संस्करण 4 था।<ref>http://sccs.sourceforge.net/PWB.html AT&T Announcement for SCCSv4</ref> यह [[ऑपरेटिंग सिस्टम]] के PWB/UNIX|प्रोग्रामर वर्कबेंच (PWB) संस्करण के साथ उपलब्ध था। एससीसीएस का रिलीज़ 4 पहला संस्करण था जिसमें टेक्स्ट-आधारित इतिहास फ़ाइल स्वरूप का उपयोग किया गया था, पहले के संस्करणों में बाइनरी इतिहास फ़ाइल स्वरूपों का उपयोग किया गया था। रिलीज़ 4 अब मार्क रोशकाइंड द्वारा लिखा या अनुरक्षित नहीं किया गया था। इसके बाद, SCCS को AT&T के वाणिज्यिक UNIX सिस्टम III और UNIX सिस्टम V वितरण में शामिल किया गया। इसे [[ बर्कले सॉफ्टवेयर वितरण |बर्कले सॉफ्टवेयर वितरण]] के पूर्वज UNIX/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> SCCS कमांड सेट अब सिंगल UNIX विशिष्टता का हिस्सा है।
पहला सार्वजनिक रूप से प्रारंभ किया गया संस्करण 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> एससीसीएस कमांड सेट अब सिंगल यूनिक्स विशिष्टता का भाग है।


बाद के संस्करण नियंत्रण प्रणालियों, विशेष रूप से संशोधन नियंत्रण प्रणाली और बाद में [[समवर्ती संस्करण प्रणाली]], को अधिक व्यापक रूप से अपनाए जाने तक एससीसीएस यूनिक्स के लिए प्रमुख संस्करण नियंत्रण प्रणाली थी। आज, इन प्रारंभिक संस्करण नियंत्रण प्रणालियों को आम तौर पर अप्रचलित माना जाता है, विशेष रूप से [[खुला स्रोत सॉफ्टवेयर]]|ओपन-सोर्स समुदाय में, जिसने बड़े पैमाने पर [[वितरित संस्करण नियंत्रण]] प्रणालियों को अपनाया है। हालाँकि, SCCS फ़ाइल स्वरूप का उपयोग अभी भी [[BitKeeper]] और [[TeamWare]] सहित कुछ नए संस्करण नियंत्रण कार्यक्रमों द्वारा आंतरिक रूप से किया जाता है। उत्तरार्द्ध एससीसीएस का अग्रभाग है। [http://sablime.alcatel-lucent.com/ सब्लिमे] को SCCS के संशोधित संस्करण से विकसित किया गया है<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> लेकिन इतिहास फ़ाइल स्वरूप का उपयोग करता है जो SCCS के साथ असंगत है। SCCS फ़ाइल स्वरूप भंडारण तकनीक का उपयोग करता है जिसे [[इंटरलीव्ड डेल्टा]]स (या वेव) कहा जाता है<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 की समस्या]]ओं को ठीक करने के अलावा, विभिन्न UNIX विक्रेता-विशिष्ट SCCS संस्करणों पर कोई सक्रिय विकास नहीं हुआ है।<ref>
1999 में [[वर्ष 2000 की समस्या]]ओं को ठीक करने के अतिरिक्त, विभिन्न यूनिक्स विक्रेता-विशिष्ट एससीसीएस संस्करणों पर कोई सक्रिय विकास नहीं हुआ है।<ref>
[https://www.gnu.org/software/cssc/ What is SCCS], GNU operating System</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>
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"/>
* परिवर्तन कब और कहाँ हुए, इसकी जानकारी प्राप्त करना कठिन है।
*सोर्स कोड बहुत अधिक स्थान लेता है क्योंकि यह प्रत्येक संस्करण में दोहराया जाता है।
* सटीक संस्करण ढूँढना जिसमें क्लाइंट-सर्वर मॉडल में समस्याएँ हैं, कठिन है।
*परिवर्तन कब और कहाँ हुए, इसकी जानकारी प्राप्त करना कठिन है।
इन समस्याओं को हल करने के लिए SCCS का निर्माण किया गया था। एटी एंड टी के एससीसीएस में आईबीएम ओएस के लिए पांच प्रमुख संस्करण और यूनिक्स के लिए पांच प्रमुख संस्करण थे<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"/>




== रचना ==
== रचना ==
SCCS में दो भाग होते हैं: SCCS कमांड और SCCS फ़ाइलें।<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"/>SCCS फ़ाइलों में अद्वितीय प्रारूप उपसर्ग होता है <code>s.</code>, जिसे SCCS कमांड द्वारा नियंत्रित किया जाता है।<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"/>




== एससीसीएस फ़ाइलें ==
== एससीसीएस फ़ाइलें ==
SCCS फ़ाइल में तीन भाग होते हैं:<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>  
* झंडे तक पहुंच और ट्रैकिंग
 
* पाठ का मुख्य भाग
* डेल्टा तालिका
*फ्लैग तक पहुंच और ट्रैकिंग
* टेक्स्ट का मुख्य भाग


=== डेल्टा तालिका ===
=== डेल्टा तालिका ===
एससीसीएस में, डेल्टा एससीसीएस फ़ाइल में एकल संशोधन है। डेल्टा को डेल्टा तालिका में संग्रहीत किया जाता है, इसलिए प्रत्येक एससीसीएस फ़ाइल में परिवर्तनों का अपना रिकॉर्ड होता है।<ref name=":0" />
एससीसीएस में, डेल्टा एससीसीएस फ़ाइल में एकल संशोधन है। डेल्टा को डेल्टा तालिका में संग्रहीत किया जाता है, इसलिए प्रत्येक एससीसीएस फ़ाइल में परिवर्तनों का अपना अभिलेख होता है।<ref name=":0" />




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


=== शरीर ===
=== शरीर ===
एससीसीएस विभिन्न डेल्टाओं में लागू सम्मिलन और विलोपन का ट्रैक रखने के लिए तीन प्रकार के नियंत्रण रिकॉर्ड का उपयोग करता है। वे सम्मिलन नियंत्रण रिकॉर्ड, विलोपन नियंत्रण रिकॉर्ड और अंत नियंत्रण रिकॉर्ड हैं। जब भी कोई उपयोगकर्ता पाठ का कुछ भाग बदलता है, तो परिवर्तन के आसपास नियंत्रण रिकॉर्ड डाला जाता है। नियंत्रण रिकॉर्ड मूल पाठ रिकॉर्ड के साथ मुख्य भाग में संग्रहीत होते हैं।<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> यह प्रबंधन के अनुसार फ़ाइलों के संशोधन इतिहास तक पहुंच भी प्रदान करता है। ये कमांड ड्राइवर प्रोग्राम एससीसीएस में तर्क क्रिया के रूप में कार्यान्वित किए जाते हैं।


=== बनाएँ ===
=== क्रिएट ===
Sccs कमांड क्रिएट नई इतिहास फ़ाइल बनाने के लिए स्रोत फ़ाइल के टेक्स्ट का उपयोग करता है। उदाहरण के लिए:
एससीसीएस कमांड क्रिएट नई इतिहास फ़ाइल बनाने के लिए सोर्स फ़ाइल के टेक्स्ट का उपयोग करता है। उदाहरण के लिए:
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
$ sccs create program.c
$ sccs create program.c
Line 85: Line 86:
आउटपुट नाम, संस्करण और पंक्तियाँ हैं।
आउटपुट नाम, संस्करण और पंक्तियाँ हैं।


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


=== संपादित करें ===
=== एडिट ===
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
$ sccs edit program.c
$ sccs edit program.c
Line 94: Line 95:
87 lines
87 lines
</syntaxhighlight>
</syntaxhighlight>
किसी विशिष्ट फ़ाइल को संपादित करें.
किसी विशिष्ट फ़ाइल को एडिट करें.


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


=== आंशिक ===
=== डेल्गेट ===
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
$ sccs delget program.c
$ sccs delget program.c
Line 111: Line 112:
नए संस्करण की जांच करें और एससीसीएस से नया संस्करण प्राप्त करें।
नए संस्करण की जांच करें और एससीसीएस से नया संस्करण प्राप्त करें।


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


=== प्राप्त करें ===
=== गेट ===
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
$ sccs get program.c
$ sccs get program.c
Line 125: Line 126:
$ sccs prt program.c
$ sccs prt program.c
</syntaxhighlight>
</syntaxhighlight>
यह कमांड स्रोत कोड परिवर्तनों की रिपोर्ट तैयार करता है।
यह कमांड सोर्स कोड परिवर्तनों की सूची तैयार करता है।


==कार्यान्वयन==
==कार्यान्वयन==


=== [[यूनिक्स]] एससीसीएस संस्करण ===
=== [[यूनिक्स]] एससीसीएस संस्करण ===
अधिकांश UNIX संस्करणों में SCCS का संस्करण शामिल होता है, जो, हालांकि, अब अक्सर सक्रिय रूप से विकसित नहीं होता है।<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 137: Line 138:


=== जोर्ग शिलिंग का कांटा ===
=== जोर्ग शिलिंग का कांटा ===
देर से {{ill|Jörg Schilling|de}} (जिसने [[ ओपनसोलर |ओपनसोलर]] परियोजना के शुरुआती दिनों में एससीसीएस जारी करने का अनुरोध किया था)<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>
 
बीएसडी सिस्टम पर, एससीसीएसआईडी को प्रारंभ और अंत में आरसीएसआईडी से बदल दिया जाता है {{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>
1990 के दशक से, [[संस्करण नियंत्रण सॉफ़्टवेयर की सूची]] विकसित की गई है और लोकप्रिय हो गई है जो बड़ी संख्या में फ़ाइलों के साथ परियोजनाओं के प्रबंधन के लिए डिज़ाइन की गई है और जो बहु-उपयोगकर्ता संचालन, अभिगम नियंत्रण, स्वचालित निर्माण, नेटवर्क समर्थन, रिलीज़ प्रबंधन जैसी उन्नत कार्यक्षमता प्रदान करती है। और वितरित संस्करण नियंत्रण। [[बिटकीपर]] और टीमवेयर आंतरिक रूप से SCCS फ़ाइल स्वरूप का उपयोग करते हैं और उन्हें SCCS का उत्तराधिकारी माना जा सकता है।<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: ...$}} जबकि FreeBSD परिभाषित करता है {{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>




==संदर्भ==
==संदर्भ                                                                                                                                                                                                                                                                                                                                   ==
{{Reflist|30em}}
{{Reflist|30em}}




==अग्रिम पठन==
==अग्रिम पठन==
* [http://sccs.sourceforge.net/sccs_invention.html Essay from Marc Rochkind on how SCCS was invented]
* [http://sccs.sourceforge.net/sccs_invention.html Essay from Marc Rochkind on how एससीसीएस was invented]
* {{man|1|sccs|SUS}}
* {{man|1|sccs|SUS}}
* {{man|1|sccs|FreeBSD}}
* {{man|1|sccs|FreeBSD}}
Line 169: Line 172:


==बाहरी संबंध==
==बाहरी संबंध==
* [https://codeberg.org/schilytools/schilytools Schily's SCCS on Codeberg]
* [https://codeberg.org/schilytools/schilytools Schily's एससीसीएस on Codeberg]
[[Category: 1972 सॉफ्टवेयर]] [[Category: संस्करण नियंत्रण प्रणाली]] [[Category: मुफ़्त संस्करण नियंत्रण सॉफ़्टवेयर]] [[Category: यूनिक्स अभिलेखागार और संपीड़न-संबंधित उपयोगिताएँ]] [[Category: यूनिक्स SUS2008 उपयोगिताएँ]] [[Category: स्व-होस्टिंग सॉफ़्टवेयर]] [[Category: सीडीडीएल लाइसेंस का उपयोग करने वाला सॉफ्टवेयर]]  
[[Category: 1972 सॉफ्टवेयर]] [[Category: संस्करण नियंत्रण प्रणाली]] [[Category: मुफ़्त संस्करण नियंत्रण सॉफ़्टवेयर]] [[Category: यूनिक्स अभिलेखागार और संपीड़न-संबंधित उपयोगिताएँ]] [[Category: यूनिक्स SUS2008 उपयोगिताएँ]] [[Category: स्व-होस्टिंग सॉफ़्टवेयर]] [[Category: सीडीडीएल लाइसेंस का उपयोग करने वाला सॉफ्टवेयर]]  



Revision as of 11:44, 20 July 2023

Source Code Control System (SCCS)
Original author(s)Marc J. Rochkind
Developer(s)Bell Labs
Initial release1973; 51 years ago (1973)[discuss]
RepositoryN/A
Written inFirst version: SNOBOL4
Rewrite: C
Operating systemOS/360, Unix, Unix-like
PlatformIBM System/370, PDP-11, IA-32
TypeVersion control
Licenseproprietary licenses, Common Development and Distribution 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] उन्होंने यूनिक्स के अनुसार उपयोग के लिए C प्रोग्रामिंग भाषा में एससीसीएस को फिर से लिखा था, फिर 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.


अग्रिम पठन


बाहरी संबंध