सोर्स कोड कंट्रोल सिस्टम

From Vigyanwiki
Revision as of 14:28, 10 July 2023 by alpha>Indicwiki (Created page with "{{More citations needed|date=March 2010}} {{Infobox software | name = Source Code Control System (SCCS) | logo = | screenshot =...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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]उन्होंने UNIX के तहत उपयोग के लिए C प्रोग्रामिंग भाषा में SCCS को फिर से लिखा, फिर 1973 में PDP-11 पर चलाया।

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

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

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


पृष्ठभूमि

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

  • परिवर्तन कब और कहाँ हुए, इसकी जानकारी प्राप्त करना कठिन है।
  • सटीक संस्करण ढूँढना जिसमें क्लाइंट-सर्वर मॉडल में समस्याएँ हैं, कठिन है।

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


रचना

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


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

SCCS फ़ाइल में तीन भाग होते हैं:[15] * डेल्टा तालिका

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

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

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


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

प्रत्येक एससीसीएस फ़ाइल के प्रत्येक ऑपरेशन को झंडे द्वारा ट्रैक किया जाता है। उनके कार्य इस प्रकार हैं:[15]* प्रत्येक SCCS फ़ाइल के संपादन के लिए अनुमतियाँ सेट करना।

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

शरीर

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


एससीसीएस बुनियादी आदेश

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

बनाएँ

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

$ 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

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

कार्यान्वयन

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

अधिकांश UNIX संस्करणों में SCCS का एक संस्करण शामिल होता है, जो, हालांकि, अब अक्सर सक्रिय रूप से विकसित नहीं होता है।[18][better source needed]

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

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


विरासत परियोजना

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


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

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

अन्य संस्करण नियंत्रण प्रणालियाँ

1990 के दशक से, संस्करण नियंत्रण सॉफ़्टवेयर की सूची विकसित की गई है और लोकप्रिय हो गई है जो बड़ी संख्या में फ़ाइलों के साथ परियोजनाओं के प्रबंधन के लिए डिज़ाइन की गई है और जो बहु-उपयोगकर्ता संचालन, अभिगम नियंत्रण, स्वचालित निर्माण, नेटवर्क समर्थन, रिलीज़ प्रबंधन जैसी उन्नत कार्यक्षमता प्रदान करती है। और वितरित संस्करण नियंत्रण। बिटकीपर और टीमवेयर आंतरिक रूप से SCCS फ़ाइल स्वरूप का उपयोग करते हैं और उन्हें SCCS का उत्तराधिकारी माना जा सकता है।[27][28] बीएसडी सिस्टम पर, एससीसीएसआईडी को शुरू और अंत में आरसीएसआईडी से बदल दिया जाता है $; संबंधित उपकरण है ident.[29] यह सिस्टम मूल रूप से रिवीजन कंट्रोल सिस्टम द्वारा उपयोग किया जाता है और चेकआउट पर स्वचालित रूप से जोड़ा जाता है। परिणामी स्रोत कोड संशोधन नियंत्रण पहचानकर्ता नेटबीएसडी में प्रलेखित हैं[30] और फ्रीबीएसडी[31] अपने स्वयं के कोड बेस के लिए स्टाइल गाइड। नेटबीएसडी कस्टम कीवर्ड को परिभाषित करता है $NetBSD: ...$ जबकि FreeBSD परिभाषित करता है $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.


अग्रिम पठन


बाहरी संबंध